前言
经常换设备用终端时候总是要下载 tabby 和添加原来的连接配置,还不同步。一直想搭建官方提供的tabby-web,现在终于有空搞。
搭建完发现不只是可以同步,还可以在网页连接配置里的终端,但是要搭建网关,顺便把网关也搭建了。web是http协议,网关是ws协议。
但是搭建过程和官方REDEME相比差别甚大
遂本文记载 tabby-web 与 tabby-gateway 的搭建配置与联动。
准备
- docker!docker!docker!
- 两份域名证书(前端和网关,前端的自己反向代理使用,网关的需要挂载到容器)
部署
先部署吧,碰到的小毛病都是部署后面的(只部署 tabby-web 的话自己删一下网关那段)
一起整合到了编排文件。
需要修改的地方如下,分是否开启SSL两种:
- 开启SSL
- 填写 网关证书目录地址:签名和私钥命名为gateway.pem和gateway.key
- 填写 前端容器挂载目录:后面要用到。
- 填写 两个映射的端口
- 填写 前端域名
- 填写 网关密钥(相当于自定义的密码)
- 填写 SOCIAL_AUTH_GITHUB_KEY 与 SOCIAL_AUTH_GITHUB_SECRET (用于用户Github登录,点进来进来创建一个,回调地址填前端域名)
- 取消SSL
- 修改 tabby-gateway.command: –token-auth –host 0.0.0.0
- 删除 tabby-gateway.volumes
- 修改 “网关端口:443” -> “网关端口:9000”
- 填写 网关密钥
- 填写 前端域名
- 填写 SOCIAL_AUTH_GITHUB_KEY 与 SOCIAL_AUTH_GITHUB_SECRET
docker-compose.yml1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| version: "3.0"
services: tabby-gateway: image: ghcr.io/eugeny/tabby-connection-gateway:master container_name: "tabby-gateway" command: --token-auth --host 0.0.0.0 --port 443 --certificate /custom/ssl/gateway.pem --private-key /custom/ssl/gateway.key environment: - TABBY_AUTH_TOKEN=网关密钥 ports: - "网关端口:443" volumes: - /你的网关证书地址:/custom/ssl restart: unless-stopped
tabby-web: image: ghcr.io/eugeny/tabby-web:latest container_name: tabby-web restart: unless-stopped volumes: - /你的前端容器挂载目录:/data environment: - DATABASE_URL=sqlite:////data/db.sqlite3 - DEBUG=False - PORT=8080 - APP_DIST_STORAGE=file:///data - SOCIAL_AUTH_GITHUB_KEY=记得填 - SOCIAL_AUTH_GITHUB_SECRET=记得填 - com.centurylinklabs.watchtower.enable=true - traefik.enable=true - traefik.http.routers.app-tabby-web.tls=true - traefik.http.routers.app-tabby-web.tls.certresolver=cloudflare - traefik.http.routers.app-tabby-web.entrypoints=websecure - traefik.http.routers.app-tabby-web.rule=Host(`前端域名`) - traefik.http.routers.app-tabby-web.service=app-tabby-web - traefik.http.services.app-tabby-web.loadbalancer.server.port=9090 logging: driver: json-file options: max-size: 5m max-file: "5" ports: - "前端端口:8080"
|
编排就交给你了,部署完接下来分两步,先跑通web后讲gateway。
前端
安装依赖
访问前端后会肯定有一个提醒,我们来到tabby-web容器的命令行执行如下
web容器1
| /manage.sh add_version 1.0.187-nightly.1
|
下面是毛病吐槽,点击跳过碎碎念。
最新版其实是 1.0.197-nightly.1 ,但是容易暴毙。
安装完之后重启容器发现仍然是黑屏! 
打开F12网络检查会发现找不到 /app-dist/1.0.187-nightly.1/ 下面的文件。
来到服务器前端容器挂载目录会发现有1.0.187-nightly.1目录,但是它的子目录是/tmpxxxx,而/tmpxxxx目录下面就是前端网络找不到的文件,是不是很抽象。

当你把文件/tmpxxxx目录下面文件移动到1.0.187-nightly.1下面,重启容器,你会发现前端不再黑屏,但是一直在加载,打开F12故技重施发现又要/tmpxxxx下面的文件,而且要的还是1.0.187-nightly.1依赖未解压的版本,实在是抽象。


好了我吐槽完了,下面厘清操作。
调整依赖
在前端容器挂载目录完成。
- 将
/1.0.187-nightly.1/tmpxxxx 下面的文件移动到 /1.0.187-nightly.1
移动文件1 2 3 4 5
| cd /前端容器挂载目录/1.0.187-nightly.1
ls mv ./tmpxxxx/* ./
|
- 下载源码,解压到
./tmpxxxx
下载解压1 2 3 4
| cd ./tmpxxx
wget https://registry.npmjs.org/tabby-web-demo/-/tabby-web-demo-1.0.187-nightly.1.tgz tar -xvf tabby-web-demo-1.0.187-nightly.1.tgz
|
同步配置
自此重启容器,前端能加载完毕。
访问:你的域名/login。可以使用Github登录。
登陆之后点击设置有token,然后在客户端配置即可,参考下面图片,前者前端,后者客户端。
网关
编排能通过网关就没问题,网关一直重启就是证书目录有问题。
注意:网关是WS协议,不要习惯去http反向代理,然后配置了证书的话网关地址应该是 wss://网关域名:网关端口
填写是在前端填写,这样就能在网页上用同步的配置连接终端,如图。
网页通过网关连接终端 ratio:1365/1447
结语
遇事不决,欢迎提问。 