在飞牛NAS上搭个SillyTavern酒馆:Docker拉不动?那就Node裸跑

最近捣鼓了个SillyTavern,圈里都叫"酒馆",就是个AI角色扮演的网页应用,界面好看,玩法也多。我这台飞牛NAS闲着也是闲着,就把它装了上去,内网随时能玩,还能走穿透在外面连。

装之前先说明下思路:正常来说这货有官方Docker镜像,一条命令的事;但国内拉ghcr.io的镜像经常拉不动,我这次就是踩了坑,最后改用Node直接跑源码。两种方法都写出来,你们按情况选。

一、常规方法:Docker部署(首选)

SillyTavern官方发布了镜像,直接用docker compose就行。建个目录,写docker-compose.yml:

services:
  sillytavern:
    image: ghcr.io/sillytavern/sillytavern:latest
    container_name: sillytavern
    ports:
      - "8000: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 up -d

等它拉完镜像,浏览器开 http://NAS的IP:8000 就能进酒馆了。第一次启动会自动生成config和data目录;后续升级就 docker compose pull && docker compose up -d,数据都在挂载目录里,不会丢。restart: unless-stopped 保证NAS重启后酒馆自己爬起来。

坑在这:镜像在ghcr.io,国内直连基本拉不动。解决办法:

  1. 给Docker配代理,拉镜像时走旁路由或代理机
  2. 用镜像加速器(注意:很多公共加速器对ghcr支持不好,有的直接404/401)

我这次就是加速器试了一圈全拉不动,才退而求其次走下面的方法。

二、兜底方法:Node直接跑源码

Docker实在拉不动,就本地跑源码,效果一模一样,就是少了容器那层隔离,开机自启要自己配。

# 拉源码(release分支是稳定版,github建议走代理)
git clone -b release https://github.com/SillyTavern/SillyTavern.git
cd SillyTavern
# 只装生产依赖,省时间
npm install --omit=dev
# 启动
nohup node server.js > /tmp/sillytavern.log 2>&1 &

默认监听8000端口,浏览器开 http://NAS的IP:8000

开机自启用crontab:

crontab -e
# 加一行,路径换成你自己的
@reboot cd /你的路径/SillyTavern && nohup node server.js > /tmp/sillytavern.log 2>&1 &

以后更新就 git pull 然后重启进程,比docker pull还省事。

三、接DeepSeek的API

酒馆本身不带模型,要自己接API。我用的是DeepSeek:

  1. 打开酒馆,点左上角的API连接(插头图标)
  2. 选Custom(自定义),填:

    • API地址:https://api.deepseek.com
    • 模型:deepseek-chat
  3. 把API Key填进去,保存

如果走内网穿透在外面访问,建议把流式输出关掉(stream_openai设成False),不然隔着穿透有时候聊着聊着就卡住,改成一次性返回稳一点。

四、角色卡

酒馆的角色卡是PNG格式,数据直接内嵌在图片里,从Chub这些网站下下来,拖进"角色"页面就能用。顺便说一句,看到那种标注未成年的卡就别下了,懂的都懂。

最后提醒一句:酒馆这玩意玩起来容易上头,注意别耽误正事。都是中年人了,心里有数。

在飞牛NAS上搭个SillyTavern酒馆:Docker拉不动?那就Node裸跑
https://ifmo.cn/index.php/archives/sillytavern-jiuguan.html
本文作者 辣条
发布时间 2026-08-05
许可协议 CC BY-NC-SA 4.0
发表新评论