Appearance
服务端部署指南
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 | :12378 | Web 服务监听地址 |
SSH_UPGRADE_DATA_DIR | /var/lib/ssh-go-automatic-upgrade | 数据存储目录 |
SSH_UPGRADE_UPLOAD_DIR | /var/lib/ssh-go-automatic-upgrade/uploads | 源码包上传目录 |
SSH_UPGRADE_ADMIN_USER | admin | 管理员用户名 |
SSH_UPGRADE_ADMIN_PASS | admin123 | 管理员密码 |
SSH_UPGRADE_CORS_ALLOW_ALL | false | 是否允许所有跨域请求 |
TZ | Asia/Shanghai | 时区设置 |
数据库配置
| 环境变量 | 默认值 | 描述 |
|---|---|---|
DB_DRIVER | mysql | 数据库驱动:mysql/mariadb/postgres |
DB_HOST | 127.0.0.1 | 数据库主机地址 |
DB_PORT | 3306/5432 | 数据库端口 |
DB_USER | ssh_upgrade | 数据库用户名 |
DB_PASSWORD | - | 数据库密码 |
DB_NAME | ssh_upgrade | 数据库名 |
DB_SSLMODE | disable | PostgreSQL SSL 模式 |
缓存配置
| 环境变量 | 默认值 | 描述 |
|---|---|---|
VALKEY_HOST | 127.0.0.1 | Valkey 主机地址 |
VALKEY_PORT | 6379 | Valkey 端口 |
VALKEY_PASSWORD | - | Valkey 密码 |
VALKEY_DB | 0 | Valkey 数据库编号 |
访问管理平台
启动服务后,访问 http://your-server:12378 进入管理平台。
使用流程
1. 上传源码包
- 登录管理平台
- 进入"源码包管理"页面
- 点击"选择文件"或拖拽上传 OpenSSH 源码包(.tar.gz 格式)
- 也可通过输入下载链接直接下载到服务器
- 上传完成后,系统自动生成 HTTP 直链
2. 配置客户端
bash
sudo ssh-go-automatic-upgrade -server-url http://your-server:12378 -report -report-interval 53. 自动升级
客户端会定期向服务端上报状态,通过 /api/latest-package-url 接口获取最新源码包 URL,自动下载并编译安装最新版本。
API 接口
公开接口(无需认证)
| 路由 | 方法 | 描述 |
|---|---|---|
/api/health | GET | 健康检查 |
/api/latest-package-url | GET | 获取最新源码包 URL |
/api/mirror-url | GET | 获取镜像源 URL |
/api/client/report | POST | 客户端上报信息 |
/api/auth/login | POST | 管理员登录 |
/dl/:filename | GET | 源码包直链下载 |
认证接口(需要 Token)
| 路由 | 方法 | 描述 |
|---|---|---|
/api/auth/me | GET | 获取当前用户信息 |
/api/auth/account | PUT | 修改账号密码 |
/api/clients | GET | 获取客户端列表(分页) |
/api/clients/stats | GET | 获取统计数据 |
/api/client/:id | GET | 获取客户端详情 |
/api/client/:id | DELETE | 删除客户端 |
/api/packages | GET | 获取源码包列表 |
/api/package/upload | POST | 上传源码包 |
/api/package/download | POST | 通过 URL 下载源码包 |
/api/package/:filename | DELETE | 删除源码包 |
/api/settings | GET | 获取系统设置 |
/api/settings | PUT | 更新系统设置 |
备份与恢复
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