Skip to content

服务端部署指南 ​

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

功能特性 ​

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

管理后台界面 ​

仪表盘 ​

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

仪表盘

快速使用 ​

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

快速使用

客户端管理 ​

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

客户端管理

源码包管理 ​

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

源码包管理

访问控制 ​

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

版本限制

访问IP控制功能仅专业版及以上版本支持,免费版不限制 IP 访问。

访问控制

关于系统 ​

系统版本信息。

关于系统

Docker 部署 ​

项目在 docker-compose/ 目录提供分层编排文件,按 .gvt/docker/images 中的实际镜像配置生成,包含 backend(服务端) 与 dashboard(前端管理) 两个镜像:

  • backend:ccr.ccs.tencentyun.com/ssh-go/backend:latest(端口 12378,提供 API 与管理数据)
  • dashboard:ccr.ccs.tencentyun.com/ssh-go/dashboard:latest(nginx,端口 12380,反向代理到 backend)

编排文件说明 ​

文件说明
docker-compose.mysql.yml全栈部署(MySQL 内置)
docker-compose.mariadb.yml全栈部署(MariaDB 内置)
docker-compose.postgres.yml全栈部署(PostgreSQL 内置)
docker-compose.external-db.yml仅应用(使用外部数据库)
.env.example环境变量模板
README.md完整使用说明

内置数据库(全栈部署) ​

选择一种数据库,进入 docker-compose/ 目录启动:

bash
cd docker-compose

# MySQL
docker compose -f docker-compose.mysql.yml up -d

# MariaDB
docker compose -f docker-compose.mariadb.yml up -d

# PostgreSQL
docker compose -f docker-compose.postgres.yml up -d

部署后即可访问:

数据持久化目录(相对于 docker-compose/):

  • ./data/mysql ./data/mariadb ./data/postgres:数据库文件
  • ./data/app:后端服务数据
  • ./data/uploads:OpenSSH 源码包上传目录

使用外部数据库 ​

适用于已有 MySQL/MariaDB/PostgreSQL 实例的场景,不内置数据库:

bash
cd docker-compose
docker compose -f docker-compose.external-db.yml up -d

通过环境变量(参考 .env.example)指定外部数据库地址:

bash
DB_DRIVER=mysql \
DB_HOST=your-db-host \
DB_PORT=3306 \
DB_USER=your-user \
DB_PASSWORD=your-password \
DB_NAME=ssh_upgrade \
docker compose -f docker-compose.external-db.yml up -d

外部数据库位于宿主机时,可通过 host.docker.internal 访问宿主机。

手动创建数据库 ​

如果使用外部数据库(非 Docker 内嵌),需先手动创建数据库和用户。选择对应数据库类型查看详细步骤:

缓存默认使用内置内存(CACHE_DRIVER=memory),无需额外部署;如需 Valkey/Redis 请在 .env 中配置。

环境变量配置 ​

项目提供 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 CACHE_DRIVER=memory
# 如需 Valkey/Redis 缓存,取消下方注释并配置
# export CACHE_DRIVER=valkey
# export VALKEY_HOST=127.0.0.1
# export VALKEY_PORT=6379
# export VALKEY_PASSWORD=
# export VALKEY_DB=0

1Panel 部署 ​

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

使用 docker-compose 编排文件 ​

1Panel 支持直接上传 docker-compose 文件。可直接使用仓库 docker-compose/ 目录下的编排文件:

  1. 进入 1Panel 面板 → 应用商店 → 自定义应用 → 创建应用
  2. 填写应用名称(如 ssh-upgrade)
  3. 将 docker-compose.mysql.yml(或其它数据库类型)内容粘贴到编排文件编辑器
  4. 确认 ./data/ 目录挂载格式与 1Panel 的数据持久化规范一致
  5. 提交后即可一键安装

如需自定义镜像版本、端口或外部数据库,可参考 docker-compose/README.md 与 .env.example。

MySQL 编排示例 ​

yaml
services:
  mysql:
    image: mysql:9.7.0
    container_name: ssh-upgrade-mysql
    environment:
      MYSQL_ROOT_PASSWORD: ssh_upgrade_pass
      MYSQL_DATABASE: ssh_upgrade
      MYSQL_USER: ssh_upgrade
      MYSQL_PASSWORD: ssh_upgrade_pass
    volumes:
      - ./data/mysql:/var/lib/mysql
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 10s
      timeout: 5s
      retries: 5
    networks:
      - ssh-upgrade-net

  server:
    image: ccr.ccs.tencentyun.com/ssh-go/backend:latest
    container_name: ssh-upgrade-server
    ports:
      - "12378:12378"
    environment:
      SSH_UPGRADE_ADDR: ":12378"
      SSH_UPGRADE_DATA_DIR: /app/data
      SSH_UPGRADE_UPLOAD_DIR: /app/uploads
      SSH_UPGRADE_CORS_ALLOW_ALL: "false"
      DB_DRIVER: mysql
      DB_HOST: mysql
      DB_PORT: 3306
      DB_USER: ssh_upgrade
      DB_PASSWORD: ssh_upgrade_pass
      DB_NAME: ssh_upgrade
      CACHE_DRIVER: memory
    volumes:
      - ./data/app:/app/data
      - ./data/uploads:/app/uploads
    depends_on:
      mysql:
        condition: service_healthy
    networks:
      - ssh-upgrade-net

  web:
    image: ccr.ccs.tencentyun.com/ssh-go/dashboard:latest
    container_name: ssh-upgrade-web
    ports:
      - "12380:12380"
    environment:
      BACKEND_HOST: ssh-upgrade-server:12378
    depends_on:
      - server
    networks:
      - ssh-upgrade-net

networks:
  ssh-upgrade-net:
    driver: bridge

.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

# 缓存配置(默认内存缓存,无需额外部署)
CACHE_DRIVER=memory
# 如需 Valkey/Redis 缓存,取消下方注释并配置
# CACHE_DRIVER=valkey
# 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:12380 进入管理平台。

首次使用

首次访问时会自动跳转至初始化引导页,请在 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