跳转至主要内容

AI 编程之项目部署工具 Coolify 的备份与迁移教程

ghostart

随着 AI 的普及,大部分人通过 Vibe Coding 制作的单页应用可以通过 Vercel, Netlify 这类平台部署,但是对于一些复杂的项目或者你希望数据掌握在自己手中,使用 Coolify 会是更合适的选择,它可以部署几乎任何 Docker Base 的应用。

本篇要介绍的内容不是 Coolify 的安装与使用,而是 Coolify 的备份和迁移。

使用场景

什么时候需要备份和迁移呢?比如你可以配置定期备份(VPS Local + CloudFlare R2),这样即使 VPS 出故障丢失了数据,至少也可以恢复 Coolify 后台的信息,不需要重新设置和配置每个项目的选项。

除此之外当你买了更好的 VPS 或者需要更换使用其他 VPS 的时候,通过快速迁移可以几乎无损地迁移到另一台 VPS 上,即便你在 Coolify 上部署了很多个项目,也只需要点击 Deploy 重新部署一遍即可,而不需要手动去添加和设置,十分高效。

备份原始密钥

在进行迁移之前,一定要在旧 VPS 上备份 APP_KEY 而不要急着重装系统,否则数据无法解密!

执行以下指令,将 APP_KEY 复制下来备用:

cat /data/coolify/source/.env

大概长这样:

APP_KEY=base64:LeRJqIa26ZrZyI7NymOuB4vGCq0C1Y4Ez6hHkdketws=

下载数据库备份

Settings ~ Backup 或 CloudFlare R2 下载备份的 .dmp 文件

Coolify-Backup

安装 Coolify

备份了 旧 VPS 之后就可以在新 VPS 上安装 Coolify 了。建议安装跟旧 VPS 上 Coolify 的相同版本(后台左上角可以查看到),因为新版本的数据库结构可能跟旧版本的不同而导致无法恢复。

安装最新版

curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash

安装特定版本(推荐)

  • 修改成旧 VPS 上对应的 Coolify 版本号再执行
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash -s 4.0.0-beta.426

安装完成之后可以通过 IP:8000 打开 Coolify 后台,但不需要进行设置。直接进入下一步。

上传数据库文件

将之前下载的备份文件上传到新 VPS 根目录,上传之前先重命名方便后续使用:

pg-dump-coolify.dmp

恢复数据库

  • 先停止 Coolify 相关容器,再执行恢复命令
docker stop coolify coolify-redis coolify-realtime

此时再执行 docker ps 只会看到 postgres 容器。

  • 恢复数据库(确保数据库文件已重命名并上传到根目录):
cat /root/pg-dump-coolify.dmp \
  | docker exec -i coolify-db \
    pg_restore --verbose --clean --no-acl --no-owner -U coolify -d coolify

更新环境变量

vim /data/coolify/source/.env
  • APP_KEY 下方添加一行(替换对应的值为原 VPS APP_KEY 的值):
APP_PREVIOUS_KEYS=base64:qFIaQZ8HTbaExGBiSTLNuWzVTQC7+EYBtzua4xh56bs=
APP_PREVIOUS_KEY

重新安装 Coolify

  • 安装最新版
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash
  • 安装旧 VPS 上的相同版本(推荐,注意修改对应的版本号)
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash -s 4.0.0-beta.426

登录 Coolify 后台

使用你的 VPS IP:8000 访问 Coolify 后台,此时会发现不会自动进入到 /register 页面了,使用原账号密码即可登录后台。

如果原 VPS 修改过 SSH 端口,登录之后在 Server 中会显示为 Not reachable,修改以下信息然后点击 Validate Server

  • 先修改 IP、SSH 端口、域名等信息并点击 Save 保存
  • 再点击 Private Key 添加和点击切换 Use this Key
  • 最后 Validate Server
  • 必要的话重启一下 Proxy,然后通过域名访问 Coolify 后台

其中,生成新的 Private Key 可以参考下图:

New Private Key

点击 +Add Generate 之后取一个 Name,然后双击复制 Public Key,粘贴到 ~/.ssh/authorized_keys 中:

vim  ~/.ssh/authorized_keys

原有的第一行不用删除,直接在后面换行添加并保存即可:

SSH KEYs

验证 Server

此时点击 Validate Server

Validate Server

没问题就会显示 Server is reachable

server reachable

如果有红色报错信息则可能是数据库恢复不成功或者 APP_KEY 没有准确添加为 APP_PREVIOUS_KEYS

部署项目

完成以上操作之后,就可以在 Projects 中点击 Deploy 进行项目部署了。

自动部署

如果你之前在 Sources 中配置了 Github App,在本地修改代码并推送之后,会自动开始部署,如下图所示:

auto-deploy

至此,这篇教程完结。如果你平常主要是通过 Github 关联 Coolify 部署一些项目,这个备份和恢复方法已经足够使用。而如果你平时用到比较多的 Docker 容器,如果数据挂载在 Volumes 中,可以参考 Coolify 官方文档进行迁移:

Migrate Applications | Coolify
Step-by-step guide to migrate applications, databases, and Docker volumes from one Coolify server to another with backup and restore scripts