# yunyan-sas 部署 ## 一键发布测试环境(dev) ```bash cd deploy ./dev-deploy-all.sh # 交互选公司(环境),按 app → console → admin 全量发布 ./dev-deploy-all.sh along # 全量发到阿龙测试环境 ./dev-deploy-all.sh along app admin # 只发 app 和 admin ./dev-deploy-all.sh along -y -k # 免确认;某个服务失败也继续发后面的 ./dev-deploy-all.sh along -n # dry-run,只打印会执行什么 ``` 环境:目前只有 `along`(阿龙),与各服务 `dev-deploy.sh` 的 `ENVS` 同名,脚本启动时会交叉校验, 一边加了新环境另一边忘了加会直接报错。 > ⚠️ **本仓库只剩阿龙一家,服务器与镜像仓库都是。** > 2026-09-13 先移除了云雁/灵谱的部署目标(SSH 私钥指向另一台开发机,本机没有钥匙, > 留着只会在菜单里制造误选);2026-09-23 又删掉了它们的镜像仓库档案 > (`registry.voitrans.net` / `registry.lingpu.net`),`prod-build.sh` 现在只能推阿龙仓库。 > 要恢复,从 git 历史里取回 `env_profile` / `region_profile` 段与 `registry_profile` 的对应 case。 它只是按顺序调各服务自己的 `deploy/<服务>/dev-deploy.sh <环境>` 并汇总结果,部署规则仍然 只有一处;单独发某个服务照旧进服务目录跑 `./dev-deploy.sh <环境>`。服务器上还没有真实 `.env` 时子脚本会推完镜像就停下,汇总表里记为「跳过」而不是「成功」。 ## 各服务的脚本 每个服务目录下三个脚本:`dev-deploy.sh`(测试环境,固定 tag `dev-latest`)、 `prod-build.sh <版本> [公司]`(构建并推送带版本号的镜像)、`prod-deploy.sh`(只做远端拉取重启)。 服务器上的 `.env` 与 `confs/*.yaml` 由人工维护,脚本只下发 `*.example` 模板,绝不覆盖。 - `console/` — Go 控制面服务(:8080) - `admin/` — Nuxt 管理前端(:3000,通过 `CONSOLE_BACKEND` 连 console) - `app/` — Go 业务后端(多应用共用镜像,远端目录/容器名按应用区分,见 `prod-deploy.sh` 的 `APPS`) ⚠️ 部署目标与仓库密码写死在脚本里且**会进 git**(私有仓库内可接受;公开前务必清理 `deploy/registry-profiles.sh` 的 `REGISTRY_PASS` 与各 `*-deploy.sh` 的 `DEPLOY_HOST`)。