This repository contains a Docker Compose setup for running a DOMjudge environment, including:
- MariaDB: Database server for storing DOMjudge data.
- DOMserver: The main server for managing contests and participants.
- Judgehost: Worker nodes that evaluate submitted solutions.
- Docker and Docker Compose installed on your system.
- Control Groups (cgroups) enabled on your host system to allow the judgehost to manage resource constraints.
- Adequate permissions to run Docker containers.
git clone <repository-url>
cd <repository-directory>Replace the placeholder TO_BE_REPLACED_AFTER_DOMSERVER_INIT in the judgehost-0 section of the docker-compose.yml file with the actual password after initializing the DOMserver.
You can retrieve it from the DOMServer container from the logs
Alternatively, the password can be found in the file /opt/domjudge/domserver/etc/restapi.secret within the DOMServer container.
Run the following command to start all services:
docker compose up -d-
DOMserver : Open your browser and navigate to
http://localhost:12345. -
MariaDB : Connect via
localhost:13306.
To stop the services, run:
docker compose down-
Database Configuration : Update the MariaDB settings (e.g., user, password, and database) in the
environmentsection of themariadbservice. -
Judgehost Scaling : Add additional judgehost containers by copying the
judgehost-0section and incrementing theDAEMON_IDvalue.
-
Ensure the
DJ_DB_INSTALL_BAREis set to1for the first run to initialize the database. -
The
volumesconfiguration for MariaDB (/var/lib/mysql) should point to a persistent directory on the host for data storage.
- Check logs for a specific service:
docker logs <container_name>- Verify container status:
docker psFeel free to contribute or report issues!