Skip to content

Repository files navigation

taro-event-server

taro-server 已经整理为可 Docker 化部署,包含本地一键联调的 app + mysql,以及数据库备份/恢复脚本。

目录

  • Dockerfile: Node.js 服务镜像
  • Dockerfile.mysql: 本地联调用 MySQL 镜像,内置初始化 SQL
  • docker-compose.yml: 应用 + MySQL 一键启动
  • .env.example: 环境变量模板
  • sql/docker-init.sql: Docker 首次启动时自动初始化数据库
  • scripts/backup-db.sh: 导出当前 MySQL 数据
  • scripts/restore-db.sh: 导入 SQL 备份

首次启动

  1. 复制环境变量模板
cp .env.example .env
  1. 按实际情况修改 .env

至少要改这些值:

  • APPID
  • APPSECRET
  • JWT_SECRET
  • COS_SECRET_ID
  • COS_SECRET_KEY
  • DB_PASSWORD
  • MYSQL_ROOT_PASSWORD
  1. 构建并启动
docker compose up -d --build
  1. 查看状态
docker compose ps
docker compose logs -f app

如果你修改了 sql/docker-init.sql,注意它只会在 MySQL 数据卷首次创建时执行一次。需要重新初始化库时,用:

docker compose down -v
docker compose up -d --build

服务默认地址:

  • API: http://localhost:3300
  • 健康检查: http://localhost:3300/health
  • MySQL: localhost:3306

常用命令

停止服务:

docker compose down

停止并删除数据库卷:

docker compose down -v

重建应用镜像:

docker compose up -d --build app

CI/CD

项目内置了最小 CI/CD:

  • npm run check:syntax: 校验全部 .js 文件语法
  • npm run check:compose: 使用 .env.example 兜底校验 docker-compose.yml
  • npm run ci: 本地复用和 GitHub Actions 复用的总检查入口

GitHub Actions 包含两条工作流:

  • .github/workflows/ci.ymlpushmainpull_request 时执行依赖安装、语法检查、Compose 校验、Docker 镜像构建。
  • .github/workflows/docker-publish.ymlmain 分支推送后,自动将应用镜像发布到 ghcr.io/<owner>/<repo>
  • .github/workflows/deploy.ymlCI 成功且分支为 main 后,通过 SSH 连接 8.138.205.39,进入 eventa/eventa-sever 目录执行 git pulldocker compose up -d --build

部署工作流依赖以下 GitHub Secrets:

  • SERVER_USER: 云服务器 SSH 用户名
  • SERVER_SSH_KEY: 云服务器私钥内容
  • SERVER_PORT: SSH 端口,可选,默认 22

本地手动执行 CI 检查:

npm ci
npm run ci

数据迁移

导出数据库:

./scripts/backup-db.sh

也可以指定输出文件:

./scripts/backup-db.sh backups/prod.sql

导入数据库:

./scripts/restore-db.sh backups/prod.sql

迁移到新机器的最小步骤:

  1. 复制 taro-server/ 目录
  2. 复制 .env
  3. 复制你的 SQL 备份
  4. 执行 docker compose up -d
  5. 执行 ./scripts/restore-db.sh <备份文件>

非 Docker 本地运行

npm install
npm start

本地运行同样读取 .env

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages