Skip to content

Darkatse/TT-Sync

Repository files navigation

Built with Rust TLS 1.3 Portable

TT-Sync

TauriTavern 远程同步服务器
我要给我的角色们一个更大的家!

TT-Sync TUI demo

English


为什么需要 TT-Sync?

你是否经常:

  • 想在家里和 VPS 之间同步 TauriTavern 数据,但 LAN Sync 只能在局域网用?
  • 希望把 NAS 当作权威副本,随时随地 pull?
  • 顺便还想和原版 SillyTavern 同步?

TT-Sync 就是为这个问题准备的独立远程同步服务端:把 TauriTavern 的同步端点从局域网扩展到 VPS、NAS、家庭服务器,仍然保持安全、可控、可自部署。

使用 Rust 🦀 构建,TT-Sync 提供:

  • 端到端加密:TLS 1.3 + SPKI 证书固定,无需公网 CA
  • 单一可执行文件:适合 VPS、NAS、容器和家庭服务器
  • Ed25519 设备身份:每个配对设备都经过密码学验证
  • 双向兼容:同时支持 TauriTavern 和原版 SillyTavern

安装

一键安装

只需要Ctrl+C, Ctrl+V, Easy!:

curl -fsSL https://raw.githubusercontent.com/Darkatse/TT-Sync/main/scripts/install.sh | sh

Windows PowerShell:

