HUBU密码学院查课系统 - 后端
  • Go 98.7%
  • Shell 1%
  • Dockerfile 0.3%
查找文件
仓库文件(优先显示最新提交)
文件名 最新提交消息 最新提交日期
YY404NF 57bfb6ec0b
所有检测均成功
Deploy WACK backend / deploy (push) Successful in 10s
Download Go modules from local mirror with checksum verification
2026-09-19 16:56:24 +08:00
.forgejo/workflows Use host build network to reach existing download proxy 2026-09-19 16:54:00 +08:00
internal Deploy isolated Docker environments with persistent SQLite and verified rollback 2026-09-19 16:51:14 +08:00
ops/env Deploy isolated Docker environments with persistent SQLite and verified rollback 2026-09-19 16:51:14 +08:00
scripts Deploy isolated Docker environments with persistent SQLite and verified rollback 2026-09-19 16:51:14 +08:00
.dockerignore Deploy isolated Docker environments with persistent SQLite and verified rollback 2026-09-19 16:51:14 +08:00
.gitignore Ignore macOS Finder metadata files 2026-03-23 11:41:41 +08:00
Dockerfile Download Go modules from local mirror with checksum verification 2026-09-19 16:56:24 +08:00
go.mod feat: continue backend migration and cleanup 2026-03-19 15:57:35 +08:00
go.sum feat: continue backend migration and cleanup 2026-03-19 15:57:35 +08:00
main.go Initial commit 2026-03-15 16:38:52 +08:00
README.md Deploy isolated Docker environments with persistent SQLite and verified rollback 2026-09-19 16:51:14 +08:00

wack-backend

Forgejo Actions 部署

.forgejo/workflows/deploy.yml 在 main 或 dev 分支 push 后运行测试、构建后端镜像,并在 GMK 的 Docker 中更新对应环境。SQLite 数据持久化在名为 wack-backend-main-data 或 wack-backend-dev-data 的 Docker volume,容器内路径固定为 /data/wack.db;Redis 也按环境隔离。

仓库 secrets 使用 WACK_MAIN_JWT_SECRET 和 WACK_DEV_JWT_SECRET,分别注入对应容器的 WACK_JWT_SECRET。工作流不再通过 SSH 上传二进制,也不再使用旧服务器的 systemd 部署参数。

构建阶段执行 go test ./...;部署脚本仅允许 main/dev,先检查密钥、镜像和数据卷,再停止旧容器、使用 SQLite 在线备份命令保存快照,启动新容器并等待 HTTP 健康检查。失败时恢复旧容器;数据库备份保留在卷内 /data/backups/,涉及不兼容 schema 的版本应人工维护停机恢复,不自动覆盖数据库。

本地运行时指定可写路径,例如 WACK_DB_PATH=./data/wack.db WACK_REDIS_ADDR=127.0.0.1:6379 go run .。容器默认路径为 /data/wack.db,生产与开发的 SQLite、Redis、JWT 密钥均隔离。

runner 使用 GMK 上预置的 wack-ci:20260919(Node、Git、Docker 29 CLI)。它能访问宿主机 Docker socket,相当于宿主机管理权限:只允许可信维护者推送 main/dev,不运行不可信 PR 工作流。