在 VPS 上部署

如何在 VPS 上设置带有实时预览和版本控制的 LumeCMS。

使用 LumeCMS 的最佳体验是将其连接到 Lume,这样它可以为更改生成实时预览。它还可以管理 git 仓库,以便拉取和推送更改到远程仓库,并使用分支创建不同的版本。

要求

你需要一台安装了 Ubuntu 24.04 的服务器。其他 Linux 版本也可能可以工作,但目前只测试过 Ubuntu 24.04。HetznerDigital Ocean 是不错的选择,如果你需要一个每月花费不到 5 美元的廉价且快速的 VPS。

你还需要一个域名或子域名来运行 CMS。为此,在你的域名 DNS 设置中,添加一条 A 记录,指向托管服务器的 IPv4 地址。

Tip

一个好主意是使用像 cmsadmin 这样的子域名。例如,如果你要管理的网站是 example.com,那么 CMS 可以放在 cms.example.comadmin.example.com

设置

cms-deploy 仓库中,有一个脚本可以自动设置 LumeCMS。该脚本不仅安装 LumeCMS,还会:

  • 安装/更新操作系统所需的软件包 (Deno, Git, Caddy 等)。
  • 使用 Caddy 设置 HTTPS 服务器,并使用 ufw 配置防火墙。
  • 克隆网站的 Git 仓库,并配置 LumeCMS 以推送/拉取更改。
  • 使用 systemctl 创建服务,以确保 CMS 始终运行,并在发生故障时重启。
  • 配置 cron 任务,以便在 CPU 使用率超过 95% 时重启服务 (参见此 Deno 问题)。

要执行此脚本,请通过 SSH 登录到服务器并运行以下命令:

curl https://lumeland.github.io/cms-deploy/install.sh > install.sh && sh install.sh

此命令将从仓库下载 install.sh 脚本并执行它。

Note

在某些时候,脚本会要求你确认一些步骤(例如安装软件包等),你必须允许。

安装过程会要求你提供一些信息:

仓库的 URL
git 仓库的 SSH URL,例如 git@github.com:user/repo.git
邮箱
用于 git 提交和创建 SSL 证书。
域名
CMS 的域名,例如 cms.example.com
用户名
用于登录 CMS。默认是 admin
密码
访问 CMS 的密码。

在此过程中,它将生成一个部署密钥,你必须将其添加到 GitHub:

  • 当你在终端中看到密钥时,将其复制到剪贴板。
  • 转到 GitHub 仓库:Settings > Deploy keys > Add deploy key
  • 粘贴密钥。
  • 勾选 Allow write access 选项。这是将更改推送到仓库所必需的。
  • 添加密钥后,在终端中按 Enter 键继续安装。

当脚本完成后,你应该能够从浏览器访问 CMS。

Note

首次访问 CMS 可能需要更长的时间,因为站点正在构建中,并且 Deno 需要下载所有依赖项。

演示

你可以在 cms-demo.lume.land 查看演示。

  • 用户名: admin
  • 密码: demo

在演示中,你可以编辑博客内容,创建不同的版本(存储在本地 git 分支中),甚至发布主分支的更改(将 main 分支的更改推送到你的远程仓库)。

此演示的远程仓库是 cms-demo-live