管理
尽管遵循了许多安全最佳实践,SillyTavern 服务器仍不足以安全地暴露在公共互联网上。
在未确保已采取适当安全措施之前,切勿将任何实例托管在开放互联网上。
对于因安全措施不当或不足导致的未经授权访问所造成的任何损害或损失,我们概不负责。
SillyTavern 的主配置文件。它包含各种设置,例如网络、安全和后端相关的选项。
要与他人共享你的 SillyTavern 实例,你可以创建多个用户账户。每个用户拥有自己的设置、扩展和数据。用户账户还可以设置密码保护。
你可以从手机、平板电脑或其他计算机访问你的 SillyTavern 实例。
要从互联网访问你的 SillyTavern 实例,可以使用 VPN 或隧道服务,例如 Cloudflare Zero Trust、ngrok 或 Tailscale。
有经验的用户可以搭建反向代理,从互联网访问他们的 SillyTavern 实例。
数据布局
本节概述 SillyTavern 中的用户数据存储结构。此处仅描述默认的数据布局(数据根目录是 SillyTavern 安装目录的一个子目录)。如果你自定义了数据布局,请参阅你的自定义配置以了解详情。
data/[user-handle](例如 data/default-user)
为每个用户账户创建,此文件夹包含用户特定的数据,例如角色文件、对话历史和设置。
data/_cache
用于存放服务器下载的文件,例如分词器文件和 transformers.js 模型。
data/_cache/characters
当启用 performance.useDiskCache 设置时,用于存放解析后的角色数据,并在启动时以及角色更新时同步。
这样可以用磁盘空间换取更快的角色数据加载速度。
data/_css
用于存放自定义 CSS 文件。
目前仅支持 user.css 文件,它允许你为前端添加自定义样式。
data/_errors
用于存放包含各种 HTTP 状态码错误页面的 HTML 文件。当服务器遇到错误时,会使用这些文件来显示自定义错误页面。
forbidden-by-whitelist.html:当请求被 IP 地址白名单拦截时显示。host-not-allowed.html:当请求被主机白名单拦截时显示。unauthorized.html:当基础认证失败时显示。url-not-found.html:当请求的资源未找到时显示。
data/_storage
用于存放用户账户数据。
不建议手动编辑这些文件,否则可能导致数据损坏。
data/_uploads
用户上传文件在服务器处理过程中的临时存放位置。
这些文件会在每次启动时自动清除。
data/_webpack
用于存放已编译的 webpack 资源和缓存文件。
如果在更新后前端出现问题,请尝试清除此文件夹,以强制完整重建前端资源。
data/access.log
一个日志文件,记录在首次成功连接之后发送到服务器的传入 HTTP 请求。
请定期检查此文件,以监控任何可疑活动。
data/cookie-secret.txt
包含用于对服务器中的 cookie 进行签名的密钥。
如果此文件不存在,会在首次启动时自动生成。
安全清单
这些只是建议。在让你的 ST 实例上线之前,请咨询 Web 应用安全专家。
- 保持你的操作系统和运行时软件(例如 Node.js)为最新版本。这能确保你的系统拥有最新的安全补丁和修复,有助于防范潜在漏洞。
- 使用白名单和网络防火墙。仅允许可信的 IP 范围访问服务器。
- 启用基础认证。它在你访问前端应用之前充当“主密码”。
- 或者,配置外部认证。此方面的常用服务包括 Authelia 和 authentik。详情请参阅 SSO 指南。
- 切勿让管理员账户没有密码。如果你存在任何未受保护的管理员账户,服务器在启动时会向你发出警告。
- 在本地网络之外使用隐蔽登录设置。这会对潜在的外部访问者隐藏用户列表。
- 经常检查访问日志。这些日志会写入服务器控制台和
access.log文件,并提供有关传入连接的信息,例如 IP 地址和用户代理。 - 配置 HTTPS。对于 localhost 服务器,你可以生成并使用自签名证书。否则,你可能需要部署反向代理 Web 服务器,例如 Traefik 或 Caddy。
- 配置并启用主机白名单,尤其是在本地网络上未使用 HTTPS 加密时。
- 配置并启用私有地址白名单,以防止 SSRF 攻击。
有关安全代理的更多信息,请参阅以下指南:反向代理 SillyTavern。