手册基线 Windows 0.2.67 · 自托管参考 2026-10-18 · 按标题和主题查找

在隔离环境恢复服务器

项目现名「聊记」;历史安装器及合成图示可能显示旧名「留痕」。界面请对照适用版本。

本页目录

前置条件

  • 选定已深校验备份 ID,并保存对应源码和版本。
  • 备份读凭据、附件端点/桶/区域及凭据能在独立位置取得。
  • 使用新主机或独立项目、新空卷,不挂载生产卷。

起点:隔离目录 deploy/self-hosted,.env 使用独立项目名和回环端口。

初始化恢复环境

  1. 编辑独立项目名和端口,核对卷未被任何生产或旧演练使用。
  2. 显式构建并初始化信任链与空卷:
    docker compose --env-file .env build api cert-init data-init
    docker compose --env-file .env run --rm cert-init
    docker compose --env-file .env run --rm data-init
  3. 核对目标为空、凭据文件允许 UID 10001 读取。
    • 预期:有 CA bundle 与空恢复目标;不要先启动 API 或 provision。

使用临时读配置恢复

起点:空 api_data 卷,API 尚未启动。

  1. 临时配置放 /tmp/boot,恢复写入空目标:
    docker compose --env-file .env run --rm \
      -e CHAT_ARCHIVE_DATA_DIR=/tmp/boot \
      -v "$PWD/restore-secrets:/cred:ro" api sh -ec '
        mkdir -p /tmp/boot
        python -m chat_archive.server.cli backup config-set \
          --endpoint https://cos.ap-nanjing.myqcloud.com \
          --bucket YOUR_BACKUP_BUCKET --region ap-nanjing --prefix backup \
          --secret-id-file /cred/id --secret-key-file /cred/key
        python -m chat_archive.server.cli backup restore \
          --backup-id YOUR_VERIFIED_BACKUP_ID --target /var/lib/chat-archive
      '
    使用自己的目标信息和已核验备份 ID;周/月备份增加对应 --tier。
  2. 启动隔离 API,检查回环健康;需要网页登录时使用受控 HTTPS 入口。
  3. 根据恢复提示重设网页认证、重填对象存储与备份凭据。
    • 预期:消息恢复,搜索后台重建;旧加密凭据不可直接使用。
  1. 核验备份
  2. 独立项目空卷
  3. 临时读配置
  4. 恢复
  5. 认证与附件核对
按顺序完成并核对每一步

验证

对象存储 endpoint、bucket、region 必须与恢复库原值逐字一致; 额外斜杠也可能推进存储代号,让旧附件不可用。 核对计数、已知正文、附件读取、索引状态与重新启用的备份。

历史合成恢复见版本与验证边界;本手册基线核对时未执行恢复、访问真实桶或异地演练。 历史演练时间不是当前 RTO 保证,验证后不自动切换生产。

失败时

非空目标停止,不通过删目录强行重试。config-set 会写 backup.sqlite, 所以必须与空恢复目标分开。CA、凭据和代号问题先解决根因; 生产切换与回退见服务器运维。