全部内容,而不是前半部分。
每份指南都将一个空实例变成一项你可以将真实流量指向的服务。命令按打印顺序从上到下运行,占位符已标记为占位符,最后一部分始终是测试。这里没有指南以“然后根据口味配置其余部分”结束。
指南不是知识库条目
两种格式都存在,因为每种格式在做对方的工作时都很糟糕。将它们混合,你会得到那种解释每个标志作用的文档,却从不告诉你需要哪些标志。
知识库在一分钟内回答问题。指南花费你一个下午,并在最后留下一个运行的服务器。
知识库条目以你已有的东西和它的错误之处开始:重启后无法恢复的挂载、续订但未重新加载的证书、无法获取提示符的救援控制台。它之所以短,是因为上下文已经在你的脑海中。你带着问题来,带着答案离开。
一本指南始于一无所有。你已经支付了发票,拿到了 root 凭据,而机器是一台未经配置的镜像,位于你因自己的原因选择的城市。最后你得到了一个通过认证检查的邮件服务器,或者一台运行嵌套客户机的 hypervisor,或者两个太字节的数据,它们与你今天早上所在的国家不同。上下文是在过程中建立的,这也是为什么这些指南长达数千字而不是二百字。
这样写更费功夫,也更容易发现错误。本页的每篇指南在发布前都在新部署的实例上从头到尾运行过,并且每当上游项目发布破坏性的改动时都会重新运行。每篇标题顶部的日期是最后运行的日期,而不是某个人草草浏览过的日期。
一件完整的事
不是六种选择加耸肩的概览。每篇指南选择一个方法,说明为什么,然后构建它。如果真的有替代方案,用一句话和一个链接说明,然后继续。
按顺序执行的命令
在全新镜像上按打印顺序复制它们就能运行。如果第九步需要第二步安装的软件包,第二步就会安装它。不依赖任何你没有被告知创建的状态。
一台命名的机器
每一次构建都说明它是在哪一行上写的,以及如果你使用更小的配置会发生什么。假设 64 GB ECC 内存的 Postgres 调优对于 16 GB 的盒子是无用的建议,所以我们在开头说了。
枯燥的中间部分
文件所有权、systemd 单元加固、防火墙规则、日志轮转。这是大多数教程跳过而决定服务在三月是否仍在运行的部分。
最后的测试
每篇指南都以命令结束,其输出能明确告诉你构建是否成功。不是“你现在应该看到登录页面”,而是有退出码或可读的头部。
“如果页面最后一行的内容是“然后配置你的防火墙”,那不是指南,而是购物清单。”
如何在不花费整个晚上的情况下遵循一篇指南
这些是为那些在输入任何命令之前阅读整页的人写的。这个习惯每次构建大约能节省一个小时。
除非指南另有说明,否则假设为全新的 Debian 13 镜像和 root shell。其他一切在前两段中说明。
- 01
部署一些全新的东西
把指南应用于一台已经运行着三项服务的机器,你会发现它们中有一个悄然占用了 8080 端口。新实例不到一分钟就能创建,之后可以销毁。
- 02
通读一遍
特别是 DNS 步骤。这里一半的构建需要某个记录传播后后续命令才能成功,而了解到这一点的最便宜方式是第一次阅读时,而不是在第十一步。
- 03
替换占位符
任何类似于 example.com、2001:db8: 或 <尖括号> 的内容都由你来替换。文档范围是刻意使用的,以便复制粘贴错误能够响亮的失败,而不是悄然到达陌生人的网络。
- 04
在不可逆部分之前快照
重新分区、发行版升级,任何涉及“擦除”一词的操作。快照包提供五个槽位,并且恢复在几秒内完成,这比重复第一步到第九步更便宜。
- 05
运行验证
它是每篇指南的最后一节,它的存在是因为“它似乎启动了”与“它正常工作是两码事。花两分钟检查比从用户那里发现问题要好。
本页没有任何内容将远程脚本管道传输到 shell。如果上游项目只提供这种方式安装程序,指南会展示如何获取它、阅读它并将其作为文件运行——你应该知道你的机器上装了什么,我们也是。
每篇构建需要哪些机器
其中大多数在最小的 Ryzen 实例上运行良好。其中有四个不适用,选错这些行会浪费你一个下午,然后才能进入有趣的部分。
如果指南指定了某个方案,那就是经过测试的方案。选更小的通常没问题,如果不行会在文中注明。选更大的不会改变任何东西,只会改变你填入配置文件中的数值,而这些指南中涉及算术的部分会展示算术过程。
| 构建目标 | 项目 | 为什么选这个 |
|---|---|---|
| WireGuard、Tor 中继、Matrix、监控 | Ryzen R-4 | 单线程、网络密集、工作集很小。更多核心不会改变任何东西。 |
| 邮件服务器、CI 运行器、Nextcloud | Ryzen R-8 | 构建步骤和反垃圾邮件都依赖快速核心。镜像构建是这里最重的负载。 |
| Postgres | EPYC E-8 及以上 | 该指南中的调优假设 64 GB ECC 内存以及 NUMA 感知的绑定。 |
| 本地推理 | GPU G-L40S | 48 GB 显存,直通访问。共享显卡是别人的排队问题。 |
| Seedbox | 存储 S-50 | 50 TB 大容量存储,前置 NVMe 写入层,端口带宽足以快速清空。 |
| Proxmox 及嵌套客户机 | 裸金属 BM-E | 嵌套虚拟化需要物理机。中间没有我们的虚拟机管理程序。 |
| 在两个站点之间移动两 TB 数据 | 任意两个实例 | 针对存储节点和 Ryzen 机器编写,但方法在任何规模下都一样。 |
每个指南都假设每个实例附带路由的 IPv6 /64 前缀。其中两个指南要求使用 /48 前缀,因为从单个 /64 分配每个客户端的子网意味着要代理邻居发现,而代理 IPv6 是你以排障为生而非运行的东西。
隐私
03基础设施
04Development
02关于指南的问题,而非关于构建的问题
大部分能用。属于我们的是面板步骤、路由前缀以及专用核心的假设。其他都是原版 Debian 和上游软件,因此命令可以移植到任何提供 root 且不超卖 CPU 的提供商。
因为把十二个指南写五遍会让文档过时。Debian 13 是我们的默认镜像,软件包名称多年不变,将某个步骤转换为 AlmaLinux 或 Alpine 只是替换包管理器,而不是重写。完整镜像列表见操作系统页面。
告诉我们。当我们听到某个指南失效时,会针对全新镜像重新运行,修正版会在同一周发布,并更新顶部的日期。提交包含命令和错误的工单就足够了,您无需为我们诊断。
我们支持底层机器、网络和存储。凌晨三点调试您的 Postfix map 文件不属于支持范围,而且我们也不擅长。托管加固可以作为附加服务,由他人维护基线。
其中八个可以,而且 R-4 是几个指南的编写环境。Postgres、推理、seedbox 和 Proxmox 构建需要上面表格中指定的方案;其余的在四个专用核心和 16 GB 内存下运行舒适。