Repository navigation
Home
dxx114514-stack edited this page Oct 17, 2026
·
8 revisions
NoldOJ 是一个基于 Windows 原生沙箱(Job Object + 受限令牌 + 低完整性级别)的轻量级在线评测系统(Online Judge),前端全中文、支持 Markdown + KaTeX 公式与黑夜模式,后端零外部数据库依赖(Node 内置 node:sqlite)。
当前版本 v2.1.0 · 许可证 MIT · 主要支持平台 Windows 10+
-
原生三层安全沙箱:不依赖 Sandboxie,编译/运行通过
sandbox_runner.exe(Job Object 内存/CPU 限制 + 受限令牌 + Low IL)隔离;Windows 缺沙箱时默认 fail-closed 拒绝判题(显式NoldOJ_ALLOW_NO_SANDBOX=1才回退传统模式,不安全) - 完整判题体系:子任务分组、自定义计分脚本、特殊测试(SPJ)、重测、多文件提交、WebSocket 实时评测推送
- 比赛系统:邀请制、排行榜封榜/解冻、虚拟参赛、比赛一键查重
- 教学工具:题目/测试点管理、AI 测试数据生成、题单训练计划、试卷系统(选择/判断/填空/大题,支持 AI 评分与 Excel 导入)、代码查重、文章与公告
- AI 能力(可选,Ollama / OpenAI 兼容接口):代码安全审查、AI 提示(AI Hint)、主观题 AI 评分
- 安全基线:自绘 SVG 验证码(一次性)、JWT 双令牌、CSP/CORS、限流、提交锁、封禁全链路拦截、注册开关
git clone https://github.com/dxxjudges/NoldOJ.git
cd NoldOJ
start.bat首次启动会在启动日志中打印一次随机生成的 admin 初始密码(路径 log/<时间戳>/server.log,start.bat 启动时会显示日志目录;服务输出不显示在控制台窗口),登录后请立即修改。start.bat 每次启动还会自动 git pull --ff-only 拉取更新、依赖缺失时自动 npm install、重新编译沙箱运行器。详细步骤见 安装部署。
| 依赖 | 要求 |
|---|---|
| Node.js | >= 24.x(内置 node:sqlite) |
| MinGW64 | 任意版本(C/C++ 编译,必需) |
| Python 3 / JDK | 任意版本(可选) |
| 操作系统 | Windows 10 及以上 |
| Ollama | 任意版本(可选,AI 功能,建议 qwen3:1.7b) |
| 页面 | 内容 |
|---|---|
| 安装部署 | 环境要求、安装/更新/卸载、启动脚本 |
| 配置说明 |
config/ 外部配置与核心配置项 |
| 使用指南 | 四级角色权限、各角色功能、用户组与可见性、用户组成员 Excel 批量导入(仅超管,含自动注册)、Markdown 增强语法 |
| 判题与沙箱 | 判题流程、沙箱架构、子任务与计分脚本 |
| API 文档 |
/api/v1 模块总览、认证与错误格式、用户组与实体可见性端点、用户组成员批量导入端点
|
| 数据库 | SQLite 位置、自动迁移、组与可见性表结构与触发器、备份与 sql.js 迁移 |
| 测试与 CI |
npm test / test:server / GitHub Actions |
| 开发指南 | 项目结构、代码规范、贡献流程 |
| 常见问题 | 安装、判题、AI、Markdown 等 FAQ |
| 更新日志 | v1.1.0 → v2.1.0 版本历史 |
- 仓库:https://github.com/dxxjudges/NoldOJ
- API 在线文档(GitHub Pages):仓库
docs/api/目录(APIuse.md+openapi.yaml) - 完整说明文档:README
NoldOJ · Windows 在线评测系统 · MIT License