Skip to Content
其他tabby 自建同步服务 tabby-web 记录

tabby 自建 tabby-web 同步配置

前言

tabby 作者因为续费不起服务器,所以关闭了 tabby-web 服务。

tabby 配置完同步之后可以很方便的在不同的地方直接登录服务器,尤其是 服务器的 key 也能同步。

使用 Github OAuth 验证登录(其他的验证方式自己摸索吧)

  1. https://github.com/settings/developers 点击 New OAuth App

  2. Application name 和 Homepage URL 都按照自己实际来就行了,比如就叫 tabby-web 和 自己网站主页

  3. 主要是 Authorization callback URL 要填写:https://你的域名/api/1/auth/social/complete/github/

  4. 之后点击 Register application 注册应用,然后会进到应用页

  5. 点击 Generate a new client secret 生成一个 client secret(只展示一次值)

  6. 记录下 Client ID 和 刚才生成的 Client secret

部署 tabby-web

这里使用的是 docker 和 docker-compose 来部署

# 一键安装 docker curl -fsSL https://get.docker.com | bash # 改用国内镜像 # curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun # 安装 docker-compose(debian/ubuntu) apt install docker-compose
  1. 连上服务器后,新建个 tabby-web 目录,存放 tabby-web 的相关数据

  2. 创建 docker-compose.yml 文件

这里直接使用了 host 宿主机的网络,如果 9000 端口被占了的话自己改一个,数据存在当前目录的 data 目录下

ghcr.io 镜像地址国内机子访问可能会有问题,自行使用代理或者镜像地址

mkdir tabby-web cd tabby-web # 使用 > 写入内容到 docker-compose.yml 文件 cat <<EOF > docker-compose.yml version: '3.0' services: tabby-web: image: ghcr.io/eugeny/tabby-web:latest container_name: tabby-web restart: unless-stopped network_mode: host volumes: - ./data:/data environment: - DATABASE_URL=sqlite:////data/db.sqlite3 - DEBUG=False - PORT=9000 - APP_DIST_STORAGE=file:///data - SOCIAL_AUTH_GITHUB_KEY=刚才获取的 Client ID - SOCIAL_AUTH_GITHUB_SECRET=刚才获取的 Client secret logging: driver: "json-file" options: max-size: "5m" max-file: "5" EOF
  1. 修改 docker-compose.yml 文件中的 SOCIAL_AUTH_GITHUB_KEYSOCIAL_AUTH_GITHUB_SECRET 为刚才获取的 Client ID 和 Client secret

  2. 启动 tabby-web

docker-compose up -d

配置 nginx 反代给 tabby-web 上域名和 ssl 证书

到这一步你也可以直接访问 ip:端口打开网页了,不过放到公网的话,还是建议加个域名配个证书,这里给一份 nginx 反代的示例

server { listen 80; listen [::]:80; server_name 你的域名; return 302 https://$host${request_uri}; } server { listen 443 ssl; listen [::]:443 ssl; http2 on; server_name 你的域名; ssl_certificate /path/to/your/ssl/cert.pem; ssl_certificate_key /path/to/your/ssl/key.pem; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:-LOW:!aNULL:!eNULL; ssl_prefer_server_ciphers on; add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers X-Requested-Wit,content-typeh; add_header Access-Control-Allow-Methods GET,POST,OPTIONS; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Range $http_range; proxy_set_header If-Range $http_if_range; proxy_redirect off; proxy_pass http://127.0.0.1:9000; } access_log off; }

访问 tabby-web

  • 因为我们没有配置 tabby-connection-gateway 所以是无法在网页登录服务器的

  • 不过我们的目的只是配置同步,直接点击网页左下角的登录按钮,选择 github 登录即可

  • 之后在左下角点击设置按钮,复制 Config sync 下面的 token

  • 在 tabby 的配置同步中,修改同步的地址,然后将 token 填入到同步 token 的地方就行了

tabby

Last updated on