Hosting Panel
    Open Source

    Deploy Froxlor Server Management Panel on a VPS

    Lightweight, open-source hosting panel for managing domains, email, FTP, databases, and customer resources — no licensing fees, built by sysadmins for sysadmins.

    At a Glance

    ProjectFroxlor 2.3
    LicenseGPL v2
    Recommended PlanRamNode Cloud VPS 2 GB+
    OSUbuntu 24.04 LTS
    StackApache, MariaDB, PHP-FPM
    Estimated Setup Time20–30 minutes

    Prerequisites

    • A RamNode VPS with at least 2 GB RAM and 20 GB storage (Ubuntu 24.04 LTS)
    • Root SSH access to your VPS
    • A registered domain with a dedicated FQDN for the panel (e.g., panel.yourdomain.com)
    • An A record pointing the panel hostname to your VPS IP
    1

    Update the System

    Update and reboot
    apt update && apt upgrade -y
    reboot
    2

    Install Apache, MariaDB, and PHP

    Install full stack
    apt install -y apache2 mariadb-server \
      php php-fpm php-mysql php-curl php-cli php-zip php-xml \
      php-gd php-common php-mbstring php-bcmath php-json \
      php-intl php-soap php-gmp php-gnupg php-imap php-sqlite3
    Enable services
    systemctl enable apache2 mariadb
    systemctl start apache2 mariadb
    3

    Secure MariaDB

    Run security script
    mysql_secure_installation

    Set a strong root password, remove anonymous users, disallow remote root login, remove the test database, and reload privilege tables. Answer Y to each prompt.

    4

    Create the Froxlor Database Users

    Create privileged user
    mysql -u root -p
    SQL commands
    CREATE USER 'froxroot'@'localhost' IDENTIFIED BY 'CHANGE_THIS_PASSWORD';
    GRANT ALL PRIVILEGES ON *.* TO 'froxroot'@'localhost' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    EXIT;

    Tip: Avoid special characters like quotes, spaces, and # in the password — they can cause issues in config files.

    5

    Add the Froxlor Repository and Install

    Add GPG key and repo
    apt -y install apt-transport-https lsb-release ca-certificates curl gnupg
    
    curl -sSLo /usr/share/keyrings/deb.froxlor.org-froxlor.gpg \
      https://deb.froxlor.org/froxlor.gpg
    
    sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.froxlor.org-froxlor.gpg] \
      https://deb.froxlor.org/ubuntu $(lsb_release -sc) main" \
      > /etc/apt/sources.list.d/froxlor.list'
    Install Froxlor
    apt update
    apt install -y froxlor
    6

    Configure the Apache Virtual Host

    froxlor.conf
    <VirtualHost *:80>
        ServerName panel.yourdomain.com
        DocumentRoot /var/www/html/froxlor
    
        <Directory /var/www/html/froxlor>
            AllowOverride All
            Require all granted
        </Directory>
    
        ErrorLog ${APACHE_LOG_DIR}/froxlor-error.log
        CustomLog ${APACHE_LOG_DIR}/froxlor-access.log combined
    </VirtualHost>
    Enable site and modules
    a2ensite froxlor.conf
    a2enmod rewrite
    a2enmod proxy_fcgi setenvif
    a2enconf php*-fpm
    systemctl restart apache2
    7

    Run the Web Installer

    Navigate to http://panel.yourdomain.com and complete the installer:

    • Requirements check — All PHP extensions should be green
    • Database config — Use froxroot as privileged user, create froxlor as the unprivileged user and database name
    • Admin account — Set username, password, and email
    • Server settings — Enter VPS IP, FQDN, select Apache and PHP-FPM
    8

    Configure Services

    In the admin panel, go to System → Configuration. Select Ubuntu 24.04 for each service category and execute the generated commands on your server:

    • Web server: Apache 2.4
    • Mail server: Postfix with Dovecot (if using email)
    • FTP server: ProFTPD or Pure-FTPd
    • DNS server: Bind (if managing DNS locally)
    • Cron: Follow the commands to set up the Froxlor cron job
    9

    Enable Let's Encrypt SSL

    In the admin panel: System → Settings → SSL → enable SSL. Then System → Settings → Let's Encrypt → enable.

    Trigger certificate request
    php /var/www/html/froxlor/bin/froxlor-cli froxlor:cron --run-task 1
    php /var/www/html/froxlor/bin/froxlor-cli froxlor:cron --run-task 99
    10

    Harden the Installation

    Firewall

    UFW rules
    apt install -y ufw
    ufw default deny incoming
    ufw default allow outgoing
    ufw allow 22/tcp
    ufw allow 80/tcp
    ufw allow 443/tcp
    ufw allow 21/tcp    # FTP (if using)
    ufw allow 25/tcp    # SMTP (if using mail)
    ufw allow 587/tcp   # Submission (if using mail)
    ufw allow 993/tcp   # IMAPS (if using mail)
    ufw enable

    Auto Security Updates & Fail2Ban

    Install protection
    apt install -y unattended-upgrades
    dpkg-reconfigure -plow unattended-upgrades
    
    apt install -y fail2ban
    systemctl enable fail2ban
    systemctl start fail2ban

    Panel security: Enable 2FA under System → Settings → Panel for all admin and reseller accounts.

    What's Next

    • Hosting plans — Create resource-limited plans under Resources → Hosting Plans
    • Reseller accounts — Froxlor supports reseller tiers with resource quotas
    • API access — Froxlor 2.3 offers a comprehensive API for automation
    • SSH key management — Customers can manage SSH keys through the panel