How to Install DOMJudge on Fedora Server Latest

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.

Prerequisites

Step 1: Install Required Packages

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

Step 2: Download and Extract DOMjudge

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

Step 3: Install DOMjudge Dependencies

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

Step 4: Configure and Install DOMjudge

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

Step 5: Create the DOMjudge Database

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.

Step 6: Initialize the DOMjudge Database

Run the following command to initialize the DOMjudge database:

sudo /opt/domjudge/domserver/bin/dj-setup-database

Step 7: Configure the Web Server

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.

Step 8: Start the Web Server

Start the Apache web server by running the following command:

sudo systemctl start httpd
sudo systemctl enable httpd

Step 9: Start the DOMjudge Server

We need to start the DOMjudge server by running the following command:

sudo systemctl enable domjudge-run-controller
sudo systemctl start domjudge-run-controller

Step 10: Accessing the Web Interface

You can now access the DOMjudge web interface by navigating to http://<server-ip-add>:80/domjudge in your web browser.

Conclusion

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!