chore(workspace): bootstrap platform, judge and frontend

This commit is contained in:
2026-10-04 15:46:49 +08:00
parent ad35f52960
commit b5b286c44f
114 changed files with 5926 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
# Development-only values; copy to deploy/.env before make infra-up.
POSTGRES_USER=kf_oj
POSTGRES_PASSWORD=local-dev-only
POSTGRES_DB=kf_oj
POSTGRES_PORT=5432
RABBITMQ_USER=kf_oj
RABBITMQ_PASSWORD=local-dev-only
RABBITMQ_VHOST=kf_oj
RABBITMQ_PORT=5672
RABBITMQ_MANAGEMENT_PORT=15672
+21
View File
@@ -0,0 +1,21 @@
# 本地开发依赖
`compose.dev.yml` 只提供 PostgreSQL 和 RabbitMQ,端口绑定 localhost。
先复制 `.env.example` 为 `.env`,然后在仓库根目录运行:
```bash
make infra-config
make infra-up
make infra-down
```
`infra-down` 保留数据卷;不要把示例口令用于正式部署。
API 存活检查和前端预览不依赖这些容器,可以先独立启动。
该 Compose 不运行判题 Worker 或不可信代码。
镜像固定具体维护版本(PostgreSQL 18.6、RabbitMQ 4.3.6),正式实验前另锁镜像摘要。
配置检查只验证 Compose 结构;成功启动、实际健康与备份恢复需要单独验证。
后续受控主机服务和最小权限沙箱启动器配置放在本目录。
官方镜像说明:[PostgreSQL](https://hub.docker.com/_/postgres)、
[RabbitMQ](https://hub.docker.com/_/rabbitmq)。
+40
View File
@@ -0,0 +1,40 @@
name: kf-oj-dev
services:
postgres:
image: postgres:18.6-bookworm
environment:
POSTGRES_USER: ${POSTGRES_USER:?required}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?required}
POSTGRES_DB: ${POSTGRES_DB:?required}
ports:
- "127.0.0.1:${POSTGRES_PORT:-5432}:5432"
volumes:
- postgres-data:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
interval: 5s
timeout: 3s
retries: 20
mem_limit: 1g
cpus: 1
rabbitmq:
image: rabbitmq:4.3.6-management
environment:
RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER:?required}
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD:?required}
RABBITMQ_DEFAULT_VHOST: ${RABBITMQ_VHOST:?required}
ports:
- "127.0.0.1:${RABBITMQ_PORT:-5672}:5672"
- "127.0.0.1:${RABBITMQ_MANAGEMENT_PORT:-15672}:15672"
volumes:
- rabbitmq-data:/var/lib/rabbitmq
healthcheck:
test: ["CMD", "rabbitmq-diagnostics", "-q", "ping"]
interval: 5s
timeout: 5s
retries: 20
mem_limit: 768m
cpus: 1
volumes:
postgres-data:
rabbitmq-data: