Skip to content

Install Mideye on RHEL, Rocky Linux & AlmaLinux 8/9/10 (RPM)

This guide covers installing Mideye Server on RHEL-based Linux with MariaDB, MySQL or Microsoft SQL Server.

Supported versions: RHEL, Rocky Linux and AlmaLinux 8, 9 and 10

What you’ll need:

  • Root or sudo access to the server
  • A supported database (MariaDB, MySQL, or SQL Server)
  • Network access to the Downloads page
  • Firewall port assigned by Mideye Support

  1. Install the Mideye Server package
  2. Install MariaDB or MySQL
  3. Create the database and user
  4. Connect Mideye Server to the database
  5. Start the service
  6. Complete the Configuration Wizard

Time required: 15–30 minutes


  1. Update the system packages:

    Terminal window
    sudo dnf update -y
  2. Download the package from Mideye Server Downloads

  3. Copy it to your server:

    Terminal window
    scp ~/Downloads/MideyeServer6-x.x.x.el.rpm username@your-server:/tmp/
  4. Install the package:

    Terminal window
    sudo dnf install /tmp/MideyeServer6-x.x.x.el.rpm

Install the database from your operating system’s own packages. It gets security updates together with the rest of the system.

OSMariaDBMySQL
RHEL, Rocky Linux, AlmaLinux 810.118.4 from Oracle’s repository
RHEL, Rocky Linux, AlmaLinux 910.118.4
RHEL, Rocky Linux, AlmaLinux 1011.88.4
  1. Install MariaDB.

    Version 10:

    Terminal window
    sudo dnf install mariadb11.8-server

    Version 8 and 9 (the default MariaDB in these versions is too old; select 10.11 first):

    Terminal window
    sudo dnf module enable mariadb:10.11
    sudo dnf install mariadb-server
  2. Start MariaDB and verify that it’s running:

    Terminal window
    sudo systemctl enable --now mariadb
    sudo systemctl status mariadb

MariaDB and MySQL on RHEL accept connections on all network interfaces. Mideye Server connects through localhost, so the database only needs to accept connections from the server itself.

This step is optional but recommended. With firewalld running (the default on RHEL), other machines can’t reach the database ports unless you open them. Limiting the database to the server itself also protects it if the firewall is turned off or changed later. Skip this step if other servers need to connect to the database, for example several Mideye Servers sharing one database.

Terminal window
sudo tee /etc/my.cnf.d/zz-bind-localhost.cnf > /dev/null <<'EOF'
[mysqld]
# Mideye Server: accept database connections from this server only
bind-address = 127.0.0.1
EOF
sudo systemctl restart mariadb

Check that port 3306 now only shows 127.0.0.1:

Terminal window
sudo ss -tlnp | grep -E ':3306|:33060'

Open the database prompt as root:

Terminal window
sudo mariadb

Create the database and a user for Mideye Server. You can change the database name, the username and the password in the example; use the same values in Step 4 (database names are case-sensitive on Linux).

CREATE DATABASE MideyeServer
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
CREATE USER 'mideye'@'localhost' IDENTIFIED BY 'your-secure-password';
GRANT ALL PRIVILEGES ON MideyeServer.* TO 'mideye'@'localhost';
FLUSH PRIVILEGES;
EXIT

Step 4: Connect Mideye Server to the database

Section titled “Step 4: Connect Mideye Server to the database”

Edit the configuration file:

Terminal window
sudo nano /opt/mideyeserver6/config/application-prod.yml

The file already has a datasource block. Set the database name in url, username and password to the values from Step 3:

datasource:
url: jdbc:mariadb://localhost:3306/MideyeServer
username: mideye
password: 'your-secure-password'

Use jdbc:mariadb:// for MySQL as well. Mideye Server includes the MariaDB driver, which works with both databases; jdbc:mysql:// doesn’t work.

  • MySQL has TLS turned on. Keep ?sslMode=TRUST: without TLS, MySQL’s default login method fails and Mideye Server doesn’t start.
  • MariaDB 11.8 (version 10) has TLS turned on. You can add ?sslMode=TRUST to the URL.
  • MariaDB 10.11 (version 8 and 9) has TLS turned off. With ?sslMode=TRUST, Mideye Server doesn’t start (Trying to connect with ssl, but ssl not enabled in the server). To use TLS, first turn it on in MariaDB as described in Enabling TLS for MariaDB Server, then add ?sslMode=TRUST.

Terminal window
sudo systemctl enable mideyeserver6
sudo systemctl start mideyeserver6

Verify it’s running:

Terminal window
sudo systemctl status mideyeserver6

Mideye Server needs two ports:

PortProtocolPurpose
8443TCPWeb interface
1812UDPRADIUS authentication
Terminal window
sudo firewall-cmd --permanent --add-port=8443/tcp
sudo firewall-cmd --permanent --add-port=1812/udp
sudo firewall-cmd --reload

  1. Get the setup challenge code from the logs:

    Terminal window
    sudo grep CHALLENGE /opt/mideyeserver6/log/mideyeserver.log

    Mideye Server creates a new setup challenge every time it starts, until the configuration is complete. If the command shows more than one, use the one with the latest timestamp.

  2. Open the web interface in your browser:

    https://<server-ip>:8443
  3. Complete the Configuration Wizard using the setup challenge code.


