Go to file
aiyimickey c1a5174fd1 refactor: 合并 deploy-monitor.sh 到 deploy-ai.sh
- 删除独立的 deploy-monitor.sh 脚本
- 构建新鲜度检查功能合并到 deploy-ai.sh
- 使用动态检测替代硬编码站点列表(自动检测 .next/standalone/server.js)
- 更新 README.md 移除 deploy-monitor.sh 相关内容
2026-07-08 17:09:15 +08:00
backup feat: --local mode + runcmd/fetch adapter + comprehensive README 2026-07-08 14:22:29 +08:00
.gitignore refactor: local.sh 更名为 sites-manage-local.sh,新增 sites-manage-cloud.sh 云端管理脚本 2026-05-18 14:52:40 +08:00
README.md refactor: 合并 deploy-monitor.sh 到 deploy-ai.sh 2026-07-08 17:09:15 +08:00
check-compliance.sh fix: backup/restore scripts — auto-discover sites + add monitor-ai coverage 2026-07-08 12:06:03 +08:00
deploy-ai-readme.md feat: 新增 Docker 缓存清理独立脚本 2026-07-08 16:58:58 +08:00
deploy-ai.sh refactor: 合并 deploy-monitor.sh 到 deploy-ai.sh 2026-07-08 17:09:15 +08:00
deploy-cc.sh docs: 新增 deploy-ai.sh README 与部署连通性检查(v2026.05.14) 2026-05-15 09:18:55 +08:00
docker-cache-cleanup.sh feat: 新增 Docker 缓存清理独立脚本 2026-07-08 16:58:58 +08:00
edit-site-cc.sh docs: 新增 deploy-ai.sh README 与部署连通性检查(v2026.05.14) 2026-05-15 09:18:55 +08:00
monitor-watchdog.sh security: monitor-watchdog.sh 移除硬编码 webhook key,改为从 env/.env/数据库读取 2026-07-02 11:27:20 +08:00
sites-manage-cloud.sh fix: 修复站点管理脚本状态检测问题 2026-07-02 18:36:55 +08:00
sites-manage-local.sh feat: 新增 Docker 缓存清理独立脚本 2026-07-08 16:58:58 +08:00
test-wechat-messages.mjs fix: backup/restore scripts — auto-discover sites + add monitor-ai coverage 2026-07-08 12:06:03 +08:00

README.md

Scripts — 部署与运维脚本

多站点 Docker 项目的运维脚本集合,涵盖本地开发管理、云服务器运维、云端部署、数据库备份恢复。

脚本清单

部署与管理

脚本 用途 目标环境
sites-manage-local.sh 本地站点启停npm run dev + Docker 本地
sites-manage-cloud.sh 云服务器站点启停SSH / 服务器本地运行) 云端
deploy-ai.sh 部署站点到 tlyq.aitxjp 服务器) 云端
deploy-cc.sh 部署站点到 tlyq.cctgz 服务器) 云端
edit-site-cc.sh www.tlyq.cc 官网内容管理 云端
check-compliance.sh D1-D8 合规检查LESSONS-LEARNED 自动化) 本地
docker-cache-cleanup.sh Docker 缓存清理(构建缓存、悬空镜像、测试镜像) 本地/云端

备份与恢复(backup/ 目录)

脚本 用途 说明
backup/backup.sh 统一备份 --db-only / --full
backup/restore.sh 统一恢复 --db / --full

详细文档见 backup/README.md


sites-manage-local.sh — 本地站点管理

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 6178Web UI、3890LDAP
oa npm run dev(宿主机) 6179
issue npm run dev(宿主机) 6176
assets npm run dev(宿主机) 6177
monitor npm run dev(宿主机) 6181
www / cloud / token Docker 61736175

sites-manage-cloud.sh — 云服务器站点管理

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。也可显式指定

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 scripts/deploy-ai.sh             # 自动检测:增量 or 完整构建
bash scripts/deploy-ai.sh --force     # 强制完整构建
bash scripts/deploy-ai.sh --restart   # 仅重启容器

交互式选择站点110www / cloud / token / issue / assets / oa / ldap / gitea / sso / monitor。

流程:源码打包 → 上传 → 服务器 npm installnpm run build → 容器重建。部署后自动验证。

LDAP 部署特殊处理:上传 Dockerfile + docker-compose.yml自动创建 .env去除端口映射--build 构建含 sqlite3 的镜像。

backup/ — 备份与恢复

# 站点完整备份(推荐)
bash scripts/backup/backup.sh                    # 备份所有
bash scripts/backup/backup.sh assets monitor     # 指定站点
bash scripts/backup/backup.sh --db-only           # 仅数据库
bash scripts/backup/backup.sh --full              # 灾难备份
bash scripts/backup/backup.sh --local              # 本地模式(在服务器上直接运行)

# 恢复
bash scripts/backup/restore.sh                    # 交互式
bash scripts/backup/restore.sh --db issue file.db # 数据库恢复
bash scripts/backup/restore.sh --full backup.tar  # 灾难恢复
bash scripts/backup/restore.sh --local --full ...  # 本地灾难恢复(新服务器)

备份内容:数据库 + 上传文件 + 配置文件 + nginx + SSL 证书

> 详细文档见 [backup/README.md](backup/README.md)

## docker-cache-cleanup.sh — Docker 缓存清理

自动检测运行环境:通过 `curl ip.sb` 获取当前公网 IP与生产环境服务器 IP 列表匹配。
- 在生产服务器上运行:直接执行 Docker 命令
- 在本地运行:通过 SSH 连接服务器执行

```bash
bash scripts/docker-cache-cleanup.sh              # 默认:保留 3 小时内的缓存
bash scripts/docker-cache-cleanup.sh --aggressive # 激进:保留 1 小时内
bash scripts/docker-cache-cleanup.sh --conservative # 保守:保留 6 小时内
bash scripts/docker-cache-cleanup.sh --full       # 完全:删除所有缓存

清理内容:

  • dangling 镜像:无标签或未被引用的中间层
  • 测试镜像:以 test- 开头的镜像
  • 构建缓存:根据模式保留不同时长
  • 磁盘紧张处理:使用率 > 85% 时自动深度清理

配置:在脚本开头的 PRODUCTION_SERVER_IPS 数组中添加/删除服务器 IP。

PRODUCTION_SERVER_IPS=(
    "43.133.38.210"    # txjp (腾讯云北京)
    # "159.75.83.209"  # tgz (腾讯云广州)
)

定时清理(可选):

# 每天凌晨 3 点执行保守清理
ssh txjp "crontab -l 2>/dev/null; echo '0 3 * * * /root/docker/scripts/docker-cache-cleanup.sh --conservative' | crontab -"

备份存储路径

位置 路径
云端持久备份 /root/docker/db-backups/
本地备份 db-backups/

依赖

  • 本地macOS / Linuxbashssh配置 txjptgz 别名scpdockersqlite3
  • 云端Docker ComposeNode.jsbetter-sqlite3