Skip to content
VORQUL
Documentation / Installation

Install VorqulPanel on a Linux server

Most of the time is spent waiting on package installs and DNS propagation rather than on the panel itself. The order below is the one that avoids locking yourself out.

Installing VorqulPanel takes roughly 15 to 30 minutes on a clean Linux server. It needs Debian 12, Ubuntu 22.04 or newer, or AlmaLinux 9, with root access, Java 17 or newer and at least 2 GB of RAM. The panel ships as a compiled JAR plus a lib directory and a helper script that creates the service user, registers the systemd unit and opens the panel port. There is no build step, no container runtime and no external database - the panel keeps its own state in SQLite.

Time
15 to 30 minutes
Runtime
Java 17 or newer
Distributions
Debian 12, Ubuntu 22.04+, AlmaLinux 9
Panel storage
SQLite, no external DB

Requirements

Minimum requirements before installing
RAM 2 GB minimum
Access Root on a clean server
Java 17 or newer
Ports SSH, the panel port, 80 and 443
DNS A record pointing at the server, for certificates
Container runtime Not required

Part 1 - Prepare the server

A clean server is a genuine requirement, not a recommendation. The panel manages nginx, Apache, BIND9, Postfix, Dovecot, MariaDB and nftables, and it is far easier on a machine where it installed them itself.

  1. Step 01

    Start from a supported distribution

    Debian 12, Ubuntu 22.04 or newer, or AlmaLinux 9, freshly provisioned, with root access over SSH.

    Installing onto a server that already runs someone else's web stack is possible - the panel can adopt existing vhosts and reads their config without rewriting it until you explicitly allow a takeover - but it is not the install to do first.

  2. Step 02

    Install Java 17 or newer

    The panel is a single-file Java application and needs a JRE of 17 or above. Confirm the version before going further.

    bash
    java -version
  3. Step 03

    Sort out SSH access before the firewall exists

    Know which port your SSH daemon listens on, and make sure you can get back in. The firewall comes later and it will need an explicit rule for it.

    Non-standard SSH port plus a default firewall rule set is the classic way to lock yourself out of a fresh panel install.

Part 2 - Install the panel

The archive contains a thin JAR, a lib directory and a helper script. There is nothing to compile.

  1. Step 04

    Unpack the release

    Put the JAR and its lib directory somewhere permanent. The helper script expects them to stay together.

    Test access is provided by email, and the archive comes with the exact commands for the version you were sent. The steps here describe what those commands do rather than replacing them.

  2. Step 05

    Run the helper script as root

    It creates the dedicated service user, registers the systemd unit, opens the panel port and starts the service.

    Watch the output. The installer prints the port the panel is listening on and how to reach it for the first time - that line is the one you need.

  3. Step 06

    Confirm the service is up

    The panel runs as a hardened systemd service. Check that it started, and read the journal if it did not.

    bash
    systemctl status vorqulpanel
    journalctl -u vorqulpanel -n 50 --no-pager

    If package installs fail during setup, the usual cause is RestrictSUIDSGID=yes in the unit breaking post-install scripts.

  4. Step 07

    Open the panel port

    The firewall needs an explicit rule for the panel port and for SSH on whatever port you actually use.

    Once the panel is reachable, its nftables interface takes over firewall management, and rules added by hand are visible there rather than lost.

Part 3 - First setup in the web interface

From here everything happens in the browser.

  1. Step 08

    Create the administrator account

    Open the panel on the port the installer printed and create the first account. Do this immediately - a freshly installed panel waiting for its first account is not something to leave sitting on a public IP.

  2. Step 09

    Add your first domain

    Point an A record at the server first, then add the domain in the panel and let it create the vhost.

    Certificates come from acme.sh or certbot and both need the DNS record resolving before they will issue. If the record was only just changed, wait for propagation rather than retrying in a loop.

    A certificate issued but the site still serving plain HTTP usually means an adopted vhost that has not had its takeover confirmed yet.

  3. Step 10

    Run the config test

    Every Apply runs the web server config test with automatic rollback. Run it once deliberately, so you have seen what a passing result looks like.

    That rollback is the reason a bad vhost does not take the whole server down: the panel tests the new configuration before reloading and puts the old one back if the test fails.

  4. Step 11

    Enable only the subsystems you need

    DNS, mail, databases, SFTP and monitoring are separate. A panel used only for web hosting does not need BIND9 or Postfix installed at all.

    • Web hosting - nginx and Apache vhosts, PHP-FPM version selection
    • DNS - BIND9 zones, validated with named-checkzone before reload
    • Mail - Postfix, Dovecot and Roundcube
    • Databases - MariaDB with Adminer behind panel authentication
    • SFTP - built-in, one account scoped to one directory
    • Monitoring - CPU, memory, disk, network, 30 days of history
  5. Step 12

    Set up backups before you need them

    Database dumps have scheduling and retention. Configure them on the first day rather than after the first incident.

Troubleshooting

The failures that actually happen, and what causes them.

Questions about installing

Terms on this page

Server control panel Self-hosted One-off license Audit log

Related

Reviewed