After completing the setup wizard, verify that Mideye Server is fully operational:

Terminal window
# Check service status
sudo systemctl status mideyeserver6
# Verify web interface is listening
sudo ss -tlnp | grep 8443
# Verify RADIUS is listening (after wizard completion)
sudo ss -ulnp | grep 1812
# Check logs for errors
sudo tail -50 /opt/mideyeserver6/log/mideyeserver.log

RHEL, Rocky Linux and AlmaLinux 8 only include MySQL 8.0, which has reached end of life. Install MySQL 8.4 from Oracle’s repository: follow A Quick Guide to Using the MySQL Yum Repository and select the MySQL 8.4 LTS series. Then:

  • Turn off the operating system’s MySQL module, so that dnf uses Oracle’s packages:

    Terminal window
    sudo dnf module disable mysql
    sudo dnf install mysql-community-server
    sudo systemctl enable --now mysqld
  • Oracle’s MySQL creates a temporary root password. Find it, and use it when mysql_secure_installation asks for the current password:

    Terminal window
    sudo grep 'temporary password' /var/log/mysqld.log
    sudo mysql_secure_installation
  • Oracle’s MySQL turns on the VALIDATE PASSWORD component by default, so the password for Mideye Server in Step 3 must have upper and lower case letters, a digit and a special character, and at least 8 characters.

Then continue with Accept connections from the server only.


The Mideye Server package installs without internet access. The database needs its packages and their dependencies. Download them on a connected machine with the same OS release and architecture that doesn’t have the database installed. On version 8 and 9, first select the version with dnf module enable as in Step 2.

Terminal window
sudo dnf install --downloadonly --downloaddir=db-pkgs mariadb11.8-server # or the package name from Step 2

Copy the db-pkgs folder and the Mideye Server package to the server, then install them from the local files only:

Terminal window
sudo dnf install --disablerepo='*' ./db-pkgs/*.rpm
sudo dnf install --disablerepo='*' ./MideyeServer6-x.x.x.el.rpm

--disablerepo='*' makes dnf ignore its online repositories for this command. Without it, dnf may try to reach them and wait until it times out.

Continue with Step 2 from systemctl enable --now.


See Upgrades. After an upgrade you may find application-prod.yml.rpmnew next to application-prod.yml. That’s the new package’s default file; your own configuration is kept and still used. You can compare the two or delete the .rpmnew file.


To remove Mideye Server:

Terminal window
sudo dnf remove mideyeserver6

FilePath
Installation directory/opt/mideyeserver6/
Configuration/opt/mideyeserver6/config/application-prod.yml
Certificates/Keystore/opt/mideyeserver6/config/keystore.p12
Logs/opt/mideyeserver6/log/mideyeserver.log
Systemd service/usr/lib/systemd/system/mideyeserver6.service

Check the logs first:

Terminal window
sudo journalctl -u mideyeserver6 -n 50
sudo tail -100 /opt/mideyeserver6/log/mideyeserver.error

Common issues:

ErrorCauseSolution
Login failed for userInvalid database credentialsVerify username/password in application-prod.yml
Access denied for user 'mideye'@'localhost'Invalid database credentialsVerify that the database name, username and password in application-prod.yml match Step 3
Trying to connect with ssl, but ssl not enabled in the server?sslMode=TRUST with MariaDB 10.11Remove ?sslMode=TRUST, see TLS to the database
RSA public key is not available client sideMySQL without ?sslMode=TRUSTAdd ?sslMode=TRUST to the URL
Failed to load driver class com.mysql.cj.jdbc.DriverURL starts with jdbc:mysql://Use jdbc:mariadb://
BadPaddingExceptionWrong keystore passwordCheck certificate passphrase in configuration
Address already in usePort 8443 is occupiedStop conflicting service or change port

Database accepts connections from other machines

Section titled “Database accepts connections from other machines”

If sudo ss -tlnp | grep -E ':3306|:33060' shows 0.0.0.0, * or [::] after Accept connections from the server only, open the database prompt as in Step 3 and check which address the database uses, whichever file the setting is in:

SHOW VARIABLES LIKE '%bind_address';

On version 8 with MySQL from Oracle’s repository, the settings must be in /etc/my.cnf, not in /etc/my.cnf.d/.

The server may not have started correctly. Check for errors:

Terminal window
sudo cat /opt/mideyeserver6/log/mideyeserver.error

RADIUS only starts after completing the setup wizard. Verify with:

Terminal window
sudo ss -ulnp | grep 1812

If the port isn’t listening, check that the wizard was completed successfully.

  1. Verify the service is running: sudo systemctl status mideyeserver6
  2. Check firewall: sudo firewall-cmd --list-all
  3. Test local access: curl -k https://localhost:8443