← 返回博客

方案一:VPS 手动部署

SillyTavern 本质是一个 Node.js 前端服务,负责管理角色卡、聊天记录、预设与后端 API 连接。部署方式的选择取决于三件事:是否要 7×24 在线、是否有公网访问需求、以及你打算跑多少张角色卡与多长的上下文。 | 方案 | 适用场景 | 优点 | 代价 | ||||| | 家用服务器 /…

发布于
  • sillytavern
  • deployment
  • docker
  • vps
  • self-hosting
  • tutorial

部署前的架构选择

SillyTavern 本质是一个 Node.js 前端服务,负责管理角色卡、聊天记录、预设与后端 API 连接。部署方式的选择取决于三件事:是否要 7×24 在线、是否有公网访问需求、以及你打算跑多少张角色卡与多长的上下文。

方案适用场景优点代价
家用服务器 / NAS单人使用、局域网为主数据完全自持、硬件成本低需处理内网穿透与证书
VPS需公网访问、多设备同步独立 IP、部署干净月费、需自行加固
Docker任意环境、追求可复现升级回滚简单、隔离依赖需理解卷挂载

无论哪种方案,请把 data/ 目录视为核心资产——角色卡(PNG/JSON)、聊天历史、settings.json 全在里面。备份策略应围绕这个目录设计。

适合想理解运行细节的用户。以 Ubuntu 22.04/24.04 为例。

基础环境

  • 安装 Node.js 20 LTS 或更高版本(SillyTavern 对 Node 版本有明确下限,升级前先看 release notes)。
  • 安装 git、build-essential,部分依赖需要编译。
  • 创建独立系统用户,不要用 root 跑服务。

拉取与启动

git clone https://github.com/SillyTavern/SillyTavern.git
cd SillyTavern
npm install
node server.js

首次启动会生成 config.yaml。关键项:

  • listen: true 与 listenAddress:默认只监听本地,公网访问需显式开启。
  • whitelistMode:开启后只允许白名单 IP,公网部署建议保持开启。
  • basicAuthMode:至少设置一组用户名密码,不要裸奔。

反向代理与 HTTPS

用 Nginx 或 Caddy 反代到 localhost:8000。Caddy 自动签发证书,配置量最小。反代时注意开启 WebSocket 支持,否则流式输出会失效。

进程守护

用 systemd 或 pm2 保证崩溃后自动拉起,并设置开机自启。日志重定向到文件,便于排查 API 连接失败。

方案二:Docker 部署

推荐给需要频繁升级或跑多实例的用户。

最小 compose 配置

services:
  sillytavern:
    image: ghcr.io/sillytavern/sillytavern:latest
    ports:
      - "8000:8000"
    volumes:
      - ./config:/home/node/app/config
      - ./data:/home/node/app/data
    restart: unless-stopped

要点:

  • 必须挂载 config 与 data 两个卷,否则容器重建即丢失全部角色卡与聊天记录。
  • 镜像内路径为 /home/node/app,挂载点写错会导致配置不生效且无报错。
  • 升级用 docker compose pull && docker compose up -d,回滚则锁定具体 tag。

权限与网络

  • 宿主机目录属主需与容器内 UID 匹配,否则写入角色卡时静默失败。
  • 建议把容器放进独立 bridge 网络,仅暴露反代所需端口。

方案三:家用服务器 / NAS

适合已有常开设备的用户,重点在内网穿透而非部署本身。

  • 部署流程与 VPS 一致,可用 Docker 简化。
  • 公网访问优先用 Tailscale 等组网工具,避免直接端口映射。
  • 若必须暴露公网,务必启用 basicAuthMode 与 whitelistMode,并配置 HTTPS。
  • NAS 上注意 Docker 卷落在哪块磁盘——机械盘上大量小文件读写会拖慢角色卡加载。

角色卡与数据工作流

部署完成后,日常操作集中在数据层:

  • 角色卡以 PNG(内嵌元数据)或 JSON 导入,统一放进 data/default-user/characters。
  • 聊天记录按角色分目录存放,迁移时整目录拷贝即可。
  • 预设、世界书、快捷回复分别位于 data/default-user 下的对应子目录。
  • 跨设备同步建议用 Git 或 Syncthing 管理 data/,但排除日志与临时文件。

需要跨平台管理卡片与聊天时,可以在 iOS/Android 客户端或 Chrome 扩展中接入同一套后端,角色卡市场也能直接导入现成卡片——例如以云码头港务长 Captain Portia Vane 为代表的成品卡,导入后即可进入对话,省去手工整理元数据的步骤。

常见故障排查

  • 页面能开但无流式输出:反代未转发 WebSocket。
  • 容器重启后配置丢失:config 卷未挂载。
  • 角色卡导入失败:PNG 元数据格式不符,或目录权限不足。
  • API 连接超时:容器内 localhost 指向容器自身,需改用宿主机地址或服务名。

结语

三种方案的核心差异只在运维成本,数据层完全一致。选定方案后,把备份与升级流程固定下来,比反复更换部署方式更有价值。若希望减少自建环节,可通过 MiniTavern 的移动端应用与 Chrome 扩展直接连接既有 SillyTavern 后端,并在角色卡市场挑选成品卡快速开始。

你可能还会喜欢这些文章

SillyTavern 角色卡格式 2026:掌握 JSON 结构、W++ 语法与高级定制

在 AI 角色扮演的世界中,角色卡(Character Card)是赋予虚拟角色灵魂的钥匙。作为 SillyTavern 生态系统的核心载体,一张精心设计的角色卡能大幅提升互动沉浸感。到了 2026 年,角色卡格式已经进化得更加精细——从基础的 JSON 结构到 W++ 语法,再到各种高级定制技巧,掌握这些技…

  • sillytavern
  • character-cards
  • json
  • w++
阅读全文

为什么在 2026 年仍推荐本地生成角色卡立绘

角色卡的核心是文本,但立绘决定点击率。云端绘图服务在 2026 年依然面临三个问题:订阅成本、内容审核、以及角色一致性难以跨会话保持。ComfyUI 配合 Stable Diffusion 把这三件事全部交回本地:模型权重在你硬盘上,工作流可复用,同一角色的脸可以通过固定 seed 和 LoRA 稳定复现。…

  • comfyui
  • local-image-generation
  • character-card-art
  • sillytavern
阅读全文

2026 年角色卡市场的定价逻辑

SillyTavern 生态在 2026 年已经形成稳定的角色卡交易层。买家不再只看立绘,而是看上下文稳定性、世界书结构、首轮体验。定价不再是“一张图多少钱”,而是“这套配置能省下多少调试时间”。 目前市场大致分三档: 入门档(免费至 3 美元):单角色、无世界书或仅内嵌少量条目,适合试水。 标准档(…

  • card-market
  • monetization
  • character-cards
  • sillytavern
阅读全文