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-domserverto install the system.Install the MySQL database using e.g.
bin/dj_setup_database -u root -r install.For Apache: add
etc/apache.confto your Apache configuration and addetc/domjudge-fpm.confto 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/|phpversion|/fpm/pool.d/domjudge.conf sudo a2enmod proxy_fcgi setenvif rewrite sudo a2enconf php|phpversion|-fpm domjudge sudo service php|phpversion|-fpm reload sudo service apache2 reloadFor nginx: add
etc/nginx-confto your nginx configuration and addetc/domjudge-fpm.confto 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/|phpversion|/fpm/pool.d/domjudge.conf sudo service php|phpversion|-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-judgehostto 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/sudoersthe sudoers configuration as inetc/sudoers-domjudge.Set up cgroup support: enable kernel parameters in
/etc/default/gruband reboot, then runsystemctl enable create-cgroups --nowto create cgroups for DOMjudge.Put the right credentials in the file
etc/restapi.secret.Create the pre-built chroot tree:
sudo bin/dj_make_chrootStart the judge daemon: either manually with
bin/judgedaemon -n 2or as a service withsystemctl enable --now domjudge-judgedaemon@2.
Submit client
Install the provided
submitin your path and on the team machines.Add a
.netrcfile with valid team credentials.Run
submit --helpto 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.