部署教程
Kopia 部署教程:网站文件快照、加密仓库与恢复
用 Docker 部署 Kopia,区分来源目录和备份仓库,创建快照并恢复文件。
为网站文件保留多个时间点
Kopia 可以为目录创建加密、去重快照。附件、配置和数据库导出纳入来源目录,误删或改错文件后可以选择旧快照恢复。本篇先用本地仓库演示,再说明切换远端存储的步骤。
注册推荐码:KuZhuJi
建立配置和数据目录
VPS 需要 Docker 与 Compose。先建立配置、缓存、日志、演示仓库和恢复目录:
mkdir -p ~/kopia/{config,cache,logs,repository,restore}
cd ~/kopia准备已有来源目录 /srv/example-files。创建 .env,分别填写 KOPIA_PASSWORD 和 KOPIA_UI_PASSWORD,可用 openssl rand -hex 32 生成独立密码。仓库密码负责解密备份,Web 密码负责登录界面。
启动私人管理界面
保存下面的 compose.yaml。来源目录映射为 /data,只允许读取;恢复目录是 /restore。
services:
kopia:
image: kopia/kopia:latest
hostname: vps-backup
ports:
- "127.0.0.1:51515:51515"
environment:
KOPIA_PASSWORD: ${KOPIA_PASSWORD:?set repository password}
USER: backup
command:
- server
- start
- --insecure
- --address=0.0.0.0:51515
- --server-username=operator
- --server-password=${KOPIA_UI_PASSWORD:?set web password}
volumes:
- ./config:/app/config
- ./cache:/app/cache
- ./logs:/app/logs
- /srv/example-files:/data:ro
- ./repository:/repository
- ./restore:/restore
restart: unless-stopped--insecure 在这里表示容器内使用 HTTP;宿主机只映射 127.0.0.1,远程通过 SSH 隧道访问。固定 hostname 和 USER,重建后沿用来源身份。
chmod 600 .env
docker compose config --quiet
docker compose up -d
docker compose logs --tail=100 kopia
ssh -L 15151:127.0.0.1:51515 user@your-server本机打开 http://127.0.0.1:15151,用 operator 和 Web 密码登录。
创建仓库并做第一份快照
在界面新建文件系统仓库,路径填写 /repository。来源选择 /data,先备份少量文本与图片;修改、删除其中一份后创建第二次快照,再查看第一个时间点。
本地仓库和来源同处一台 VPS,适合演示。正式备份换到独立存储,可选择官方支持的对象存储、SFTP 等后端。仓库密码、连接参数与存储凭据另存。
恢复文件与数据库导出
选取快照,将文件恢复到 /restore 下的独立目录,打开配置和图片,检查内容与权限。数据库先生成一致的导出,再随文件快照备份;恢复时导入独立数据库。
应用数据库与附件需要对应同一恢复时点时,在短维护窗口暂停写入并生成配套备份。挂载目录变化后,检查 Compose 是否仍覆盖所需来源。
安排自动快照和维护
根据文件变化频率设置快照周期和保留策略,检查下一次自动快照是否完成。缓存、配置、仓库分别维护;删除历史快照后,由 Kopia 的仓库维护处理不再使用的数据。
切换远端仓库后,确认策略实际写入新目标,再恢复一份文件。升级前记录镜像版本与仓库配置,保存密码和配置目录,更新后检查快照、维护和恢复。
