ctf01d/ctf01d-training-platform

GitHub: ctf01d/ctf01d-training-platform

一个基于 Go 和 React 构建的 CTF 攻防训练平台,提供漏洞服务目录并自动生成赛事配置,帮助选手快速启动攻防对抗训练。

Stars: 3 | Forks: 0

CTF01D 训练平台 基于 Go + Gin + PostgreSQL 的训练平台,围绕 OpenAPI-first 契约构建,并配备 React+TypeScript SPA。 架构 - 后端:Go 1.26、Gin、pgx/v5、sqlc、goose 迁移 - 前端:React + TypeScript (Vite),类型根据 OpenAPI 规范生成 - 层级:handler -> service -> repository - 认证:JWT(与导入的 password_digest 值兼容 bcrypt) 开发 - 环境要求:Go 1.26、Node.js 22、PostgreSQL 16、yq v4 - 快速开始: 1. cp .env.sample .env 2. docker compose -f docker-compose.dev.yml up -d 3. make migrate-up 4. make go-run - 前端开发:make web-install && make web-dev - 文档:docs/GO_DEV.md 实用的 Make 目标 - go-build / go-run / go-test / go-vet / go-fmt - openapi(合并 + 代码生成 + TypeScript 类型) - sqlc-gen(根据 SQL 查询生成 Go 代码) - migrate-up / migrate-down / migrate-status - seed(使用测试数据填充数据库) - lint / lint-fix / verify-codegen - web-install / web-build / web-dev 生产环境 (Docker Compose) - 环境要求:Docker 24+、Docker Compose v2 - 设置: 1. cp .env.sample .env 并设置 POSTGRES_PASSWORD、JWT_SECRET、ACME_EMAIL 2. docker compose -f docker-compose.prod.yml pull 3. docker compose -f docker-compose.prod.yml up -d - 镜像由 CI 构建并推送到 GitHub Container Registry (ghcr.io/ctf01d/ctf01d-training-platform)。通过 .env 中的 APP_IMAGE 覆盖 tag。 - 服务: - db:附带健康检查的 PostgreSQL 16 - app:带有自动迁移的 Go 服务器(RUN_MIGRATIONS=true) - reverse-proxy:具备自动 HTTPS (Let's Encrypt) 的 Caddy,提供 SPA 服务并将 /api/* 代理到 app - Dockerfile 在独立的阶段分别构建 Go 后端和 React SPA - 当 RUN_MIGRATIONS=true 时,将在启动时自动运行迁移 - API 规范:api/openapi.yaml(使用任意 OpenAPI 查看器查看) Rails 运行时代码已被移除。保留了临时的 `cmd/import-rails` 工具,用于从旧的 Rails 数据库导入数据。
标签:CTF平台, Docker, EVTX分析, Go, PostgreSQL, React, Ruby工具, Syscalls, 安全训练, 安全防御评估, 日志审计, 测试用例, 请求拦截