
SillyTavern 是一个本地运行的 LLM(大语言模型)前端界面,支持多种后端 API。使用 Docker 部署它可以免去复杂的 Node.js 环境配置,并且方便升级和管理。
在开始之前,请确保你的系统(Linux 服务器、NAS、Windows 或 macOS)已经安装了以下软件:
docker compose 插件)为了让 Docker 容器能够持久化保存你的数据,我们需要在宿主机上创建相应的文件夹,并将它们挂载到容器内部。
根据你提供的配置文件,我们需要以下四个目录:config、data、plugins 和 extensions。
在你的服务器上找一个合适的位置,创建一个主目录,例如 sillytavern-docker:
bashmkdir ~/sillytavern-docker
cd ~/sillytavern-docker
在主目录下提前创建好所需的子目录。这一步很重要,可以避免 Docker 以错误的权限自动创建这些目录。
bashmkdir config data plugins extensions
如果你的宿主机是 Linux,建议确保当前用户对这些目录有读写权限。
在 sillytavern-docker 目录下,创建一个名为 docker-compose.yml 的文件。
bashtouch docker-compose.yml
# 然后使用你喜欢的编辑器打开它,例如 nano 或 vim
nano docker-compose.yml
将提供的配置内容粘贴进去。
yamlversion: '3.8' # 建议添加版本号,虽然现在是可选的
services:
sillytavern:
# build: .. <-- 如果你不需要从本地源码构建,请注释掉这一行,直接用下面的官方镜像。
image: ghcr.io/sillytavern/sillytavern:latest
container_name: sillytavern
hostname: sillytavern
environment:
- NODE_ENV=production
- FORCE_COLOR=1 # 让日志输出带颜色
ports:
# 左侧是宿主机端口 (你访问的端口),右侧是容器内端口。
# 如果 8008 被占用,可以修改左侧的值,例如 "9090:8000"
- "8008:8000"
volumes:
# 数据持久化挂载:将宿主机的目录映射到容器内部路径
- "./config:/home/node/app/config" # 存放配置文件
- "./data:/home/node/app/data" # 存放角色卡、聊天记录等核心数据
- "./plugins:/home/node/app/plugins" # 存放后端插件
# 存放第三方前端扩展
- "./extensions:/home/node/app/public/scripts/extensions/third-party"
restart: unless-stopped # 除非手动停止,否则容器退出后自动重启(开机自启)
保存并退出编辑器。
在包含 docker-compose.yml 的目录下,执行以下命令来后台启动服务:
bashdocker compose up -d
(如果你的 Docker 版本较旧,可能需要使用 docker-compose up -d)
Docker 将会自动拉取镜像并启动容器。
稍等片刻,等待容器启动完毕。你可以通过浏览器访问 SillyTavern 的界面。
http://你的服务器IP:8008http://localhost:8008(如果你在配置文件中修改了 ports 的左侧端口,请使用修改后的端口访问。)
关键点在于:whitelistMode: false
1. 查看日志 如果无法访问或遇到错误,可以查看容器日志进行排查:
bashdocker compose logs -f
(按 Ctrl + C 退出日志查看)
2. 更新 SillyTavern 当官方发布新版本时,更新非常简单:
bash# 1. 拉取最新镜像
docker compose pull
# 2. 重新创建并启动容器(你的数据都在本地目录里,不会丢失)
docker compose up -d
3. 停止服务
bashdocker compose down
4. 数据管理
你的所有角色卡、聊天记录和设置现在都保存在你第 1 步创建的 ~/sillytavern-docker/data 和 config 目录下。你可以随时备份这些文件夹。
本文作者:小转圈
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!