Evalyo

Evalyo

A modern, maintainable fork of DMOJ — built for scale.

Modern judge platform, built to last.

Evalyo rethinks DMOJ for today's infra: Django 5.2 LTS, native ASGI, clear separation of services, and developer ergonomics that don't make you cry.

Django 5.2 LTS Native ASGI Docker-friendly Scalable by design

Why Evalyo?

  • Maintenance-first: clear code paths, fewer implicit couplings.
  • ASGI native: websockets & async views first-class.
  • Django 5.2 LTS: stability for production-grade deployments.
  • Modular judge: separate worker + API boundaries for scale.

Core features

Django 5.2 LTS

Long-term support and modern Django features.

ASGI-first

Native async, WebSocket scoreboard, and high concurrency.

Separation of Concerns

Judge workers, API, and web UI are decoupled for reliability.

Dev DX

Batteries-included dev stack: docker-compose, tests, migrations.

Observability

Prometheus metrics, structured logs, health endpoints.

Extensible

Plugin-friendly problem types & custom judge runners.

Quick start

Clone, env, and bring up using Docker — zero mystery.

git clone https://github.com/Evalyo/evalyo.git
cd evalyo
# copy .env.example -> .env and edit
docker compose up --build -d
# visit http://localhost:8000

Prefer manual? The repo supports running with plain Python + ASGI servers (uvicorn/daphne).

Get involved