备份和恢复您的 Coolify 实例
本指南将向您展示如何备份 Coolify 实例并在新服务器上恢复它。
有两种创建备份的方法:
- S3 备份:使用兼容 S3 的存储自动保存备份。
- 手动备份:从 Coolify 仪表板手动触发备份。
如果您使用兼容 S3 的存储,只需从您的 S3 提供商下载备份文件并将其传输到您的新服务器。
本指南的其余部分将重点介绍手动备份方法,这是大多数用户的理想选择。
注意:
这仅备份和恢复 Coolify 实例本身——不包括您的应用程序数据。
Coolify 仪表板中的所有设置都将被恢复,但应用程序数据(如卷挂载)必须手动备份和恢复。
有关详细信息,请参阅应用程序迁移指南。
1. 创建手动备份
进入仪表板的备份页面:
在您的 Coolify 仪表板中,点击设置并选择备份选项卡以查看您的数据库和备份设置。
触发备份:
点击立即备份按钮。这将在后台启动备份过程。
下载或复制备份位置:
备份完成后,您将在界面中看到一个下载按钮和一个位置路径。
- 下载: 将备份文件保存到您的本地计算机。
- 复制路径: 您可以使用此路径通过 SCP 等工具将备份文件直接传输到您的新服务器。
注意:
如果您使用兼容 S3 的存储进行备份,请从您的 S3 提供商下载备份文件
2. 获取您的 APP_KEY
在恢复备份之前,您需要从当前的 Coolify 实例获取 APP_KEY。此密钥用于在恢复过程中解密您的数据。
在 Coolify 中打开终端:
访问仪表板中的终端选项卡并连接到运行 Coolify 的服务器。默认情况下,此服务器名为localhost。查看环境文件
运行以下命令以显示.env文件的内容:shcat /data/coolify/source/.env复制
APP_KEY的值并安全保存。此密钥对恢复过程很重要。
重要
请安全保存此 APP_KEY。没有它,您无法恢复备份。
3. 备份您的 Coolify SSH 私钥和公钥
Coolify 在 /data/coolify/ssh/keys 下生成一个(或多个)SSH 密钥文件。如果您将 Coolify 恢复到新机器上,则必须带上这些密钥文件,以便您的托管服务器保持可访问状态。
在旧主机上找到 SSH 密钥:
shls -l /data/coolify/ssh/keys您应该会看到一个或多个如下命名的文件:
shssh_key@<random_id1> ssh_key@<random_id2> ssh_key@<random_id3>每个
ssh_key@…条目代表 Coolify 用于 SSH 连接到您的服务器的 ED25519 密钥。将所有这些 SSH 密钥文件复制到您的新主机服务器并存储在安全的位置(我们将在本指南的后面部分需要这些)。
检索公钥:
从旧服务器的
~/.ssh/authorized_keys文件中检索公钥,并将它们附加到新服务器的~/.ssh/authorized_keys文件中(不要替换现有条目)。
4. 准备您的新服务器
设置您将在其中恢复 Coolify 实例的新服务器。
安装全新的 Coolify 实例:
按照安装说明在新服务器上安装 Coolify。确保在安装脚本末尾包含正确的版本号(例如:
-s 4.0.0-beta.400),以确保您安装的是与之前相同的 Coolify 版本。例如,要安装版本
4.0.0-beta.400,请使用以下命令:shcurl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash -s 4.0.0-beta.400请记住将
4.0.0-beta.400替换为所需的版本号。验证安装:
在浏览器中访问您的新 Coolify 实例。全新安装将显示注册页面,表示尚无数据存在。
5. 传输和恢复备份
传输备份文件:
将备份文件和 SSH 密钥复制到新服务器。您可以通过 SCP、FTP 或任何其他安全的文件传输方法执行此操作。停止 Coolify:
shdocker stop coolify coolify-redis coolify-realtime coolify-proxy运行恢复命令:
使用 PostgreSQL 恢复工具将备份导入数据库容器。shcat /path/to/your_backup_file \ | docker exec -i coolify-db \ pg_restore --verbose --clean --no-acl --no-owner -U coolify -d coolify您必须将
/path/to/your_backup_file替换为服务器上备份文件的路径。注意:
可能会出现一些关于现有外键或序列的警告,如果基础结构保持完整,这些通常可以忽略。
6. 替换自动生成的 SSH 密钥
替换 /data/coolify/ssh/keys 下的密钥文件。
- 删除任何自动生成的密钥:
rm -f /data/coolify/ssh/keys/*将您的旧密钥文件移动到
/data/coolify/ssh/keys/这些是您在步骤 3中复制到新主机服务器的文件
7. 更新恢复的环境设置
恢复备份后,更新您的环境配置以允许新实例使用旧数据。
编辑环境文件:
使用您首选的文本编辑器打开.env文件:shnano /data/coolify/source/.env添加以前的 APP 密钥:
添加一个名为APP_PREVIOUS_KEYS的新环境变量,并粘贴您之前保存的APP_KEY的值:yamlAPP_PREVIOUS_KEYS=your_previous_app_key_here保存并退出编辑器。
8. 重启 Coolify
要应用恢复的备份和更新的环境设置,请使用安装脚本重启您的 Coolify 实例。
运行安装脚本:
重新运行 Coolify 安装命令:shcurl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash -s 4.0.0-beta.400请记住将
4.0.0-beta.400替换为所需的版本号。验证恢复:
访问您的 Coolify 仪表板 URL,并使用先前实例的相同凭据登录。您的项目、部署和设置现在应该已恢复。
故障排除
登录或项目访问时出现 500 错误:
仔细检查APP_PREVIOUS_KEYS变量是否已正确设置在您的.env文件中。权限拒绝错误:
如果您在访问目录时遇到权限问题,请更改/data/coolify目录的所有权。由于 Coolify 使用 root 用户帐户,请确保所有权设置为root:shsudo chown -R root:root /data/coolify服务器不可达(权限拒绝): 如果 Coolify 无法通过 SSH 连接到您的服务器,因为它没有相同的密钥文件。
确保您从旧主机复制了所有
/data/coolify/ssh/keys/,然后将它们放置在新主机的/data/coolify/ssh/keys/下。如果这些文件与旧服务器上的不完全匹配,您将看到此错误。此外,请确保旧主机的
authorized_keys文件中的相应公钥已添加到新主机的~/.ssh/authorized_keys中。
