Logo

Btrfs快照方案

Avatar

Skyone

科技爱好者

去年从 ext4 文件系统切换到了 btrfs,当时主要看中的是快照功能。最开始使用的是 timeshift,能用,但是可定制性不够,遂尝试 直接手动创建快照。

自从用了快照,最显著的变化是:折腾各种危险的东西再也不需要使用虚拟机,直接host开搞,最坏不过回滚一下快照,重新生成一下 GRUB,一个健康的系统就又回来了。

当然,快照大多了,就开始考虑怎么自动化,于是简单写了个脚本,试了一下还不错,放在本文后面了。

使用 Rust 实现自己的评论系统

Avatar

Skyone

科技爱好者

最近发现博客的评论系统后端有点问题,占用内存过于的大了(基于 Node.js + PostgreSQL,RES 内存占用 200MB+55MB),这不正常。而且我在国内的唯一一个服务器只有 2G 内存,很容易就被干满了。所以决定使用一个编译型语言重写一下。

最开始选的其实是 Golang,因为被网上传的 Rust 入门太难吓住了😂,试了一下发现 Golang 的 ORM 实在是太难用了,而且我非常讨厌 Golang 的语法,所以还是决定用 Rust 了。

使用 Docker 部署 PeerTube

Avatar

Skyone

科技爱好者

PeerTube 是一个自由开源的去中心化视频分享平台,它使用 WebTorrent 技术来实现 P2P 视频流传输。本来想用 PeerTube 来搭建一个视频分享平台,但是发现 PeerTube 的 Docker 部署文档有很多缺失的细节,所以写了这篇文章来记录一下 PeerTube 的 Docker 部署过程。

我已经搭建好了一个示例,大家可用访问 https://video.akk.moe 查看效果。

Next.js App Router 经验总结

Avatar

Skyone

科技爱好者

写了很多 Next.js 的代码,总结了一下 Server Component 和 Client Component 的规律,希望对后来者有用。如果有错误,欢迎大佬指正!

使用 YubiKey 解密 LUKS 分区(续)

Avatar

Skyone

科技爱好者

在上一篇文章 使用 YubiKey 解密 LUKS 分区 之后我发现了两个问题:

  • 使用 Yubikey FIDO2 解密并不稳定,有时候还算要使用密码解密
  • 有时候强制使用 Yubikey 解密,不支持回退到密码解密

最近又查看了一下 ArchWiki1,最终解决了以上两个问题。写下这篇文章以作记录。

ArchLinux KDE Plasma安装及常见问题

Avatar

Skyone

科技爱好者

去年11月我写了一篇ArchLinux安装GNOME桌面,也正是那时候我将电脑的主要系统从Windows转到了ArchLinux。诚然, gnome 很好,如果你需要一个不需要折腾就能用的桌面环境,那么 gnome 是一个不错的选择。

我一开始也是这么想的,直到……今年 KDE Plasma 6 发布了。我不得不说,KDE Plasma 6 的演示视频真的很吸引人,所以我决定尝试一下,于是我又折腾了一遍系统,这次安装的是 KDE Plasma 桌面。新的大版本发布,肯定有大量的问题,尤其是搭配 NVIDIA 和 Wayland 这两个离谱的玩意。Wayland 由于 x11 历史包袱太重,经常出现兼容问题(尤其是 Chromium),而 NVIDIA 一直以来都是 Linux 用户的痛点,Linus 骂的一点都不冤。

现在新系统用了也有一段时间了,是该动笔记录一下,免得下次装又到处找资料。这次文章分两部分:安装 KDE Plasma 桌面和常见问题解决。欢迎大家在评论区补充。

CSS @scope 规则

Avatar

Skyone

科技爱好者

备注

本文是 MDN | @scope 的翻译,并根据我自己的理解进行了适当地修改和补充。采取与原文相同的许可证。

截至 2025 年 5 月,Firefox 仍然不支持 @scope 规则,但是 Chrome 与 Safari 已经支持。详情查看 Can i use @scope

@scope 可以让我们精确的定位 DOM 子树中的元素,而无需编写难以覆盖的过于特定的选择器,并且不会将选择器与 DOM 结构耦合得太紧密。

在 JavaScript 里,可以使用 CSSScopeRule 访问 @scope 规则。

View Transitions API 使用记录

Avatar

Skyone

科技爱好者

最近在写一个碧蓝档案学生 Pixiv 收藏数统计的网站,想要实现两个炫酷的功能:模仿碧蓝档案游戏内什亭之匣的页面切换动画和圆形扩散的明暗主题切换动画(就像 Android 版 Telegram 那样)。

本来已经把 SVG 和动画的关键帧画好了,忽然发现一个问题,我的网站是基于 Next.js App Router 的,但是 App Router 不支持监听 Router 事件,也就是说,我并不知道下一个页面什么时候完成加载,也就没办法选择合适的时机播放页面进入的动画。

一搜 Google,千篇一律全是使用 Framer Motion 或者 React Transition Group,但是我 CSS 的 @keyframes 动画已经写好了,不想再重写一遍,难道只用纯 CSS 不能实现?

正好昨天在 MDN 上看到了 View Transitions API 的介绍,这个 API 拿来做动画是真的方便,于是去 Can I use 查了一下,发现现在只有 Chrome 支持,不过也没关系,先实现再说。

经过一番尝试,终于实现了两个动画效果,本文就来介绍一下 View Transitions API 的基本用法。

使用 YubiKey 解密 LUKS 分区

Avatar

Skyone

科技爱好者

年前入手了两枚 YubiKey 5C NFC,一开始只是用于一些网站的双因素认证,后来发现 YubiKey 还可以用于解密 LUKS 加密的分区。这样就可以实现在启动时需要插入 YubiKey 才能解锁硬盘,在虚拟机了试了一下,发现效果很好!今天来记录一下如何使用 YubiKey 解密 LUKS 加密的分区。

首先准备材料:

  • 一个安装好的 Arch Linux 系统
  • 一枚支持 FIDO2 的 YubiKey

理论上任何 Linux 发行版都可以,但一些包名可能不一样。而且由于是基于 Linux 内核,是可以实现加密整个根分区的。

如果你只使用密码解密 LUKS 加密的分区,也可以不需要 YubiKey。这篇文章也包含了使用密码解密 LUKS 加密的分区的方法。

WireGuard 配置备忘录

Avatar

Skyone

科技爱好者

总结一下 WireGuard 的配置方法,以免长时间不用忘记。

主要包含以下内容:

  • 关键概念
  • 使用 wg-quick
  • 实际场景例子

文章基于 Arch Linux,理论上适用于所有 Linux 发行版。


隐私政策

Copyright © Skyone 2025