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
Quick overview
Section titled “Quick overview”- Install the Mideye Server package
- Install MariaDB or MySQL
- Create the database and user
- Connect Mideye Server to the database
- Start the service
- Complete the Configuration Wizard
Time required: 15–30 minutes
Step 1: Install Mideye Server
Section titled “Step 1: Install Mideye Server”-
Download the package from Mideye Server Downloads
-
Copy it to your server:
Terminal window scp ~/Downloads/mideyeserver6-x.x.x.deb username@your-server:/tmp/ -
Install the package:
Terminal window sudo apt-get install /tmp/mideyeserver6-x.x.x.deb
Step 2: Install the database
Section titled “Step 2: Install the database”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.
| OS | MariaDB | MySQL |
|---|---|---|
| Ubuntu 22.04 | 10.6 | 8.0 |
| Ubuntu 24.04 | 10.11 | 8.0 |
| Ubuntu 26.04 | 11.8 | 8.4 |
| Debian 12 | 10.11 | Not included, see below |
| Debian 13 | 11.8 | Not included, see below |
-
Install MariaDB:
Terminal window sudo apt-get updatesudo apt-get install mariadb-server -
Verify that MariaDB is running:
Terminal window sudo systemctl status mariadb
-
Install MySQL (Ubuntu):
Terminal window sudo apt-get updatesudo apt-get install mysql-server -
Verify that MySQL is running:
Terminal window sudo systemctl status mysql
Step 3: Create the database and user
Section titled “Step 3: Create the database and user”Open the database prompt as root:
sudo mysqlCreate 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;EXITCREATE DATABASE MideyeServer CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;CREATE USER 'mideye'@'localhost' IDENTIFIED BY 'your-secure-password';GRANT ALL PRIVILEGES ON MideyeServer.* TO 'mideye'@'localhost';FLUSH PRIVILEGES;EXITStep 4: Connect Mideye Server to the database
Section titled “Step 4: Connect Mideye Server to the database”Edit the configuration file:
sudo nano /opt/mideyeserver6/config/application-prod.ymlThe 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' datasource: url: jdbc:mariadb://localhost:3306/MideyeServer?sslMode=TRUST username: mideye password: 'your-secure-password'Use jdbc:mariadb:// for MySQL as well. Mideye Server includes the MariaDB driver, which works with both databases.
TLS to the database
Section titled “TLS to the database”- 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=TRUSTto 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.
Step 5: Start Mideye Server
Section titled “Step 5: Start Mideye Server”sudo systemctl enable mideyeserver6sudo systemctl start mideyeserver6Verify it’s running:
sudo systemctl status mideyeserver6Step 6: Open firewall ports
Section titled “Step 6: Open firewall ports”Mideye Server needs two ports:
| Port | Protocol | Purpose |
|---|---|---|
| 8443 | TCP | Web interface |
| 1812 | UDP | RADIUS authentication |
sudo iptables-nft -A INPUT -p tcp --dport 8443 -j ACCEPTsudo iptables-nft -A INPUT -p udp --dport 1812 -j ACCEPTTo make rules persistent:
sudo apt-get install iptables-persistentsudo iptables-save > /etc/iptables/rules.v4Step 7: Complete setup
Section titled “Step 7: Complete setup”Open a browser and go to:
https://your-server-ip:8443The Configuration Wizard will guide you through:
-
Setup challenge: Find it in the logs:
Terminal window sudo grep CHALLENGE /opt/mideyeserver6/log/mideyeserver.logMideye 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.
-
Root password: Create administrator credentials
-
Switch connection: Enter your customer TCP port
MySQL from Oracle’s repository
Section titled “MySQL from Oracle’s repository”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):
sudo apt install ./mysql-apt-config_*_all.debThen:
-
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.04or8.4.13-1debian12; Ubuntu’s own looks like8.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.1mysqlx-bind-address = 127.0.0.1EOFsudo 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 -pinstead ofsudo mysqlin Step 3; if you leave it empty,sudo mysqlworks.
Install without internet access
Section titled “Install without internet access”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:
sudo apt-get cleansudo apt-get updatesudo apt-get install --download-only mariadb-server # or mysql-servermkdir 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:
mkdir -p ~/no-sourcessudo apt-get install -o Dir::Etc::SourceList=/dev/null -o Dir::Etc::SourceParts=$HOME/no-sources ./db-pkgs/*.debsudo apt-get install ./mideyeserver6-x.x.x.debThe 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.
File locations
Section titled “File locations”| File | Path |
|---|---|
| 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 |
Quick troubleshooting
Section titled “Quick troubleshooting”Server won’t start?
Check the logs:
journalctl -u mideyeserver6 -fDatabase 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:
sudo cat /opt/mideyeserver6/log/mideyeserver.errorPort 8443 not responding?
Verify the service is listening:
sudo ss -tlnp | grep 8443Next steps
Section titled “Next steps”- Configuration Wizard, Complete initial setup
- Backup procedures, Set up regular backups
- Upgrades, How to update Mideye Server
- Shared database, Multi-server deployments

