Self-hosted competitive programming platform.
Run your own contest platform in minutes. Pomelo handles submission routing, sandboxed evaluation via Judge0, live scoreboards, and multi-language support with no vendor lock-in and full source access.
- Docker Compose: one command to start everything
- C, C++, Python, Java, Go & 20+ languages via Judge0
- Isolated sandboxes: untrusted code never touches your host
- GPL-3.0: inspect, fork, and self-host forever
curl -fsSL pomelo.sosc.org.in/install.sh | sudo bash What Pomelo actually does.
No magic, no vendor lock-in. A well-defined stack you can inspect and run yourself.
Judge0 sandboxed evaluation
Every submission runs inside an isolated container via Judge0. CPU time, memory, and output are hard-capped. Untrusted code never touches your host OS.
20+ programming languages
C, C++17, Python 3, Java, Go, Rust, Node.js and more, all via Judge0's language runtime ecosystem. No extra configuration needed.
Live scoreboard
Scores update in real time as verdicts come in. Contestants see their rank the moment a submission finishes without refreshing.
Custom CLI for management
The pomelo CLI handles starting the stack, checking service health, viewing logs, and updating to new releases. No Docker knowledge required.
Full data ownership
Your contest data stays on your server. No SaaS middleman, no usage caps, no account required. Export or migrate freely at any time.
GPL-3.0: fully open
Every line of code is auditable on GitHub under so-sc/pomelo. Fork it, patch it, run your own version. No feature paywalls.
Up and running in under five minutes.
Two commands. Requires Linux. No account or API key needed to get started.
- 01
Run the installer
Requires a Linux host. The script installs Docker if missing, pulls all images, and writes a default .env.
curl -fsSL pomelo.sosc.org.in/install.sh | sudo bash - 02
Start Pomelo
The CLI brings up all services, including the API server, judge worker, and frontend. Open Web UI when healthy.
pomelo start