DOMJudge is an open source online judge system that is used for programming competitions or contests. This tutorial will guide you through the steps to install DOMJudge on a Fedora Server Latest version.
First, we need to ensure that our server has all the required packages installed. Open a terminal and run the following command to install the required packages:
sudo dnf install -y httpd php php-fpm php-mysqlnd mysql-server libicu-devel libicu gettext wget unzip
We can download the DOMjudge package directly from their website. Open a terminal and run the following command to download and extract the latest version of DOMjudge:
wget https://www.domjudge.org/releases/domjudge-7.3.3.tar.gz
tar xzf domjudge-7.3.3.tar.gz
cd domjudge-7.3.3
DOMjudge depends on several libraries and databases that must be installed on the server. We can install it by running the following command:
sudo yum install mariadb mariadb-server mariadb-libs
sudo yum install httpd httpd-devel apr apr-devel apr-util apr-util-devel
sudo dnf install -y libedit-devel libxml2-devel
sudo dnf install -y gettext dejagnu
sudo dnf install -y gcc-c++ zlib-devel bzip2-devel
sudo dnf install -y libcurl-devel
We need to configure various files before we can install DOMjudge. Copy the sample configurator.sh
file and modify according to your server settings by running the following command:
cp etc/domjudge/configurator.sh.sample etc/domjudge/configurator.sh
vim etc/domjudge/configurator.sh
After updating the configurator.sh
file, run the following command to install DOMjudge:
sudo make install-docs install-domserver install-judgehost install-webapp
sudo make install-config-amphp
Before we can use DOMjudge, we need to create a database and user. Run the following command to log in to the MariaDB server:
sudo mysql -u root -p
Create a new database and user by running the following commands:
MariaDB [(none)]> CREATE DATABASE domjudge CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
MariaDB [(none)]> CREATE USER 'domjudge'@'localhost' IDENTIFIED BY '<password>';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON domjudge.* TO 'domjudge'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit
Note: Replace <password>
with a strong password of your choice.
Run the following command to initialize the DOMjudge database:
sudo /opt/domjudge/domserver/bin/dj-setup-database
We need to configure the web server to point to the DOMjudge web interface. Run the following command to create a new configuration file:
sudo vim /etc/httpd/conf.d/domjudge.conf
Add the following lines to the file:
Alias /domjudge /opt/domjudge/domserver/webapp
<Directory /opt/domjudge/domserver/webapp>
Options FollowSymLinks
Require all granted
DirectoryIndex index.html index.php
</Directory>
Save and exit the file.
Start the Apache web server by running the following command:
sudo systemctl start httpd
sudo systemctl enable httpd
We need to start the DOMjudge server by running the following command:
sudo systemctl enable domjudge-run-controller
sudo systemctl start domjudge-run-controller
You can now access the DOMjudge web interface by navigating to http://<server-ip-add>:80/domjudge
in your web browser.
In this tutorial, we have successfully installed DOMjudge on a Fedora Server Latest version. Remember to configure your DOMjudge according to your requirements and setup the necessary contest details.
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!