Sync Tabby Config with a Self-hosted Tabby Web
内容提要
本文介绍如何用 Podman 自建 Tabby Web 实现 Tabby 配置同步:注册 GitHub App 获取 Client ID 和 Secret,用 podman-compose 部署 Tabby Web 并配置 Nginx 反向代理,进入容器注册应用版本;在 Tabby Web 启用库并设置主密码,通过 GitHub 登录获取同步 Token;最后在 Tabby 的 Config Sync 中填入主机地址和 Token,即可上传、下载或自动同步多套配置。
延伸解读
自建同步服务的优势
文章指出,相比之前使用的 Nextcloud 或 Setting Sync 插件,Tabby 内建的同步服务更稳定,且支持多套配置的同步与切换。自建 Tabby Web 实例后,你可以完全掌控数据,避免依赖第三方服务的稳定性问题。如果你有信任的人已经搭建了 Tabby Web,也可以直接借用,无需自己部署。
部署中的关键配置点
部署时需注意几个关键点:注册 GitHub App 时,回调 URL 必须填写为 https://你的域名/api/1/auth/social/complete/github/;运行容器后,需进入容器执行 ./manage.sh add_version 注册一个较新的应用版本号,否则可能无法正常使用。此外,在 Tabby Web 中启用库(Vault)时,不要开启 Encrypt config file 选项,否则会影响同步功能。
同步操作与备份建议
在 Tabby 中配置同步前,建议先进入 Config file 备份当前配置,以防意外覆盖。填入 Sync Host 和 Secret sync token 后,稍等即可看到已同步的配置(profile)。你可以选择上传写入、下载覆盖或创建新的配置,并建议开启 Sync automatically 选项以实现自动同步。这样在多设备间切换时能保持配置一致。
Q&A
如何用 Podman 自建 Tabby Web 来同步 Tabby 配置?
首先注册 GitHub App 获取 Client ID 和 Secret;然后创建 podman-compose.yml,使用 ghcr.io/eugeny/tabby-web:latest 镜像,配置环境变量包括 DATABASE_URL、PORT、DEBUG、SOCIAL_AUTH_GITHUB_KEY 和 SOCIAL_AUTH_GITHUB_SECRET,并挂载数据卷;运行 podman-compose up -d 启动容器;接着用 Nginx 做反向代理;进入容器执行 ./manage.sh add_version 1.0.163 注册应用版本;最后在 Tabby 中配置同步。
注册 GitHub App 时回调 URL 应该填什么?
回调 URL 应填写为 https://你的域名/api/1/auth/social/complete/github/,例如 https://tabby.example.com/api/1/auth/social/complete/github/。
Tabby Web 的 podman-compose 配置需要哪些环境变量?
需要设置 DATABASE_URL(如 sqlite:////app-dist/db.sqlite3)、PORT(如 8000)、DEBUG(如 False)、SOCIAL_AUTH_GITHUB_KEY(GitHub App 的 Client ID)和 SOCIAL_AUTH_GITHUB_SECRET(GitHub App 的 Client Secret)。
在 Tabby 中如何设置配置同步?
在 Tabby 设置中,先进入 Config file 备份当前配置;然后进入 Config Sync 设置,填入 Sync Host(如 https://tabby.example.com)和 Secret sync token(从 Tabby Web 页面复制);稍等即可看到已同步的配置,可以上传、下载或创建新配置,建议开启 Sync automatically。
如何获取 Tabby Web 的同步 Token?
访问你的 Tabby Web 实例(如 https://tabby.example.com),点击页面左下登录按钮,选择 GitHub 登录;登录后点击页面左下设置按钮,即可复制同步 Token。
配置 Tabby Web 同步时有哪些注意事项?
首先要启用库(Vault)并设置主密码,注意不要开启 Encrypt config file,否则会影响同步功能。另外,在 Tabby 设置中建议先备份当前配置,再填入同步信息,并开启 Sync automatically 选项。