服务端部署指南
SSH-Go 管理平台提供 Web 管理界面,集中管理客户端和源码包。
功能特性
- Web 管理平台,集中管理客户端和源码包
- 客户端状态监控(IP、主机名、SSH 版本、在线状态)
- OpenSSH 源码包上传和 HTTP 直链下载
- 系统设置管理、IP 白名单访问控制
管理后台界面
仪表盘
系统概览,展示客户端总数、在线/离线数量、SSH 版本分布等关键指标。

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

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

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

访问控制
IP 白名单管理,保障管理平台和 API 接口的访问安全。
版本限制
访问IP控制功能仅专业版及以上版本支持,免费版不限制 IP 访问。

关于系统
系统版本信息。

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 # OpenSSH 源码包上传目录
environment:
# ---------- 基础配置 ----------
- TZ=Asia/Shanghai # 时区
# ---------- 服务端配置 ----------
- SSH_UPGRADE_DATA_DIR=${SSH_UPGRADE_DATA_DIR:-/app/data} # 数据存储目录
- SSH_UPGRADE_UPLOAD_DIR=${SSH_UPGRADE_UPLOAD_DIR:-/app/uploads} # 源码包上传目录
- SSH_UPGRADE_CORS_ALLOW_ALL=${SSH_UPGRADE_CORS_ALLOW_ALL:-false} # 允许所有跨域请求
# ---------- 数据库配置 ----------
- DB_DRIVER=${DB_DRIVER:-mysql} # mysql | mariadb | postgres
- DB_HOST=${DB_HOST:-mysql} # 数据库主机地址
- DB_PORT=${DB_PORT:-3306} # 数据库端口
- DB_USER=${DB_USER:-ssh_upgrade} # 数据库用户名
- DB_PASSWORD=${DB_PASSWORD:-ssh_upgrade_pass} # 数据库密码
- DB_NAME=${DB_NAME:-ssh_upgrade} # 数据库名称
# - DB_SSLMODE=disable # PostgreSQL SSL 模式
# ---------- 缓存配置 ----------
- CACHE_DRIVER=${CACHE_DRIVER:-memory} # 缓存驱动:memory(默认)| valkey | redis
- VALKEY_HOST=${VALKEY_HOST:-valkey} # Valkey 主机地址(CACHE_DRIVER=valkey 时生效)
- VALKEY_PORT=${VALKEY_PORT:-6379} # Valkey 端口
- VALKEY_PASSWORD=${VALKEY_PASSWORD:-} # Valkey 密码(空表示无密码)
- VALKEY_DB=${VALKEY_DB:-0} # Valkey 数据库编号
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 root 密码
- MYSQL_DATABASE=ssh_upgrade # 数据库名
- MYSQL_USER=ssh_upgrade # 数据库用户
- MYSQL_PASSWORD=ssh_upgrade_pass # 数据库密码
volumes:
- ./data/mysql:/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:
- ./data/valkey:/data
restart: unless-stopped一键启动
bash
docker-compose up -d使用外部数据库
手动创建数据库
如果使用外部数据库(非 Docker 内嵌),需先手动创建数据库和用户。选择对应数据库类型查看详细步骤:
Valkey 缓存无需手动建库,通过环境变量配置连接参数即可。
如果已有外部数据库(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 # OpenSSH 源码包上传目录
environment:
# ---------- 基础配置 ----------
- TZ=${TZ:-Asia/Shanghai} # 时区
# ---------- 数据库配置(修改为你的数据库地址)----------
- DB_DRIVER=${DB_DRIVER:-mysql} # mysql | mariadb | postgres
- DB_HOST=${DB_HOST:-192.168.1.100} # 数据库主机地址
- DB_PORT=${DB_PORT:-3306} # 数据库端口
- DB_USER=${DB_USER:-ssh_upgrade} # 数据库用户名
- DB_PASSWORD=${DB_PASSWORD:-your_password} # 数据库密码
- DB_NAME=${DB_NAME:-ssh_upgrade} # 数据库名称
# ---------- 缓存配置 ----------
- CACHE_DRIVER=${CACHE_DRIVER:-memory} # 缓存驱动:memory(默认)| valkey | redis
- VALKEY_HOST=${VALKEY_HOST:-192.168.1.100} # Valkey 主机地址(CACHE_DRIVER=valkey 时生效)
- VALKEY_PORT=${VALKEY_PORT:-6379} # Valkey 端口
- VALKEY_PASSWORD=${VALKEY_PASSWORD:-} # Valkey 密码(空表示无密码)
- VALKEY_DB=${VALKEY_DB:-0} # Valkey 数据库编号
restart: unless-stopped环境变量配置
项目提供 env.sh 环境变量模板文件,方便统一管理配置:
bash
# 使用 env.sh 配置
cp env.sh .env
# 编辑 .env 修改参数后启动
docker compose --env-file .env up -d
# 或直接 source 加载
source env.sh && docker compose up -d配置文件 env.sh 内容:
bash
# 时区
export TZ=Asia/Shanghai
# 服务端配置
export SSH_UPGRADE_DATA_DIR=/app/data
export SSH_UPGRADE_UPLOAD_DIR=/app/uploads
export SSH_UPGRADE_CORS_ALLOW_ALL=false
# 数据库配置
export DB_DRIVER=mysql
export DB_HOST=127.0.0.1
export DB_PORT=3306
export DB_USER=ssh_upgrade
export DB_PASSWORD=ssh_upgrade_pass
export DB_NAME=ssh_upgrade
# 缓存配置
export VALKEY_HOST=127.0.0.1
export VALKEY_PORT=6379
export VALKEY_PASSWORD=
export VALKEY_DB=01Panel 部署
1Panel 是流行的 Linux 服务器管理面板,支持自定义应用部署。
创建自定义应用
- 进入 1Panel 面板 → 应用商店 → 自定义应用 → 创建应用
- 填写应用名称(如
ssh-upgrade) - 在编辑器粘贴以下
docker-compose.yml和.env配置文件 - 确认
./data/目录挂载格式与 1Panel 的数据持久化规范一致 - 提交后即可一键安装
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 # OpenSSH 源码包上传目录
environment:
- TZ=${TZ:-Asia/Shanghai}
- SSH_UPGRADE_DATA_DIR=${SSH_UPGRADE_DATA_DIR:-/app/data}
- SSH_UPGRADE_UPLOAD_DIR=${SSH_UPGRADE_UPLOAD_DIR:-/app/uploads}
- SSH_UPGRADE_CORS_ALLOW_ALL=${SSH_UPGRADE_CORS_ALLOW_ALL:-false}
- DB_DRIVER=${DB_DRIVER:-mysql}
- DB_HOST=${DB_HOST:-127.0.0.1}
- DB_PORT=${DB_PORT:-3306}
- DB_USER=${DB_USER:-ssh_upgrade}
- DB_PASSWORD=${DB_PASSWORD:-ssh_upgrade_pass}
- DB_NAME=${DB_NAME:-ssh_upgrade}
- VALKEY_HOST=${VALKEY_HOST:-127.0.0.1}
- VALKEY_PORT=${VALKEY_PORT:-6379}
- VALKEY_PASSWORD=${VALKEY_PASSWORD:-}
- VALKEY_DB=${VALKEY_DB:-0}
restart: unless-stopped.env 配置文件
bash
# 时区
TZ=Asia/Shanghai
# 服务端配置
SSH_UPGRADE_DATA_DIR=/app/data
SSH_UPGRADE_UPLOAD_DIR=/app/uploads
SSH_UPGRADE_CORS_ALLOW_ALL=false
# 数据库配置
DB_DRIVER=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=ssh_upgrade
DB_PASSWORD=ssh_upgrade_pass
DB_NAME=ssh_upgrade
# 缓存配置
VALKEY_HOST=127.0.0.1
VALKEY_PORT=6379
VALKEY_PASSWORD=
VALKEY_DB=0环境变量参考
服务端配置
| 环境变量 | 默认值 | 描述 |
|---|---|---|
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_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 模式 |
缓存配置
| 环境变量 | 默认值 | 描述 |
|---|---|---|
CACHE_DRIVER | memory | 缓存驱动:memory(内置内存缓存,默认)| valkey | redis |
VALKEY_HOST | 127.0.0.1 | Valkey 主机地址(CACHE_DRIVER=valkey 时生效) |
VALKEY_PORT | 6379 | Valkey 端口 |
VALKEY_PASSWORD | - | Valkey 密码 |
VALKEY_DB | 0 | Valkey 数据库编号 |
REDIS_HOST | 127.0.0.1 | Redis 主机地址(CACHE_DRIVER=redis 时生效) |
REDIS_PORT | 6379 | Redis 端口 |
REDIS_PASSWORD | - | Redis 密码 |
REDIS_DB | 0 | Redis 数据库编号 |
访问管理平台
启动服务后,访问 http://your-server:12378 进入管理平台。
首次使用
首次访问时会自动跳转至初始化引导页,请在 Web 界面设置管理员用户名和密码,完成后即可登录管理平台。
使用流程
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,自动下载并编译安装最新版本。
备份与恢复
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