You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
liwei1dao 188a0f5c55 上传版本服务服务集群代码和管理后台 4 months ago
..
console/confs 上传版本服务服务集群代码和管理后台 4 months ago
env 上传版本服务服务集群代码和管理后台 4 months ago
targets 上传版本服务服务集群代码和管理后台 4 months ago
.gitignore 上传版本服务服务集群代码和管理后台 4 months ago
README.md 上传版本服务服务集群代码和管理后台 4 months ago
deploy.sh 上传版本服务服务集群代码和管理后台 4 months ago
docker-compose.yml 上传版本服务服务集群代码和管理后台 4 months ago

README.md

yunyan-sas 部署

三环境部署:local(本机)/ dev(开发服务器)/ prod(生产服务器),统一入口 deploy.sh。 服务:yunyan-console(Go 控制面,:8080)+ yunyan-admin(Nuxt 管理前端,:3000)。

目录结构

deploy/
├── deploy.sh                 # 部署入口
├── docker-compose.yml        # 变量驱动 compose(console + admin)
├── env/
│   ├── local.env             # 本机运行时变量
│   ├── dev.env / prod.env    # 各环境运行时变量(占位,需填)
│   └── example.env           # 模板
├── targets/
│   ├── dev.conf / prod.conf  # 远程目标 SSH/目录/仓库(占位,需填)
│   └── example.conf          # 模板
└── console/confs/console.yaml  # console 配置(变量从 .env 注入)

首次配置(dev / prod)

  1. 填 env/dev.env、env/prod.env:POSTGRES_DSN / REDIS_* / NATS_URL / DOCKER_NETWORK / ADMIN_PORT / CONSOLE_* / FIELD_ENCRYPT_KEY。
    • DSN 密码里的特殊字符要 URL 编码(& → %26)。
  2. 填 targets/dev.conf、targets/prod.conf:SSH_HOST / SSH_PORT / SSH_USER / SSH_KEY / REMOTE_DIR / REGISTRY_PASS。
  3. 目标服务器需:装 docker + docker compose v2、能访问私有镜像仓库、SSH 公钥已授权。

用法

# 本机
./deploy.sh local up          # 起服务(访问 http://localhost:3000)
./deploy.sh local down
./deploy.sh local logs

# 开发服务器(一键:构建推送镜像 + 同步配置 + 远程拉起)
./deploy.sh dev deploy
./deploy.sh dev ps
./deploy.sh dev logs

# 生产服务器
./deploy.sh prod deploy
./deploy.sh prod restart

操作矩阵

操作 local dev / prod
up 本机 compose up -d 同步配置 + 远程 pull + up
down / restart / logs / ps 本机 远程
pull 本机拉镜像 远程拉镜像
build 本机构建推送镜像(TAG 取自 env) 同(构建始终在本机)
deploy build + up build + 同步 + 远程 pull + up

deploy 流程(dev / prod)

  1. 本机 build.sh 构建 console + admin 镜像并推送私有仓库(TAG 取自对应 env)。
  2. SSH 到目标机,创建 REMOTE_DIR。
  3. scp 同步:docker-compose.yml + env/<环境>.env(→ 远程 .env) + console/confs/console.yaml。
  4. 远程:确保 DOCKER_NETWORK 网络存在(不存在则自动创建)+ docker login 私有仓库。
  5. 远程:docker compose pull && docker compose up -d。

注意

  • env/*.env、targets/*.conf 含密钥,已 .gitignore 忽略,不要提交。
  • prod 的 TAG 建议固定版本号(如 v1.2.0)便于回滚;prod 的 FIELD_ENCRYPT_KEY / CONSOLE_TOKEN_KEY 务必改强随机值。
  • redis / nats:在目标机 DOCKER_NETWORK 网络内则用容器名(redis:6379);否则在 env 填外部 IP:端口。
  • console 首启会在主库自动建表(含 serviceconfig / calltranslate 等新表)。