本文档用于自托管部署、升级前备份、迁移服务器或灾难恢复。当前版本只提供运维清单,不提供产品内导出/导入功能。
.env:包含端口、认证开关、Qdrant 配置、模型服务地址等运行配置。AUTH_PASSWORD、AUTH_SETUP_TOKEN、AUTH_RESET_TOKEN、AUTH_RESET_PASSWORD:只建议保存在部署环境或密码管理器中,不要提交到 Git。QDRANT_API_KEY:如果使用受保护的 Qdrant 实例,需要和.env一起保管。
STATE_FILE:默认本地为data/app-state.json,Docker 中通常是/app/data/app-state.json。CHAT_HISTORY_FILE:默认本地为data/chat-history.db,Docker 中通常是/app/data/chat-history.db。UPLOAD_DIR:默认本地为data/uploads,Docker 中通常是/app/data/uploads。- Docker 默认挂载:
./backend/data:/app/data,因此通常需要备份项目根目录下的backend/data。
QDRANT_STORAGE_PATH:dev/app compose 默认是./qdrant_storage。docker-compose.prod.yml:默认使用命名 volumeqdrant_storage。- 托管 Qdrant:按服务商提供的快照、备份或 collection 导出能力备份。
- 暂停写入,避免状态文件、SQLite 与 Qdrant 快照不一致。
- 停止后端服务,或至少确保没有文档上传、索引、聊天写入正在进行。
- 备份
.env与部署编排文件。 - 备份应用数据目录,例如
backend/data。 - 备份 Qdrant 持久化目录或 volume。
- 记录当前镜像版本、Git tag、Embedding 模型、
QDRANT_VECTOR_SIZE与QDRANT_COLLECTION_PREFIX。
Docker Compose 示例:
docker compose stop backend frontend如果需要完全一致的 Qdrant 数据快照,也可以在业务暂停后停止 Qdrant 再复制数据:
docker compose stop qdrant- 恢复
.env,确认端口、认证、数据路径、Qdrant 配置和模型服务地址正确。 - 恢复应用数据目录到
UPLOAD_DIR、STATE_FILE、CHAT_HISTORY_FILE对应位置。 - 恢复 Qdrant 数据到
QDRANT_STORAGE_PATH或 Docker 命名 volume。 - 确认文件权限允许后端容器读写
STATE_FILE、CHAT_HISTORY_FILE和UPLOAD_DIR。 - 先启动 Qdrant,确认
/health正常。 - 再启动后端和前端。
- 打开 Settings 和知识库页面,确认模型配置、知识库列表、文档列表和检索正常。
Docker Compose 示例:
docker compose up -d qdrant
docker compose up -d backend frontend.env不应提交到仓库;真实密码、Token、API Key 应放在服务器环境或密码管理器里。STATE_FILE会保存认证用户、session、API Key 哈希和知识库状态。API Key 明文只会在创建时展示一次,备份不会恢复明文 Token。CHAT_HISTORY_FILE是 SQLite 文件,备份时最好暂停写入。UPLOAD_DIR存放用户上传原始文件,可能包含敏感内容。- Qdrant 数据包含文档向量和 payload,迁移时应按同等敏感级别处理。
QDRANT_VECTOR_SIZE必须与 Embedding 模型输出维度一致。- 恢复旧 Qdrant 数据时,
QDRANT_COLLECTION_PREFIX应与备份时保持一致。 - 如果切换了 Embedding 模型且向量维度变化,不要复用旧 collection;建议更换新的
QDRANT_COLLECTION_PREFIX并重建索引。 - 如果开启
ENABLE_HYBRID_SEARCH,旧 collection 可能缺少 named dense/sparse vector 配置;建议使用新前缀并重新索引。 - 如果只恢复
STATE_FILE但没有恢复 Qdrant 数据,知识库列表可能存在,但检索结果会缺失,需要重新索引文档。
.envbackend/data/app-state.json或自定义STATE_FILEbackend/data/chat-history.db或自定义CHAT_HISTORY_FILEbackend/data/uploads或自定义UPLOAD_DIRqdrant_storage目录或 Docker 命名 volumeqdrant_storage- 当前版本号、Embedding 模型、
QDRANT_VECTOR_SIZE、QDRANT_COLLECTION_PREFIX