Appendix: Quick installation checklist
Note
This is not a replacement for the thorough installation instructions, but more a cheat-sheet for those who’ve already installed DOMjudge before and need a few hints. When in doubt, always consult the full installation instruction.
DOMserver
Install the MySQL- or MariaDB-server and set a root password for it.
Install either nginx or Apache and PHP.
Make sure PHP works for the web server and command line scripts.
Extract the source tarball and run
./configure --with-baseurl=<url> && make domserver
.Run
sudo make install-domserver
to install the system.Install the MySQL database using e.g.
bin/dj_setup_database -u root -r install
.For Apache: add
etc/apache.conf
to your Apache configuration and addetc/domjudge-fpm.conf
to your PHP FPM pool directory, edit it to your needs, reload web serversudo ln -s <DOMSERVER_INSTALL_PATH>/etc/apache.conf /etc/apache2/conf-available/domjudge.conf sudo ln -s <DOMSERVER_INSTALL_PATH>/etc/domjudge-fpm.conf /etc/php/8.2/fpm/pool.d/domjudge.conf sudo a2enmod proxy_fcgi setenvif rewrite sudo a2enconf php8.2-fpm domjudge sudo service php8.2-fpm reload sudo service apache2 reloadFor nginx: add
etc/nginx-conf
to your nginx configuration and addetc/domjudge-fpm.conf
to your PHP FPM pool directory, edit it to your needs, reload web serversudo ln -s <DOMSERVER_INSTALL_PATH>/etc/nginx-conf /etc/nginx/sites-enabled/domjudge sudo ln -s <DOMSERVER_INSTALL_PATH>/etc/domjudge-fpm.conf /etc/php/8.2/fpm/pool.d/domjudge.conf sudo service php8.2-fpm reload sudo service nginx reloadCheck that the web interface works (/team, /public and /jury).
Check that the API (/api) works and create credentials for the judgehosts.
Create teams, user accounts and add useful contest data.
Run the config checker in the jury web interface.
Judgehosts
Extract the source tarball and run
./configure --with-baseurl=<url> && make judgehost
.Run
sudo make install-judgehost
to install the system.Create one or more unprivileged users:
sudo useradd -d /nonexistent -U -M -s /bin/false domjudge-run-2
.Add to
/etc/sudoers.d/
or append to/etc/sudoers
the sudoers configuration as inetc/sudoers-domjudge
.Set up cgroup support: enable kernel parameters in
/etc/default/grub
and reboot, then runsystemctl enable create-cgroups --now
to create cgroups for DOMjudge.Put the right credentials in the file
etc/restapi.secret
.Create the pre-built chroot tree:
sudo bin/dj_make_chroot
Start the judge daemon: either manually with
bin/judgedaemon -n 2
or as a service withsystemctl enable --now domjudge-judgedaemon@2
.
Submit client
Install the provided
submit
in your path and on the team machines.Add a
.netrc
file with valid team credentials.Run
submit --help
to see if it can connect successfully.
Checking if it works
It should be done by now. As a check that (almost) everything works, the set of test sources can be submitted on the DOMserver, on a system that has a working submit client installed:
cd tests
make check
Then, in the main jury web interface, select the admin link judging verifier to automatically verify most of the test sources. Read the test sources for a description of what should (not) happen.