CTF01D Training Platform
Прототип на Rails для демонстрации основных сущностей и потоков.
Документация
- CONCEPT`: концепция платформы и ключевые идеи.
- ROADMAP`: план работ и ближайшие шаги.
- JURY_AND_SERVICE`: модель «жюри/сервис», роли и взаимодействия.
Подробности и прочие материалы смотрите в директории docs/.
Производственный запуск (Docker Compose)
- Требуется: Docker 24+, Docker Compose v2.
- Подготовка:
- Скопируйте
.env.sampleв.envи задайте значения:POSTGRES_PASSWORD— пароль БДRAILS_MASTER_KEY— ключ изconfig/master.keyACME_EMAIL— e‑mail для регистрации сертификата Let's Encrypt
- Скопируйте
- Запуск/обновление:
- Первый запуск:
docker compose up -d --build - Обновление образа:
docker compose pull && docker compose up -d --build
- Первый запуск:
- Миграции:
- При старте веб-приложения запускается
rails db:prepare(создание/миграция БД). - Для ручного прогона миграций:
docker compose run --rm app ./bin/rails db:migrate.
- При старте веб-приложения запускается
Сервисы в Compose
db— PostgreSQL (создаются БД:web_rails_production,web_rails_production_cache,web_rails_production_queue).app— Rails-приложение изDockerfile(экспонирует порт80внутри сети Compose).reverse-proxy— Caddy с автоматическим HTTPS (Let's Encrypt), слушает80/443и проксирует наapp:80.
HTTPS (Let's Encrypt)
- Настройте DNS:
A(и при необходимостиAAAA) запись доменаctf01d-training-platform.ruна IP вашего VDS. - Укажите e‑mail для ACME в
.envчерезACME_EMAIL. - При запуске
reverse-proxyвыпустит и продлит сертификаты автоматически. Логи можно смотреть:docker compose logs -f reverse-proxy.