Skip to content

备份和恢复您的 Coolify 实例

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

有两种创建备份的方法:

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

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

本指南的其余部分将重点介绍手动备份方法,这是大多数用户的理想选择。

注意:

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

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

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

1. 创建手动备份

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

  2. 触发备份:
    点击立即备份按钮。这将在后台启动备份过程。

  3. 下载或复制备份位置:
    备份完成后,您将在界面中看到一个下载按钮和一个位置路径。

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

注意:

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

2. 获取您的 APP_KEY

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

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

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

    sh
    cat /data/coolify/source/.env

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

重要

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

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

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

  1. 在旧主机上找到 SSH 密钥:

    sh
    ls -l /data/coolify/ssh/keys

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

    sh
    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,请使用以下命令:

    sh
    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:

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

    sh
    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. 删除任何自动生成的密钥:
sh
rm -f /data/coolify/ssh/keys/*
  1. 将您的旧密钥文件移动到 /data/coolify/ssh/keys/

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

7. 更新恢复的环境设置

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

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

    sh
    nano /data/coolify/source/.env
  2. 添加以前的 APP 密钥:
    添加一个名为 APP_PREVIOUS_KEYS 的新环境变量,并粘贴您之前保存的 APP_KEY 的值:

    yaml
    APP_PREVIOUS_KEYS=your_previous_app_key_here

    保存并退出编辑器。

8. 重启 Coolify

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

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

    sh
    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 错误:
    仔细检查 APP_PREVIOUS_KEYS 变量是否已正确设置在您的 .env 文件中。

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

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

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

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