为 Next.js 静态导出实现图片优化
Skyone
科技爱好者
如你所见,我的 Blog 是基于 Next.js 开发的,使用的是静态导出扔到 Cloudflare Pages,省心省事。
我不使用图床,习惯将图片和文章一起在同一个仓库里管理。然而 Next.js 的图片优化在静态导出模式下是不可用的。 后端是纯静态的,确实无法在运行时生成适合浏览器的图片。
但图片优化真的不能做吗?显然不是,下面我将分享我的做法。
Skyone
科技爱好者
如你所见,我的 Blog 是基于 Next.js 开发的,使用的是静态导出扔到 Cloudflare Pages,省心省事。
我不使用图床,习惯将图片和文章一起在同一个仓库里管理。然而 Next.js 的图片优化在静态导出模式下是不可用的。 后端是纯静态的,确实无法在运行时生成适合浏览器的图片。
但图片优化真的不能做吗?显然不是,下面我将分享我的做法。
Skyone
科技爱好者
飞牛OS 路径穿越漏洞敲响警钟:仅靠强密码无法防御软件漏洞。
本文详解如何用 mTLS(双向 TLS 认证)保护自建 NAS、Web 服务、API 等,包含反向代理配置(以 Traefik 为例)、OpenSSL 生成证书、浏览器/App 导入证书的指南。
Skyone
科技爱好者
你是否遇到过需要为不支持认证的服务添加认证的情况?TinyAuth 是一个轻量级的认证代理,可以帮助你为这些服务添加基本的认证。本文将介绍如何使用 TinyAuth 和 Traefik 实现简单的认证代理。
TinyAuth 支持包括 GitHub OAuth、简单密码认证在内的多种认证方式,这里我使用 Pocket ID 为例。
Skyone
科技爱好者
我一直使用 Cloudflare tunnel 来隐藏 Misskey 的 IP 地址,但是昨天晚上忽然想到,由于 misskey 是基于 ActivityPub 协议的,在服务器与其他服务器之间的通信中,IP 地址是公开的,如果攻击者构造了一个恶意的 ActivityPub 实现,马上就能拿到 Misskey 源站的 IP 地址。
想要避免这种情况,只能为 Misskey 的源站添加代理,而 Cloudflare Warp 就是一个不错的选择。本文根据大佬们的经验完成了 Misskey 的 Cloudflare Warp 配置。
Skyone
科技爱好者
如你所见,博客已经有一段时间没有更新了,今天抽空来除除草,也让大家这个网站还在持续更新。
最近工作比较忙,项目在赶进度,确实是没有多少时间来写博客。虽然如此,最近还是有一些事情可以分享的,那么就开一个新的系列「随笔」吧,不定期
记录最近做的有趣的事
Skyone
科技爱好者
去年从 ext4 文件系统切换到了 btrfs,当时主要看中的是快照功能。最开始使用的是 timeshift,能用,但是可定制性不够,遂尝试 直接手动创建快照。
自从用了快照,最显著的变化是:折腾各种危险的东西再也不需要使用虚拟机,直接host开搞,最坏不过回滚一下快照,重新生成一下 GRUB,一个健康的系统就又回来了。
当然,快照大多了,就开始考虑怎么自动化,于是简单写了个脚本,试了一下还不错,放在本文后面了。
Skyone
科技爱好者
最近发现博客的评论系统后端有点问题,占用内存过于的大了(基于 Node.js + PostgreSQL,RES 内存占用 200MB+55MB),这不正常。而且我在国内的唯一一个服务器只有 2G 内存,很容易就被干满了。所以决定使用一个编译型语言重写一下。
最开始选的其实是 Golang,因为被网上传的 Rust 入门太难吓住了😂,试了一下发现 Golang 的 ORM 实在是太难用了,而且我非常讨厌 Golang 的语法,所以还是决定用 Rust 了。
Skyone
科技爱好者
PeerTube 是一个自由开源的去中心化视频分享平台,它使用 WebTorrent 技术来实现 P2P 视频流传输。本来想用 PeerTube 来搭建一个视频分享平台,但是发现 PeerTube 的 Docker 部署文档有很多缺失的细节,所以写了这篇文章来记录一下 PeerTube 的 Docker 部署过程。
我已经搭建好了一个示例,大家可用访问 https://video.akk.moe 查看效果。
Skyone
科技爱好者
写了很多 Next.js 的代码,总结了一下 Server Component 和 Client Component 的规律,希望对后来者有用。如果有错误,欢迎大佬指正!
Skyone
科技爱好者
在上一篇文章 使用 YubiKey 解密 LUKS 分区 之后我发现了两个问题:
最近又查看了一下 ArchWiki1,最终解决了以上两个问题。写下这篇文章以作记录。