#
Docker 安装
这些说明假设您已经安装了 Docker,能够访问命令行来安装容器,并且熟悉它们的一般操作。
#
使用 GitHub Container Registry
使用预构建镜像是在 Docker 中开始使用 SillyTavern 的最快和最简单的方法。您可以从 GitHub Container Registry 拉取最新镜像。
#
Docker Compose(推荐)
从 GitHub 仓库 下载 docker-compose.yml 文件,并在文件所在的目录中运行以下命令。这将从 GitHub Container Registry 拉取最新的发布镜像并启动容器,自动创建必要的卷。
docker compose up
您可以编辑文件并根据需要应用额外的自定义:
- 默认端口是 8000。您可以通过修改
ports部分来更改它。 - 如果您想使用开发分支而不是稳定发布,请将
image标签更改为staging。 - 如果您想使用环境变量调整服务器配置,请查看 环境变量 页面。
#
Docker CLI (高级)
您将需要两个必需的目录映射和一个端口映射来允许 SillyTavern 运行。在命令中,在以下位置替换您的选择:
#
容器变量
#
卷映射
CONFIG_PATH- SillyTavern 配置文件将存储在您主机上的目录DATA_PATH- SillyTavern 用户数据(包括角色)将存储在您主机上的目录PLUGINS_PATH- (可选) SillyTavern 服务器插件将存储在您主机上的目录EXTENSIONS_PATH- (可选) 全局 UI 扩展将存储在您主机上的目录
#
端口映射
PUBLIC_PORT- 暴露流量的端口。这是必需的,因为您将从其虚拟机容器外部访问实例。在没有实施单独安全服务的情况下,请勿将其暴露到互联网。
#
附加设置
SILLYTAVERN_VERSION- 在此 GitHub 页面的右侧,您将看到"软件包"。选择"sillytavern"软件包,您将看到镜像版本。镜像标签"latest"将使您与当前发布版本保持同步。您也可以利用指向相应分支的夜间镜像的"staging"。
#
运行容器
- 打开命令行
- 在您想要存储配置和数据文件的文件夹中运行以下命令:
SILLYTAVERN_VERSION="latest"
PUBLIC_PORT="8000"
CONFIG_PATH="./config"
DATA_PATH="./data"
PLUGINS_PATH="./plugins"
EXTENSIONS_PATH="./extensions"
docker run \
--name="sillytavern" \
-p "$PUBLIC_PORT:8000/tcp" \
-v "$CONFIG_PATH:/home/node/app/config:rw" \
-v "$DATA_PATH:/home/node/app/data:rw" \
-v "$EXTENSIONS_PATH:/home/node/app/public/scripts/extensions/third-party:rw" \
-v "$PLUGINS_PATH:/home/node/app/plugins:rw" \
ghcr.io/sillytavern/sillytavern:"$SILLYTAVERN_VERSION"
默认情况下,容器将在前台运行。如果您想在后台运行,请在 docker run 命令中添加 -d 标志。
#
构建 Docker 镜像
以下部分假设您在非根(非管理员)文件夹中安装了 SillyTavern。如果您在根文件夹中安装了 SillyTavern,您可能需要使用管理员权限[sudo、doas、命令提示符(管理员)]运行其中一些命令。
如果您想自己构建 Docker 镜像,可以按照以下步骤进行。如果您想自定义镜像或将其用于开发目的,这很有用。
#
Linux
按照 Docker 安装指南这里安装 Docker。
不要安装 Docker Desktop。
- 按照 Docker 安装后指南中的以非根用户身份管理 Docker步骤操作。
- 使用您的包管理器安装 Git。
Debian (Ubuntu/Pop! OS/etc.)
sudo apt install gitArch Linux (Manjaro/EndeavourOS/etc.)
sudo pacman -S gitFedora, Red Hat Enterprise Linux (RHEL), etc.
sudo dnf install git
- 克隆 SillyTavern 仓库。
Release (稳定分支)
git clone https://github.com/SillyTavern/SillyTavern && cd SillyTavern/dockerStaging (开发分支)
git clone https://github.com/SillyTavern/SillyTavern -b staging && cd SillyTavern/docker
通过在 Docker 文件夹中运行以下命令来执行
docker compose。docker compose up -d执行以下 Docker 命令来获取您的 SillyTavern Docker 容器的 IP。
docker network inspect docker_default您应该收到类似于以下的输出。
[ { "Name": "docker_default", "IPAM": { "Config": [ { "Subnet": "172.18.0.0/16", "Gateway": "172.18.0.1" } ] } } ]记下您在_网关_中看到的 IP,因为这很重要。
使用
sudo,打开nano并运行以下命令。sudo nano config/config.yaml在
nano中,向下滚动到whitelist。您应该看到类似于以下的内容。whitelist: - 127.0.0.1在 127.0.0.1 下方添加新行,并输入从 Docker 复制的 IP。之后应该看起来类似于以下内容。
whitelist: - 127.0.0.1 - 172.18.0.1通过按 Ctrl+S 保存文件,然后通过按 Ctrl+X 退出
nano。请注意,如果您将 Docker 网络配置为桥接,您也可以像往常一样将外部 IP 地址添加到白名单。
重新启动 Docker 容器以应用新配置。
docker compose restart sillytavern- 打开新浏览器并转到 http://localhost:8000。您应该会在几秒钟内看到 SillyTavern 加载。
- 享受!:D
#
Windows
关于在 Windows 上使用 Docker
在 Windows 上使用 Docker 非常 复杂。您不仅需要在 打开或关闭 Windows 功能 中激活 Windows Subsystem for Linux,还需要为虚拟化(Intel VT-d/AMD SVM)配置系统,这在 PC 制造商(或主板制造商)之间有所不同。有时,某些系统上不存在此选项。
强烈建议您按照我们的 Windows 指南安装 SillyTavern。本部分是在 Windows 上如何完成的_粗略_想法。
- 按照 Docker 安装指南这里安装 Docker Desktop。
- 安装 Git for Windows。
- 克隆 SillyTavern 仓库。
Release (稳定分支)
git clone https://github.com/SillyTavern/SillyTavern && cd SillyTavern/dockerStaging (开发分支)
git clone https://github.com/SillyTavern/SillyTavern -b staging && cd SillyTavern/docker
通过在 Docker 文件夹中运行以下命令来执行
docker compose。docker compose up -d执行以下 Docker 命令来获取您的 SillyTavern Docker 容器的 IP。
docker network inspect docker_default您应该收到类似于以下的输出。
[ { "Name": "docker_default", "IPAM": { "Config": [ { "Subnet": "172.18.0.0/16", "Gateway": "172.18.0.1" } ] } } ]记下您在_网关_中看到的 IP,因为这很重要。
使用管理员权限运行_记事本_或您选择的代码编辑器,转到
config并打开 config.yaml。在您选择的编辑器中,您应该看到类似于以下的内容。
whitelist: - 127.0.0.1在 127.0.0.1 下方添加新行,并输入从 Docker 复制的 IP。之后应该看起来类似于以下内容。
whitelist: - 127.0.0.1 - 172.18.0.1通过按 Ctrl+S 保存文件,然后退出您的编辑器。
请注意,如果您将 Docker 网络配置为桥接,您也可以像往常一样将外部 IP 地址添加到白名单。
重新启动 Docker 容器以应用新配置。
docker compose restart sillytavern- 打开新浏览器并转到 http://localhost:8000。您应该会在几秒钟内看到 SillyTavern 加载。
- 享受!:D
#
macOS
即使 macOS 类似于 Linux,它也没有 Docker 引擎。您将需要像 Windows 一样安装 Docker Desktop。 您还需要安装 Homebrew 以便在 Mac 上安装 Git。本部分是在 macOS 上如何完成的_粗略_想法。
- 按照 Docker 安装指南这里安装 Docker Desktop。
使用 Homebrew 安装
git。brew install git- 克隆 SillyTavern 仓库。
Release (稳定分支)
git clone https://github.com/SillyTavern/SillyTavern && cd SillyTavern/dockerStaging (开发分支)
git clone https://github.com/SillyTavern/SillyTavern -b staging && cd SillyTavern/docker
通过在 Docker 文件夹中运行以下命令来执行
docker compose。docker compose up -d执行以下 Docker 命令来获取您的 SillyTavern Docker 容器的 IP。
docker network inspect docker_default您应该收到类似于以下的输出。
[ { "Name": "docker_default", "IPAM": { "Config": [ { "Subnet": "172.18.0.0/16", "Gateway": "172.18.0.1" } ] } } ]记下您在_网关_中看到的 IP,因为这很重要。
使用
sudo,打开nano并运行以下命令。sudo nano config/config.yaml如果您无法运行
nano,可以通过 Homebrew 安装它或使用 TextEdit。在
nano中,向下滚动到whitelist。您应该看到类似于以下的内容。whitelist: - 127.0.0.1在 127.0.0.1 下方添加新行,并输入从 Docker 复制的 IP。之后应该看起来类似于以下内容。
whitelist: - 127.0.0.1 - 172.18.0.1通过按 Ctrl+S 保存文件,然后通过按 Ctrl+X 退出
nano。请注意,如果您将 Docker 网络配置为桥接,您也可以像往常一样将外部 IP 地址添加到白名单。
重新启动 Docker 容器以应用新配置。
docker compose restart sillytavern- 打开新浏览器并转到 http://localhost:8000。您应该会在几秒钟内看到 SillyTavern 加载。
- 享受!:D
#
配置 SillyTavern
SillyTavern 的配置文件 (config.yaml) 将位于 config 文件夹中。配置配置文件应该与不使用 Docker 配置它没有区别,但是您需要使用管理员权限运行 nano 或代码编辑器才能保存您的更改。
不要忘记重新启动 SillyTavern 的 Docker 容器以应用您的更改!确保您在 docker 文件夹中执行此命令。
docker compose restart sillytavern
#
定位用户数据
SillyTavern 的数据文件夹将位于 data 文件夹中。备份您的文件应该很容易,但是,恢复或向其中添加内容可能需要您使用管理员权限执行。
#
运行服务器插件
在 Docker 中运行像 HoYoWiki-Scraper-TS 或 SillyTavern-Fandom-Scraper 这样的插件与在您的系统上不使用 Docker 运行它没有区别,但是我们需要对 Docker Compose 脚本进行轻微修改才能这样做。
注意
如果您在 docker 文件夹中已经看到 plugins 文件夹,可以跳过步骤 1-2。
使用
nano或代码编辑器,打开 docker-compose.yml 并在volumes下方添加以下行。volumes: - "./config:/home/node/app/config" - "./data:/home/node/app/data" - "./plugins:/home/node/app/plugins"- 在
docker文件夹中创建一个名为 plugins 的新文件夹。 - 按照您的插件说明安装插件。
使用管理员权限运行
nano或代码编辑器,打开 config.yaml(在config文件夹中)并启用enableServerPluginsenableServerPlugins: true重新启动 Docker 容器。
docker compose restart sillytavern- 完成。
#
Docker 的常见问题
#
挂载卷的 SELinux 权限问题
启用了 SELinux 的 Linux 发行版(如 RHEL、CentOS、Fedora 等)可能会由于安全策略而阻止 Docker 容器访问挂载的卷。当容器尝试读取或写入挂载的目录时,这可能会导致权限被拒绝的错误。
可以将两个后缀 :z 或 :Z 添加到卷挂载。这些后缀告诉 Docker 重新标记共享卷上的文件对象。
- 当卷内容将在容器之间共享时,使用
z选项。 - 当卷内容应该仅由当前容器使用时,使用
Z选项。
示例:
# docker-compose.yml
volumes:
## 共享卷
- ./config:/home/node/app/config:z
## Private volume
- ./data:/home/node/app/data:Z