Skip to content

服务端部署指南

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=0

1Panel 部署

1Panel 是流行的 Linux 服务器管理面板,支持自定义应用部署。

创建自定义应用

  1. 进入 1Panel 面板 → 应用商店自定义应用创建应用
  2. 填写应用名称(如 ssh-upgrade
  3. 在编辑器粘贴以下 docker-compose.yml.env 配置文件
  4. 确认 ./data/ 目录挂载格式与 1Panel 的数据持久化规范一致
  5. 提交后即可一键安装

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:12378Web 服务监听地址
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_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 模式

缓存配置

环境变量默认值描述
CACHE_DRIVERmemory缓存驱动:memory(内置内存缓存,默认)| valkey | redis
VALKEY_HOST127.0.0.1Valkey 主机地址(CACHE_DRIVER=valkey 时生效)
VALKEY_PORT6379Valkey 端口
VALKEY_PASSWORD-Valkey 密码
VALKEY_DB0Valkey 数据库编号
REDIS_HOST127.0.0.1Redis 主机地址(CACHE_DRIVER=redis 时生效)
REDIS_PORT6379Redis 端口
REDIS_PASSWORD-Redis 密码
REDIS_DB0Redis 数据库编号

访问管理平台

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

首次使用

首次访问时会自动跳转至初始化引导页,请在 Web 界面设置管理员用户名和密码,完成后即可登录管理平台。

使用流程

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,自动下载并编译安装最新版本。

备份与恢复

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