Coolify logoCoolify

备份和恢复您的 Coolify 实例

本指南将向您展示如何备份您的 Coolify 实例并在新服务器上恢复它。

有两种创建备份的方法:

  • S3 备份: 使用与 S3 兼容的存储来自动保存备份。
  • 手动备份: 从 Coolify 仪表板手动触发备份。

如果您使用与 S3 兼容的存储,只需从您的 S3 提供商下载备份文件并将其传输到新服务器即可。

本指南的其余部分将重点介绍手动备份方法,这适合大多数用户。

注意:

这仅备份和恢复 Coolify 实例本身——而不是您的应用程序数据。

您的 Coolify 仪表板中的所有设置都将恢复,但应用程序数据(例如卷挂载)必须手动备份和恢复。

有关详细信息,请参阅 应用程序迁移指南

1. 创建手动备份

  1. 转到仪表板上的备份页面:
    在您的 Coolify 仪表板中,单击 设置 并选择 备份 选项卡以查看您的数据库和备份设置。

    备份恢复 Coolify 的屏幕截图
  2. 触发备份:
    单击 立即备份 按钮。这将启动后台的备份过程。

    备份恢复 Coolify 的屏幕截图
  3. 下载或复制备份位置:
    备份完成后,您将在 UI 中看到 下载 按钮和位置路径。

    备份恢复 Coolify 的屏幕截图
    • 下载: 将备份文件保存到本地计算机。
    • 复制路径: 您可以使用 SCP 等工具将此路径用于将备份文件直接传输到新服务器。

注意

如果您使用与 S3 兼容的存储进行备份,请从您的 S3 提供商下载备份文件

2. 获取您的 APP_KEY

在恢复备份之前,您需要从当前的 Coolify 实例获取 APP_KEY。此密钥用于在恢复期间解密您的数据。

  1. 打开 Coolify 中的终端:
    访问仪表板中的 终端 选项卡并连接到运行 Coolify 的服务器。默认情况下,该服务器命名为 localhost

  2. 查看环境文件
    运行以下命令以显示 .env 文件的内容:

    cat /data/coolify/source/.env

    复制 APP_KEY 的值并安全保存。此密钥对恢复过程非常重要。

重要

安全保存此 APP_KEY。没有它,您无法恢复备份。

3. 备份您的 Coolify SSH 私钥和公钥

Coolify 在 /data/coolify/ssh/keys 下生成一个(或多个)SSH 密钥文件。如果您将 Coolify 恢复到新机器上,您必须携带这些密钥文件,以便您的托管服务器保持可达。

  1. 在旧主机上定位 SSH 密钥:

    ls -l /data/coolify/ssh/keys

    您应该看到如下命名的一个或多个文件:

    ssh_key@<random_id1>
    ssh_key@<random_id2>
    ssh_key@<random_id3>

    每个 ssh_key@… 条目代表 Coolify 用于 SSH 到您的服务器的 ED25519 密钥。

  2. 将所有这些 SSH 密钥文件复制到您的新主机服务器并存储在安全位置(我们将在本指南的稍后部分需要此文件)。

  3. 获取公钥:

    从旧服务器的 ~/.ssh/authorized_keys 文件中获取公钥,并将它们追加到新服务器的 ~/.ssh/authorized_keys 文件中(不要替换现有条目)。

4. 准备您的新服务器

设置您将恢复 Coolify 实例的新服务器。

  1. 安装全新的 Coolify 实例:
    遵循 安装说明 在新服务器上安装 Coolify。

    务必在安装脚本末尾包含正确的版本号(例如:-s 4.0.0-beta.400),以确保您安装的是与之前相同的 Coolify 版本。

    例如,要安装版本 4.0.0-beta.400,请使用此命令:

    curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash -s 4.0.0-beta.400

    请记住将 4.0.0-beta.400 替换为所需的版本号。

  2. 验证安装:
    在浏览器中访问您的新 Coolify 实例。全新安装将显示注册页面,表明尚不存在任何数据。

5. 传输和恢复备份

  1. 传输备份文件:
    将备份文件和 SSH 密钥复制到新服务器。您可以通过 SCP、FTP 或任何其他安全文件传输方法执行此操作。

  2. 停止 Coolify:

    docker stop coolify coolify-redis coolify-realtime coolify-proxy
  3. 运行恢复命令:
    使用 PostgreSQL 恢复工具将备份导入数据库容器。

    cat /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 下的密钥文件。

  1. 删除任何自动生成的密钥:
rm -f /data/coolify/ssh/keys/*
  1. 将您的旧密钥文件移动到 /data/coolify/ssh/keys/

    这些是您在 第 3 步 复制到新主机服务器的文件

7. 更新恢复的环境设置

恢复备份后,更新您的环境配置以允许新实例使用旧数据。

  1. 编辑环境文件:
    使用您喜欢的文本编辑器打开 .env 文件:

    nano /data/coolify/source/.env
  2. 添加之前的 APP 密钥: 添加一个名为 APP_PREVIOUS_KEYS 的新环境变量,并粘贴您之前保存的 APP_KEY 的值。如果您迁移了多次,您可以列出多个用逗号分隔的密钥(确保它们之间没有空格):

    # 单个密钥示例:
    APP_PREVIOUS_KEYS=your_previous_app_key_here
    # 多个密钥示例
    APP_PREVIOUS_KEYS=app_key_1,app_key_2,app_key_3

    保存并退出编辑器。

8. 重启 Coolify

要应用恢复的备份和更新的环境设置,请使用安装脚本重启您的 Coolify 实例。

  1. 运行安装脚本:
    重新运行 Coolify 安装命令:

    curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash -s 4.0.0-beta.400

    请记住将 4.0.0-beta.400 替换为所需的版本号。

  2. 验证恢复:
    访问您的 Coolify 仪表板 URL 并使用之前实例的相同凭据登录。您的项目、部署和设置现在应该已恢复。

故障排除

  • 登录或项目访问时的 500 错误:
    仔细检查 .env 文件中是否正确设置了 APP_PREVIOUS_KEYS 变量。

  • 权限被拒绝错误:
    如果在访问目录时遇到权限问题,请更改 /data/coolify 目录的所有权。由于 Coolify 使用 root 用户账户,请确保所有权设置为 root

    sudo chown -R root:root /data/coolify
  • 服务器不可达(权限被拒绝): 如果 Coolify 无法 SSH 到您的服务器,因为它没有相同的密钥文件。

    确保您从旧主机复制了所有 /data/coolify/ssh/keys/,然后将它们放置在新主机的 /data/coolify/ssh/keys/ 下。如果这些文件与旧服务器上的文件不完全匹配,您将看到此错误。

    此外,确保将旧主机的 authorized_keys 文件中对应的公钥添加到新主机的 ~/.ssh/authorized_keys 中。

On this page