Skip to content

Repository files navigation

若狐 OJ(RuohuOJ)

敏捷如狐 · ACM 竞赛 + 题库训练平台

技术栈

  • 前端:React 19 + TypeScript + Vite + TailwindCSS v4 + Zustand + SWR + Axios + Monaco Editor + ReactRouter
  • 后端:SpringCloud + Nacos + Spring Security(骨架)
  • 评测:Go 沙箱(cgroups + seccomp)
  • 基础设施:PostgreSQL + Redis + RocketMQ + Docker Compose

项目结构

ruohu-oj/
├── apps/
│   ├── backend/             # SpringCloud 多模块工程(Gradle)
│   │   ├── Dockerfile        # 统一构建 5 个 jar 为 ruohu-backend:latest
│   │   ├── ruohu-gateway/    # 网关模块
│   │   ├── ruohu-auth/       # 鉴权 / 用户 / 班级
│   │   ├── ruohu-question/   # 题库 / 标签 / 题解
│   │   ├── ruohu-contest/    # 比赛 / 提交 / 聊天 / 通知
│   │   └── ruohu-judge/      # 内部评测
│   └── frontend/            # 前端主站 + Admin
├── packages/
│   └── shared/              # 共享类型与常量
├── infra/                   # 基础设施即代码(Docker Compose 编排)
│   ├── docker-compose.yml   # 服务编排入口
│   ├── .env                 # 镜像版本 / 数据库凭据 / Nacos 令牌
│   ├── nacos/               # Nacos 共享配置与初始化脚本
│   ├── rocketmq/            # RocketMQ Broker 配置
│   ├── nginx/               # OpenResty 反向代理配置
│   └── db/init.sql          # PostgreSQL 初始化脚本(扩展)
├── openresty/              # (历史)nginx.conf 已迁至 infra/nginx
└── pnpm-workspace.yaml

基础设施(Docker Compose)

所有基础设施与后端服务由 infra/docker-compose.yml 编排,配置集中在 infra/.env

# 启动全部服务(含后端镜像构建)
docker compose -f infra/docker-compose.yml up --build

# 仅启动基础设施(Nacos / PostgreSQL / Redis / RocketMQ / 配置初始化)
docker compose -f infra/docker-compose.yml up -d \
  nacos nacos-config-init postgres redis rocketmq-namesrv rocketmq-broker

# 停止并清理
docker compose -f infra/docker-compose.yml down

说明:后端镜像 ruohu-backend:latestapps/backend/Dockerfile 构建 (Gradle bootJar 编译 5 个模块),首次构建需下载 Gradle 与依赖,耗时较长。 Nacos 3.x 需要 infra/.env 中的 NACOS_AUTH_TOKEN 等鉴权变量; PostgreSQL 18 数据卷挂载于 /var/lib/postgresql

服务端口

服务 端口 说明
Nacos 控制台 8848 注册 / 配置中心
PostgreSQL 5432 关系数据库 ruohuoj
Redis 6379 缓存 / 限流 / 会话
RocketMQ NameServer 9876 消息路由
RocketMQ Broker 10909 / 10911 消息存储
OpenResty 80 反向代理(/api → 网关)
ruohu-gateway 9000 API 网关
ruohu-auth / question / contest / judge 9001–9004 后端微服务

开发(前端)

pnpm install
pnpm dev

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages