升级与备份
这一页说明如何用 Docker Compose 升级、怎么备份,以及哪些数据重新扫描也无法重建。
beta 版已应用的数据库更新无法回退,建议升级前先用 pg_dump 导出一份,方法见手动备份。
升级#
-
保存旧日志。 升级会重建容器,旧日志会随之消失:
docker logs --timestamps <服务器容器> > server-before-upgrade.log -
拉取新镜像。 如果你是用安装脚本装的,改为再运行一次同一条安装指令:它会替你做这两步,并保留你的数据。否则执行:
docker compose pull docker compose up -d --wait -
等健康检查变成 healthy,不要中途重启。 新版本可能要更新数据库,这时启动会比平常久。大型媒体库的数据库更新可能要一两分钟。这期间健康检查可能短暂失败、连接被拒绝,都属正常。
- 确认。 登录管理后台,检查版本号,确认媒体库的条目数没有变,再播放一个视频试试。
回退#
已应用的数据库更新不能自动回退。要回到旧版本,请停止服务,用升级前做的完整备份还原。完整还原会保留条目编号与观看记录,不用重新扫描。
手动备份#
所有方案都可以这样做。用 pg_dump 导出一份完整的数据库:
docker compose exec -T postgres pg_dump -U kryspal -d kryspal --format=custom > full-before-upgrade.dump
在放 compose.yaml 的文件夹里执行(用安装脚本的话是 /opt/kryspal-media)。另外把 data 卷也复制一份,里面有服务器的密钥和设置。用 docker volume ls 查它的名字:compose 所在文件夹的名字(安装脚本则是 kryspal-media)加上 _data。图片缓存在这个卷的 cache 底下,会自己重建,所以这条指令不包含它:
docker run --rm -v kryspal-media_data:/data:ro -v "$PWD":/backup alpine tar czf /backup/kryspal-data-$(date +%F).tgz --exclude=./cache -C /data .
备份文件含有登录凭证,请放在只有你自己能访问的目录。
备份与还原 PRO · MAX#
在管理后台打开「系统设置 → 备份」。
备份的内容: 数据库、服务器设置、密钥与成员头像。不包含: 媒体库图片与封面、缓存、预生成的海报、预告片,以及你的媒体文件。需要完整的副本,请自己备份整个服务器数据目录。
立即备份#
- 点「立即备份」。备份完成后才会响应,数据库大时可能要一分钟以上。
- 可选:设置「密码」(8 到 128 个字符)。设了密码,文件就会加密(AES-256),还原时必须输入。忘记密码就无法还原,服务器也不会保存它。只有你手动输入密码做的备份才会加密;自动备份一律不加密。
没设密码的备份含有服务器密钥,拿到文件的人可以读取插件设置,请妥善保管。
自动备份#
自动备份需要 PRO,每天 04:00 运行,时间可以在「任务中心 → 排程」里更改。默认保留最新的 7 份(最多可保留 100 份),存放在服务器数据文件夹里的 backups 目录。在备份页可以更改备份存放位置(服务器上已存在且可写入的目录)与保留份数。超过份数的自动备份会由旧到新删除;手动备份和还原前的备份不计入。最近一次成功的备份超过 48 小时时,「服务概况」会提醒你。
备份列表会标出类型(自动、手动、还原前)以及是否已加密。你可以在列表里下载或删除备份。
还原#
- 在列表里点想用的那份备份旁边的「还原」。
- 阅读提示:当前的数据库与设置会被取代,备份之后的所有更改都会消失。还原前会先为当前状态自动做一份备份。
- 输入「还原」二字确认;如果这份备份有密码,还要输入备份密码。然后点「排定还原」。
- 重启服务器。重启后才会应用还原,在那之前服务器照常使用当前的数据。已排定的还原可以用「取消还原」取消。
重新扫描无法重建的数据#
下面这些只存在于你的数据库与服务器数据里,必须备份:成员与密码、设备登录、媒体库设置、观看记录、自定义上传的图片与封面,以及密钥文件。重新扫描后条目编号会变,所以观看记录只能从备份还原,扫描找不回来。
保护好备份#
备份文件等同于凭证。请让它的权限保持 600。NAS 的共享文件夹可能因为继承权限让别人也能读到文件,请检查。
没有授权时#
备份页需要 PRO 方案。没有的话,仍然可以按手动备份一节的方法备份数据库。