// the find
QingdaoU/OnlineJudge
Open source online judge based on Vue, Django and Docker. | 青岛大学开源 Online Judge | QQ群 496710125 | admin@qduoj.com
A self-hosted online judge platform for running competitive programming contests, built on Django/DRF backend with a Vue frontend and a seccomp-sandboxed C judge process. Designed for universities running ACM-style or OI-style contests internally. One-click Docker deployment gets you a working instance with problem management, submission queue, rankings, and an admin panel.
The sandboxed judge (seccomp-based, separate repo) is a real strength — it's not just running code in a container but actually syscall-filtering at the kernel level. The split into four independent repos (backend, frontend, judger, judge server) means you can scale the judge horizontally without touching the web tier. Docker Compose deployment is genuinely simple and the nginx config is already wired for SSL. Both ACM (penalty-based) and OI (partial score) contest formats are supported with separate ranking logic.
The backend is frozen on Django 3.2 and Python 3.8, both end-of-life. Last meaningful commit was 2024 and it mostly looks like dependency bumps, not maintenance. Only C, C++, Java, and Python are supported — no Rust, Go, or TypeScript, which is a real gap if you're running modern contests. The frontend lives in a separate repo on Vue 2, which is also EOL. If you want to add a language or tweak the sandbox behavior, you're touching three separate repos with no monorepo tooling to tie them together.