iex ((iwr https://raw.githubusercontent.com/Darkatse/TT-Sync/main/scripts/install.ps1).Content)

直接下载二进制

Releases 下载预编译二进制,放到你的 $PATH 中即可。

Docker / NAS / VPS 部署说明请见:Docker 指南

从源码编译

git clone https://github.com/Darkatse/TT-Sync.git
cd TT-Sync
cargo build --release

编译产物位于:

target/release/tt-sync

Windows 下为 tt-sync.exe


给爱折腾的你

如果你想用Nightly版本,请用下面的命令:

Nightly:

curl -fsSL https://raw.githubusercontent.com/Darkatse/TT-Sync/main/scripts/install.sh | sh -s -- --nightly
& ([scriptblock]::Create((iwr https://raw.githubusercontent.com/Darkatse/TT-Sync/main/scripts/install.ps1).Content)) -Nightly

指定版本:

curl -fsSL https://raw.githubusercontent.com/Darkatse/TT-Sync/main/scripts/install.sh | sh -s -- --version 1.0.0
& ([scriptblock]::Create((iwr https://raw.githubusercontent.com/Darkatse/TT-Sync/main/scripts/install.ps1).Content)) -Version 1.0.0

自定义安装目录:

curl -fsSL https://raw.githubusercontent.com/Darkatse/TT-Sync/main/scripts/install.sh | sh -s -- --dir "$HOME/.local/bin"
& ([scriptblock]::Create((iwr https://raw.githubusercontent.com/Darkatse/TT-Sync/main/scripts/install.ps1).Content)) -InstallDir "$HOME\\bin"

默认安装位置:

  • Linux / macOS:优先可写的 /usr/local/bin,否则退到 ~/.local/bin
  • Windows:%LocalAppData%\\TT-Sync\\bin,并自动写进当前用户的 PATH

Docker 一把梭

如果你准备把 TT-Sync 塞进容器里,拥抱容器化技术,仓库里现在已经自带:

  • Dockerfile
  • docker-compose.yaml
  • .env.example
  • config.toml.example

简单示例如下:

cp .env.example .env
mkdir -p ./.tt-sync/state
cp config.toml.example ./.tt-sync/state/config.toml
# 编辑 .env 和 ./.tt-sync/state/config.toml
docker compose pull
docker compose up -d
docker compose run --rm tt-sync doctor
docker compose run --rm tt-sync pair open --rw

其中:

  • .env 里主要改宿主机数据目录和端口
    • env 中的TT_SYNC_WORKSPACE即为服务器上你需要同步的数据目录
    • TT_SYNC_PORT则为你的本机监听端口
  • config.toml 里主要改 public_urllayout,以及语言
    • public_url 需要是外网可访问的 URL,一般与 TT_SYNC_PORT 端口一致,但如果你在前面加了反向代理,可能会不一样哦
    • layout 则根据你同步的目标数据目录结构选择,可选值为 tauri-tavern, silly-tavernsilly-tavern-docker,具体区别请看 Layout Mode 小节
  • 首次启动时会自动生成 identity.json 和 TLS 证书,不需要你手搓密钥

更完整的说明、init 工作流、docker run 方式和权限建议请看:Docker 指南


推荐使用方式:TUI

首次部署

首次部署建议直接运行:

tt-sync onboard

引导流程会按顺序带你完成:

  • 选择语言
  • 设置监听端口与 Public URL
  • 选择 layout mode
  • 选择服务器上的数据文件夹
  • 可选立即进入配对界面
  • 选择服务运行方式:前台运行,或用户态 service

已支持的用户态 service:

  • Linux:systemd --user
  • macOS:LaunchAgent
  • Windows:Task Scheduler(beta)

日常管理

完成初始化后,日常使用建议直接进入主界面:

tt-sync

主菜单当前覆盖:

  • Onboard:重新走一遍引导配置
  • Pair:生成二维码 / 配对链接,等待 TauriTavern 接入
  • Peers:查看、改名、调整权限、撤销已配对设备
  • Serve:启动/停止前台服务,或管理用户态 service
  • Doctor:检查配置、证书、数据目录和配对状态
  • Help:查看按键与部署提示

基本按键

  • ↑ ↓:移动焦点
  • Enter:确认
  • Esc:返回上一级
  • q:退出

配对页面还支持:

  • r:刷新二维码 / 重新生成配对令牌

配对流程

推荐路径很简单:

  1. 在服务器上运行 tt-sync onboard 完成初始化,或进入 tt-sync 主菜单选择 Pair
  2. 在配对界面生成二维码或配对链接。
  3. 在 TauriTavern 中扫描二维码或粘贴 tauritavern://tt-sync/pair?... 链接完成配对。
  4. 之后通过 Peers 页面管理权限,通过 Serve 页面管理服务状态。

Layout Mode

TT-Sync v2 使用固定的全量同步数据集。需要选择的是你本地服务器本地文件夹的形态。

选项 适用对象 全局扩展映射
tauri-tavern TauriTavern data/ extensions/third-partydata/extensions/third-party
silly-tavern SillyTavern 仓库布局 extensions/third-partypublic/scripts/extensions/third-party
silly-tavern-docker SillyTavern Docker 目录布局 extensions/third-party./extensions

如果你部署的是:

  • TauriTavern 独立数据目录,选 tauri-tavern
  • 普通 SillyTavern 仓库,选 silly-tavern
  • Docker 卷挂载,选 silly-tavern-docker

安全模型

┌──────────────────────────────────────────────────────────┐
│  第一层:传输安全                                           │
│  TLS 1.3(自签名)+ SPKI 证书固定                           │
│  → 客户端在配对时固定服务器公钥                               │
├──────────────────────────────────────────────────────────┤
│  第二层:设备身份                                           │
│  Ed25519 每设备密钥对 + 规范请求签名                         │
│  → 签名验证通过后才签发短期 Session Token                    │
├──────────────────────────────────────────────────────────┤
│  第三层:授权控制                                           │
│  每设备 ACL:read / write / mirror-delete                 │
│  固定 allowlist 限制可见路径范围                            │
└──────────────────────────────────────────────────────────┘

开发者文档

如果想进行开发,欢迎查看文档哦~


贡献

发现 bug?想要新功能?欢迎 PR!

cargo test
cargo build --release

许可证

MIT 许可证 — 随便同步,不过角色跑丢了别怪我们 XD


用 ❤️ 为 TauriTavern 社区打造。
祝同步愉快!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors