第一步不是装东西,而是决定走哪条路。SnowLuma 的核心是把 hook 注入真实 QQ 进程,因此你需要一个能跑 QQ + 注入 + 扫码登录的环境。下面这张表按你手上的环境直接给出推荐路径,照着点进去即可。
| 你的情况 | 推荐路径 | 链接 |
|---|---|---|
| 有一台 Linux 服务器 | Docker(最推荐、最省事) | Docker 部署 |
| Windows 本机 | Windows 手动 / Docker Desktop | Windows 部署 |
| 想用 WSL2 | WSL2 里跑容器 | WSL2 部署 |
| 只有安卓手机 | Termux + proot(进阶/实验性) | 手机部署 |
| 已安装宝塔面板的 Linux 服务器 | 面板 Docker 应用商店一键导入 | 宝塔面板部署 |
| 想接 AI 客户端 | MCP 服务 | MCP 接入 |
| 想写客户端代码 | TypeScript SDK | SDK |
拿不准就选 Docker on Linux,这是官方推荐、最容易跑起来的方式。完整对比见选择部署方式。
最常见的路径是在 Linux 上用官方镜像。三步:
1. 拉起容器
--cap-add=SYS_PTRACE 和 --security-opt seccomp=unconfined 不能省:hook 通过 ptrace 注入 QQ,默认 seccomp profile 会拦截。--shm-size=1g 也是 QQ(Chromium)必需。
2. 扫码登录
浏览器打开 http://<服务器IP>:6081/(noVNC),输入上面设置的 VNC_PASSWD。远程桌面里 QQ 已自动启动,用手机 QQ 扫码登录。登录后 hook 会自动从被动观察切到工作模式。
3. 打开 WebUI
浏览器打开 http://<服务器IP>:5099/ 进入 SnowLuma WebUI。
更完整的 Compose 写法、多账号、运维命令见 Docker 部署。
无论哪条路径,首次上手都绕不开这几件事:
扫码登录:SnowLuma 只支持扫码登录,没有 CLI 登录。在无头环境里必须通过 VNC / noVNC 看到 QQ 窗口才能扫码。
找 WebUI 临时密码:首次用全新数据目录启动时,日志里会打印一次性管理员密码。Docker:
临时密码只在全新数据目录首次启动时输出一次,重启或复用旧数据不会重新生成。
开放端口:要从外部访问,放行 WebUI(5099)和你用到的 OneBot 端口(3000 / 3001)。
切记修改默认 VNC 密码,不要把 VNC / noVNC / WebUI / OneBot 端口裸暴露在公网。
每次手输密码很烦?WebUI 支持在地址里带上登录密码直接进入:
token,值就是你平时登录 WebUI 的密码。SnowLuma 会用它走登录接口,密码正确即直达主页。history.replaceState),避免经浏览器历史 / 访问日志 / Referer 头泄露。密码出现在 URL 里风险较高(会进浏览器历史、可能被中间设备 / 代理记录)。仅建议在可信的本地 / 内网环境使用;不要分享带密码的链接、不要贴进聊天 / issue、不要在公共设备上用。