logo
icon

LOJ

LOJ - LeLe Online Judge,现代化在线评测平台

template cover
部署次数0
发布者aiwandiannaodelele
创建于2026-06-21
标签
WebDatabase

LOJ — LeLe Online Judge

LOJ (LeLe Online Judge) 是一个现代化的在线评测平台,使用 Next.js 16 构建。支持编程题目练习、比赛、训练题单、AI 智能助教以及多引擎代码执行评测。

特性

  • 题目系统 — 创建和管理编程题目,支持多测试用例、自测样例、BlockNote 富文本编辑
  • 比赛系统 — 支持 ACM / OI 赛制,实时排名,独立题目副本
  • 训练题单 — 按主题组织题目,循序渐进的学习路径
  • AI 智能助教 — 集成 AI 对话,题目上下文感知的编程辅导
  • 多引擎判题 — 可插拔评测引擎:OneCompiler(默认)、Judge0、Runoob
  • 代码编辑器 — Monaco Editor(VS Code 内核)支持多语言语法高亮
  • 用户系统 — NextAuth 认证,JWT Session,角色权限管理
  • 管理后台 — 用户、题目、比赛、训练、设置、存储全管理
  • 多存储支持 — 本地文件系统 / S3 兼容对象存储
  • 安全加固 — 内置速率限制、权限校验、IP 伪造防护、SSRF 防护

服务

此模板部署两个服务:

  1. postgresql — PostgreSQL 18 数据库用于持久化存储
  2. loj-web — LOJ 应用服务器,Docker 镜像来自 ghcr.io/aiwandiannaodelele/loj

技术栈

技术用途
Next.js 16React 框架(App Router)
Tailwind CSS v4样式
shadcn/uiUI 组件库
Prisma 7ORM / 数据库
PostgreSQL 18数据库
NextAuth v5认证(凭证 + JWT)
Monaco Editor代码编辑器
BlockNote富文本编辑器
OneCompiler / Judge0评测引擎

环境变量

以下变量已为你预配置:

  • DB_PROVIDER — 设置为 postgresql
  • DATABASE_URL — 通过 ${POSTGRES_CONNECTION_STRING} 自动链接 PostgreSQL 服务
  • NEXTAUTH_SECRET — JWT 签名密钥(自动生成)

开始使用

部署完成后,访问你的服务 URL。首次运行会自动初始化数据库结构。

如需设置 OAuth 登录(GitHub/Google),在服务设置中添加以下变量:

  • AUTH_GITHUB_ID
  • AUTH_GITHUB_SECRET
  • AUTH_GOOGLE_ID
  • AUTH_GOOGLE_SECRET

源代码

更新

本模板使用 ghcr.io 的 latest 镜像标签。如需更新,通过 GitHub Actions 重新构建 Docker 镜像,然后在 Zeabur Dashboard 中触发热部署。