更新

升级 SnowLuma 的核心原则只有一条:只替换程序,不动数据。登录态、账号配置、运行时配置都在数据目录 / 数据卷里,升级时保留它们就不用重新扫码、不用重配。

INFO

WebUI 会提示有新版本可用,可以据此决定何时升级。

Docker

最简单。用 Compose:

docker compose pull
docker compose up -d

或者手动拉镜像后重建容器:

docker pull motricseven7/snowluma:latest
docker stop snowluma && docker rm snowluma
# 用和原来完全相同的 docker run 命令重新创建(卷不变)
DANGER

不要删除数据卷snowluma-datasnowluma-qq-configsnowluma-qq-data)。删了就会丢登录态和配置。docker rm 只删容器、不删卷,重建时挂上同名卷即可无缝衔接。

手动 tarball

  1. GitHub Releases 下载新版本对应平台 / 架构的 tarball(full 或 lite,和你原来用的保持一致)。
  2. 替换程序文件(index.mjswebui/native/ 等),保留你的配置 / 数据目录config/ 及其同级数据)。
  3. 重新启动:node ./index.mjs(Windows 上也可双击 launcher.bat)。
TIP

建议把数据目录放在解包目录之外,或升级前先备份它,这样直接整目录替换也不会误删配置。

从源码构建

git pull
pnpm install
pnpm build:all

dist/ 会重新生成(index.mjslauncher.batwebui/native/)。同样不要动你的数据目录,重启即可。

版本固定与 QQ 版本

WARNING

内置的 QQ 版本与 native hook 绑定(pinned)。升级 SnowLuma 本身是安全的,但不要手动升级容器 / 环境里的那个 QQ——QQ 的版本一旦变了,版本绑定的 native hook 可能就失效了。

Docker 镜像已经通过把 QQ 的静默热更新主机黑洞掉来冻结 QQ 版本(详见 Linux 手动部署)。手动 / 非 Docker 环境也应自行阻止 QQ 自动更新。

生产环境建议固定具体的镜像 / 发行版本 tag(例如 motricseven7/snowluma:v1.10.0),而不是一直用 :latest,这样升级是显式、可控、可回滚的。