Skip to content

服务端部署指南

SSH-Go 管理平台提供 Web 管理界面,集中管理客户端和源码包。

功能特性

  • Web 管理平台,集中管理客户端和源码包
  • 客户端状态监控(IP、主机名、SSH 版本、在线状态)
  • OpenSSH 源码包上传和 HTTP 直链下载
  • 系统设置管理、IP 白名单访问控制

管理后台界面

仪表盘

系统概览,展示客户端总数、在线/离线数量、SSH 版本分布等关键指标。

仪表盘

快速使用

新手引导页面,提供客户端命令快速复制和配置指引。

快速使用

客户端管理

客户端列表管理,支持搜索、状态筛选、分页查看,以及客户端详情和删除操作。

客户端管理

源码包管理

OpenSSH 源码包上传和管理,支持本地上传和远程 URL 下载,自动生成 HTTP 直链供客户端拉取。

源码包管理

访问控制

IP 白名单管理,保障管理平台和 API 接口的访问安全。

访问控制

关于系统

系统版本信息和开源许可说明。

关于系统

Docker 部署

docker-compose.yml 模板

yaml
version: '3.8'

services:
  ssh-upgrade-web:
    image: ccr.ccs.tencentyun.com/liumou/ssh-go-automatic-upgrade
    container_name: ssh-upgrade-web
    ports:
      - "12378:12378"
    volumes:
      - ./data:/app/data
      - ./uploads:/app/uploads
    environment:
      - TZ=Asia/Shanghai
      - SSH_UPGRADE_ADMIN_USER=admin
      - SSH_UPGRADE_ADMIN_PASS=admin123
      - DB_DRIVER=mysql
      - DB_HOST=mysql
      - DB_PORT=3306
      - DB_USER=ssh_upgrade
      - DB_PASSWORD=ssh_upgrade_pass
      - DB_NAME=ssh_upgrade
      - VALKEY_HOST=valkey
      - VALKEY_PORT=6379
    depends_on:
      mysql:
        condition: service_healthy
      valkey:
        condition: service_healthy
    restart: unless-stopped

  mysql:
    image: mysql:8.0
    container_name: ssh-upgrade-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=root_password
      - MYSQL_DATABASE=ssh_upgrade
      - MYSQL_USER=ssh_upgrade
      - MYSQL_PASSWORD=ssh_upgrade_pass
    volumes:
      - mysql_data:/var/lib/mysql
    restart: unless-stopped

  valkey:
    image: valkey/valkey:8.1-alpine
    container_name: ssh-upgrade-valkey
    command: valkey-server --loglevel warning --save "" --appendonly no
    volumes:
      - valkey_data:/data
    restart: unless-stopped

volumes:
  mysql_data:
  valkey_data:

一键启动

bash
docker-compose up -d

使用外部数据库

如果已有外部数据库(MySQL/MariaDB/PostgreSQL),可精简为单服务部署:

yaml
version: '3.8'

services:
  ssh-upgrade-web:
    image: ccr.ccs.tencentyun.com/liumou/ssh-go-automatic-upgrade
    container_name: ssh-upgrade-web
    ports:
      - "12378:12378"
    volumes:
      - ./data:/app/data
      - ./uploads:/app/uploads
    environment:
      - TZ=Asia/Shanghai
      - SSH_UPGRADE_ADMIN_USER=admin
      - SSH_UPGRADE_ADMIN_PASS=admin123
      - DB_DRIVER=mysql
      - DB_HOST=192.168.1.100
      - DB_PORT=3306
      - DB_USER=ssh_upgrade
      - DB_PASSWORD=your_password
      - DB_NAME=ssh_upgrade
      - VALKEY_HOST=192.168.1.100
      - VALKEY_PORT=6379
    restart: unless-stopped

环境变量参考

服务端配置

环境变量默认值描述
SSH_UPGRADE_ADDR:12378Web 服务监听地址
SSH_UPGRADE_DATA_DIR/var/lib/ssh-go-automatic-upgrade数据存储目录
SSH_UPGRADE_UPLOAD_DIR/var/lib/ssh-go-automatic-upgrade/uploads源码包上传目录
SSH_UPGRADE_ADMIN_USERadmin管理员用户名
SSH_UPGRADE_ADMIN_PASSadmin123管理员密码
SSH_UPGRADE_CORS_ALLOW_ALLfalse是否允许所有跨域请求
TZAsia/Shanghai时区设置

数据库配置

环境变量默认值描述
DB_DRIVERmysql数据库驱动:mysql/mariadb/postgres
DB_HOST127.0.0.1数据库主机地址
DB_PORT3306/5432数据库端口
DB_USERssh_upgrade数据库用户名
DB_PASSWORD-数据库密码
DB_NAMEssh_upgrade数据库名
DB_SSLMODEdisablePostgreSQL SSL 模式

缓存配置

环境变量默认值描述
VALKEY_HOST127.0.0.1Valkey 主机地址
VALKEY_PORT6379Valkey 端口
VALKEY_PASSWORD-Valkey 密码
VALKEY_DB0Valkey 数据库编号

访问管理平台

启动服务后,访问 http://your-server:12378 进入管理平台。

使用流程

1. 上传源码包

  1. 登录管理平台
  2. 进入"源码包管理"页面
  3. 点击"选择文件"或拖拽上传 OpenSSH 源码包(.tar.gz 格式)
  4. 也可通过输入下载链接直接下载到服务器
  5. 上传完成后,系统自动生成 HTTP 直链

2. 配置客户端

bash
sudo ssh-go-automatic-upgrade -server-url http://your-server:12378 -report -report-interval 5

3. 自动升级

客户端会定期向服务端上报状态,通过 /api/latest-package-url 接口获取最新源码包 URL,自动下载并编译安装最新版本。

API 接口

公开接口(无需认证)

路由方法描述
/api/healthGET健康检查
/api/latest-package-urlGET获取最新源码包 URL
/api/mirror-urlGET获取镜像源 URL
/api/client/reportPOST客户端上报信息
/api/auth/loginPOST管理员登录
/dl/:filenameGET源码包直链下载

认证接口(需要 Token)

路由方法描述
/api/auth/meGET获取当前用户信息
/api/auth/accountPUT修改账号密码
/api/clientsGET获取客户端列表(分页)
/api/clients/statsGET获取统计数据
/api/client/:idGET获取客户端详情
/api/client/:idDELETE删除客户端
/api/packagesGET获取源码包列表
/api/package/uploadPOST上传源码包
/api/package/downloadPOST通过 URL 下载源码包
/api/package/:filenameDELETE删除源码包
/api/settingsGET获取系统设置
/api/settingsPUT更新系统设置

备份与恢复

bash
# 备份上传文件
tar -czf ssh-go-automatic-upgrade-backup-$(date +%Y%m%d).tar.gz uploads/

# 备份 MySQL 数据库
docker exec ssh-upgrade-mysql mysqldump -u ssh_upgrade -p ssh_upgrade_pass ssh_upgrade > db_backup.sql

# 恢复
docker-compose down
tar -xzf ssh-go-automatic-upgrade-backup-20260101.tar.gz
docker exec -i ssh-upgrade-mysql mysql -u ssh_upgrade -p ssh_upgrade_pass ssh_upgrade < db_backup.sql
docker-compose up -d

基于 MIT 许可证发布