如何在您自己的基础设施上设置自托管开发环境(一步一步指南)
I’m happy to translate the article for you, but I need the full text you’d like translated. Could you please paste the content (excluding the source line you’ve already provided) here? Once I have it, I’ll translate it into Simplified Chinese while preserving all formatting, markdown, and code blocks.
前提条件
在开始之前,请确保您具备以下条件:
- 一台拥有 sudo/root 权限的 Linux 服务器(物理机或虚拟机)。
- 该服务器上可用的 ZFS 池,用于存放开发磁盘和快照。
- 开发者能够网络访问此服务器(或其前置的反向代理)。
第一步 – 准备带 ZFS 的 Linux 主机
-
从一台干净的 Linux 机器开始,它将作为你的开发环境主机。
-
选择现代发行版,如 Ubuntu、Debian 或 CentOS,并确保它拥有足够的 CPU、内存和磁盘空间,以便同时运行多个开发环境。
-
如果系统尚未安装 ZFS,请先安装,并创建一个专用于开发工作负载的 ZFS 池。
# Example: create a pool named "tank" sudo zpool create tank /dev/sdX # Create a dataset for Velovol sudo zfs create tank/velovol -
ZFS 提供写时复制快照和高效克隆,这正是我们快速启动可复现开发环境所需要的。
第 2 步 – 下载并启动 velovol‑adm
-
在你的 Linux 主机上安装 Velovol 管理服务(
velovol‑adm)。该组件负责管理项目、用户、基础磁盘、快照和克隆。 -
从官方发行源下载二进制文件或软件包,并将其放置在服务器的合适位置。
-
启动服务,可以直接在命令行中运行,也可以将其配置为 systemd 服务,使其在系统启动时自动运行。
# 示例 systemd 单元文件 (/etc/systemd/system/velovol-adm.service) [Unit] Description=Velovol Admin Service After=network.target [Service] ExecStart=/usr/local/bin/velovol-adm Restart=on-failure User=root [Install] WantedBy=multi-user.target -
通过检查日志(
journalctl -u velovol-adm -f)确认服务已在运行;如果提供了 Web UI,可在浏览器中打开管理界面进行验证。
Source: …
第3步 – 配置门户
门户是开发者访问其环境的入口点。它可以是网页仪表盘、SSH 端点,或与 VS Code Remote 等工具的集成。
-
在 Velovol 管理界面中,配置一个或多个门户,以匹配团队的工作偏好。
-
示例:设置一个主 HTTPS URL,并通过反向代理(例如 Nginx 或 Caddy)将其连接到
velovol‑adm。# Nginx example server { listen 443 ssl; server_name dev.yourcompany.com; ssl_certificate /etc/letsencrypt/live/dev.yourcompany.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/dev.yourcompany.com/privkey.pem; location / { proxy_pass http://127.0.0.1:8080; # velovol‑adm listening port proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } -
确保 DNS 正确配置,TLS 证书已就绪,以便开发者能够安全地从自己的机器访问门户。
第4步 – 将 Velovol 连接到 ZFS 存储
-
在 Velovol 中注册您的 ZFS 存储。这告诉系统在何处创建和存储基础磁盘、快照以及克隆磁盘。
-
在存储配置部分,将 Velovol 指向您的 ZFS 池或数据集,例如
/tank/velovol。 -
指定您想对每个项目或每个用户强制执行的配额或限制,并可根据工作负载可选地调优 ZFS 选项,如压缩或记录大小。
# Example ZFS options sudo zfs set compression=lz4 tank/velovol sudo zfs set recordsize=128K tank/velovol -
配置完成后,Velovol 将使用此 ZFS 后端为每个开发环境创建高效的写时复制卷。
Source: …
第5步 – 创建项目
- 打开 Velovol 管理界面。
- 使用清晰且具描述性的名称创建新项目(例如 “Payments Service” 或 “Monorepo‑Platform”)。
- 可选地添加描述,说明项目的目的、技术栈和所属团队。
拥有命名合理的项目可以在拥有多个项目和大量用户时更容易扩展。
第6步 – 创建用户并分配角色
-
在项目中,为每个需要访问权限的开发者创建用户账户。
-
根据职责分配角色:
- 管理员 – 可以管理基础磁盘和设置。
- 开发者 – 可以使用环境(使用快照和克隆)。
这种基于角色的模型有助于在团队规模扩大时保持环境的一致性和安全性。
第7步 – 创建基础磁盘(黄金环境)
- 创建一个全新的环境,以便将其用作此基础磁盘。
- 在该环境中,安装你的标准工具链:编译器、包管理器、构建工具、数据库客户端等。
- 克隆主仓库(或多个仓库),设置配置文件,并运行任何初始设置脚本,使环境能够构建并运行应用程序。
- 当所有内容配置满意后,将此环境保存为 Velovol 中的基础磁盘,以便作为模板重复使用。
第 8 步 – 挂载基础磁盘并开始开发
- 在门户或管理界面中,开发者选择项目并将基础磁盘作为新环境的起点。
- Velovol 挂载该磁盘(或其上方的可写层),并通过配置的访问方式(例如 SSH 或 VS Code Remote)对外提供。
- 开发者打开 IDE,连接到环境并开始工作。
由于底层数据通过 ZFS 快照和克隆共享,每位开发者都获得了轻量级、可写的工作区,同时存储消耗保持在最低水平。
🎉 一切就绪!
您现在拥有一个由 ZFS 和 Velovol 提供动力的完整自托管开发环境平台。开发者可以在几秒钟内启动隔离、可复现的环境,管理员则保留对资源、快照和安全性的细粒度控制。
如需进一步阅读、故障排除或高级配置,请参阅官方 Velovol 文档 。
第9步 – 卸载并创建快照
在将环境配置到期望状态后——例如,添加了特定依赖或自定义了项目设置——您可以通过快照捕获该状态。快照是磁盘的时间点只读副本,ZFS 能够快速高效地创建它们。
- 确保所有重要数据已写入磁盘,并且没有关键进程在运行。
- 卸载环境或停止 Velovol 界面中的任何运行会话。
- 创建磁盘的快照。
快照成为一个稳定的引用,您可以随时回滚到该状态,或将其用作新克隆环境的来源,而无需复制所有底层数据。
第10步 – 为其他用户克隆快照
当你为其他开发者克隆快照时,这套配置的真正威力就显现出来。与其让每个人手动搭建自己的环境,你只需创建一个快照,然后根据需要克隆任意次数。
- 在管理员界面