# Scripts — 部署与运维脚本 多站点 Docker 项目的运维脚本集合,涵盖本地开发管理、云服务器运维、云端部署、数据库备份恢复。 ## 脚本清单 ### 部署与管理 | 脚本 | 用途 | 目标环境 | |------|------|---------| | `sites-manage-local.sh` | 本地站点启停(npm run dev + Docker) | 本地 | | `sites-manage-cloud.sh` | 云服务器站点启停(SSH / 服务器本地运行) | 云端 | | `deploy-ai.sh` | 部署站点到 tlyq.ai(txjp 服务器) | 云端 | | `deploy-cc.sh` | 部署站点到 tlyq.cc(tgz 服务器) | 云端 | | `deploy-monitor.sh` | 独立部署 monitor-ai 告警监控 | 云端 | | `edit-site-cc.sh` | www.tlyq.cc 官网内容管理 | 云端 | | `check-compliance.sh` | D1-D8 合规检查(LESSONS-LEARNED 自动化) | 本地 | ### 备份与恢复(`backup/` 目录) | 脚本 | 用途 | 说明 | |------|------|------| | `backup/backup-sites.sh` | 站点独立备份 | **推荐**:按站点独立打包 | | `backup/backup-db.sh` | 仅数据库备份 | 轻量快速 | | `backup/backup-full.sh` | 完整灾难恢复备份 | 包含所有数据 | | `backup/restore-sites.sh` | 站点恢复 | 交互式选择恢复 | | `backup/restore-db.sh` | 数据库恢复 | 恢复单个数据库 | | `backup/restore-full.sh` | 完整恢复 | 灾难恢复使用 | > 详细文档见 [backup/README.md](backup/README.md) --- ## sites-manage-local.sh — 本地站点管理 ```bash bash scripts/sites-manage-local.sh start # 启动全部 bash scripts/sites-manage-local.sh start ai # 启动 ai 全部 bash scripts/sites-manage-local.sh start ldap oa # 启动指定站点 bash scripts/sites-manage-local.sh stop oa # 停止指定站点 bash scripts/sites-manage-local.sh restart ldap # 重启指定站点 bash scripts/sites-manage-local.sh status # 查看状态 ``` 站点启动方式: | 站点 | 方式 | 端口 | |------|------|------| | ldap | Docker | 6178(Web UI)、3890(LDAP) | | oa | `npm run dev`(宿主机) | 6179 | | issue | `npm run dev`(宿主机) | 6176 | | assets | `npm run dev`(宿主机) | 6177 | | monitor | `npm run dev`(宿主机) | 6181 | | www / cloud / token | Docker | 6173–6175 | ## sites-manage-cloud.sh — 云服务器站点管理 ```bash bash scripts/sites-manage-cloud.sh start ai # 启动全部 bash scripts/sites-manage-cloud.sh restart nginx # 重启 nginx bash scripts/sites-manage-cloud.sh stop oa issue # 停指定站点 bash scripts/sites-manage-cloud.sh status # 查看状态 ``` 自动检测运行环境:本地 Mac 运行时通过 SSH 操作 txjp,在云服务器上运行时直接操作本地 Docker。也可显式指定: ```bash OA_REMOTE=local bash scripts/sites-manage-cloud.sh status # 强制本地模式 OA_REMOTE=ssh bash scripts/sites-manage-cloud.sh status # 强制 SSH 模式 ``` 站点全部以 Docker 方式运行,依赖关系:`ldap → oa / issue / assets → nginx`。 ## deploy-ai.sh — tlyq.ai 部署 ```bash bash scripts/deploy-ai.sh # 自动检测:增量 or 完整构建 bash scripts/deploy-ai.sh --force # 强制完整构建 bash scripts/deploy-ai.sh --restart # 仅重启容器 ``` 交互式选择站点(1–10):www / cloud / token / issue / assets / oa / ldap / gitea / sso / monitor。 流程:源码打包 → 上传 → 服务器 `npm install` → `npm run build` → 容器重建。部署后自动验证。 LDAP 部署特殊处理:上传 Dockerfile + docker-compose.yml,自动创建 .env,去除端口映射,`--build` 构建含 sqlite3 的镜像。 ## backup/ — 备份与恢复 ```bash # 站点独立备份(推荐) bash scripts/backup/backup-sites.sh # 备份所有站点 bash scripts/backup/backup-sites.sh assets issue # 备份指定站点 # 恢复 bash scripts/backup/restore-sites.sh # 交互式恢复 bash scripts/backup/restore-sites.sh 20260622_101858 # 指定时间戳 # 数据库单独备份 bash scripts/backup/backup-db.sh ``` 支持站点:`assets` / `issue` / `ldap` / `gitea` / `oa` / `monitor`(自动发现,无需手动添加) 备份内容:数据库 + 上传文件 + 配置文件 + nginx + SSL 证书 > 详细文档见 [backup/README.md](backup/README.md) ## 备份存储路径 | 位置 | 路径 | |------|------| | 云端持久备份 | `/root/docker/db-backups/` | | 本地备份 | `db-backups/` | ## 依赖 - **本地**:macOS / Linux,bash,ssh(配置 `txjp` 和 `tgz` 别名),scp,docker,sqlite3 - **云端**:Docker Compose,Node.js,better-sqlite3