Skip to content

Install Mideye on Debian 12/13 & Ubuntu 22.04/24.04/26.04

This guide covers installing Mideye Server on Debian or Ubuntu Linux with MariaDB or MySQL.

Supported versions: Debian 12, 13 · Ubuntu Server 22.04, 24.04, 26.04


  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. Download the package from Mideye Server Downloads

  2. Copy it to your server:

    Terminal window
    scp ~/Downloads/mideyeserver6-x.x.x.deb username@your-server:/tmp/
  3. Install the package:

    Terminal window
    sudo apt-get install /tmp/mideyeserver6-x.x.x.deb

Install the database from your operating system’s own packages. It gets security updates together with the rest of the system, and it only accepts connections from the server itself.

OSMariaDBMySQL
Ubuntu 22.0410.68.0
Ubuntu 24.0410.118.0
Ubuntu 26.0411.88.4
Debian 1210.11Not included, see below
Debian 1311.8Not included, see below
  1. Install MariaDB:

    Terminal window
    sudo apt-get update
    sudo apt-get install mariadb-server
  2. Verify that MariaDB is running:

    Terminal window
    sudo systemctl status mariadb

Open the database prompt as root:

Terminal window
sudo mysql

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.

  • MySQL has TLS turned on. Keep ?sslMode=TRUST: without TLS, MySQL’s default login method fails and Mideye Server doesn’t start.
  • MariaDB 11.4 and later (Ubuntu 26.04, Debian 13) has TLS turned on. You can add ?sslMode=TRUST to the URL.
  • MariaDB before 11.4 (for example 10.11 on Ubuntu 24.04 and Debian 12) 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 iptables-nft -A INPUT -p tcp --dport 8443 -j ACCEPT
sudo iptables-nft -A INPUT -p udp --dport 1812 -j ACCEPT

To make rules persistent:

Terminal window
sudo apt-get install iptables-persistent
sudo iptables-save > /etc/iptables/rules.v4

Open a browser and go to:

https://your-server-ip:8443

The Configuration Wizard will guide you through:

  1. Setup challenge: Find it in 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. Root password: Create administrator credentials

  3. Switch connection: Enter your customer TCP port


On Debian, or if you want a specific MySQL version on Ubuntu, you can install MySQL from Oracle’s APT repository. Follow A Quick Guide to Using the MySQL APT Repository and select the MySQL 8.4 LTS series. Install the repository package with apt instead of dpkg -i, so that apt also installs what it needs (gnupg):

Terminal window
sudo apt install ./mysql-apt-config_*_all.deb

Then:

  • Check that apt uses Oracle’s package and not the OS package. Oracle’s version contains the OS name, for example 8.4.13-1ubuntu24.04 or 8.4.13-1debian12; Ubuntu’s own looks like 8.0.46-0ubuntu0.24.04.4:

    Terminal window
    apt-cache policy mysql-server
  • Oracle’s MySQL accepts connections on all network interfaces. Mideye Server connects through localhost, so limit MySQL to the server itself:

    Terminal window
    sudo tee /etc/mysql/mysql.conf.d/zz-bind-localhost.cnf > /dev/null <<'EOF'
    [mysqld]
    bind-address = 127.0.0.1
    mysqlx-bind-address = 127.0.0.1
    EOF
    sudo systemctl restart mysql
  • During installation, Oracle’s package asks for a root password and how to handle table-name case. Keep table names case-sensitive. If you set a root password, log in with mysql -u root -p instead of sudo mysql in Step 3; if you leave it empty, sudo mysql works.


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, installed the same way as the server (best a fresh install from the same image), where the database has never been installed:

Terminal window
sudo apt-get clean
sudo apt-get update
sudo apt-get install --download-only mariadb-server # or mysql-server
mkdir db-pkgs && cp /var/cache/apt/archives/*.deb db-pkgs/

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

Terminal window
mkdir -p ~/no-sources
sudo apt-get install -o Dir::Etc::SourceList=/dev/null -o Dir::Etc::SourceParts=$HOME/no-sources ./db-pkgs/*.deb
sudo apt-get install ./mideyeserver6-x.x.x.deb

The two -o options make apt ignore its online repositories for this command. Without them, apt may try to download the same packages from the internet and wait until it times out.

Continue with Step 3.


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/etc/systemd/system/mideyeserver6.service

Server won’t start?

Check the logs:

Terminal window
journalctl -u mideyeserver6 -f

Database connection failed?

Verify that the database name, username and password in application-prod.yml match what you created in Step 3.

No SETUP CHALLENGE in logs?

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

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

Port 8443 not responding?

Verify the service is listening:

Terminal window
sudo ss -tlnp | grep 8443