Install freePanel

Start from a fresh server and run one command.

curl -fsSL https://repo.atlantishosting.net/install | sudo bash

The installer prints a one-time link. Open it to create your admin login. After you sign in, enter your licence key on the panel's License page.

The plain command installs the whole stack (websites, email, DNS, databases, FTP and webmail) and opens the web, mail, DNS, FTP and panel ports in the firewall.

The server needs a full host name first. Set it with hostnamectl set-hostname server.example.com and point that name at the server.

Works on a fresh AlmaLinux, Rocky Linux or RHEL 9 server, with root access. On Ubuntu 24.04 the same command installs the panel only; the services (websites, email, DNS, databases, FTP and the rest) need AlmaLinux, Rocky or RHEL 9.

Advanced

Give the installer any service option and it installs only what you name, and opens no firewall ports unless you add --open-firewall. You can run it again later to add more. Options go after bash -s --, for example:

curl -fsSL https://repo.atlantishosting.net/install | sudo bash -s -- --web --mail --dns --mysql --open-firewall

Without --open-firewall the panel can't be reached from outside the server.

OptionWhat it does
--hostname NAMEThe panel's host name, for example panel.example.com.
--webWebsite hosting: Apache with HTTPS and PHP-FPM (EL 9 family).
--php VERSIONDefault PHP version. 8.3 unless given; 7.4 to 8.5 are offered.
--dnsDNS for each account with PowerDNS. Also takes --nameservers and --ip.
--mailEmail: Postfix, Dovecot with Sieve, and DKIM signing.
--spamSpam filtering with rspamd (needs --mail).
--webmailRoundcube webmail (needs --mail).
--mysqlMariaDB for customer databases.
--postgresPostgreSQL for customer databases.
--dbadminphpMyAdmin and Adminer (needs --web).
--ftpFTP over TLS with Pure-FTPd.
--protectLogin protection with fail2ban (EL 9 with firewalld running). Also takes --protect-allow ADDR[,ADDR].
--open-firewallOpen the panel ports, 7443/tcp and 7444/tcp.
--no-firewallLeave the firewall alone entirely.

Install by hand

Prefer to read the script first? Download the release archive for your version, then:

tar xzf freepanel-<version>-linux-amd64.tar.gz
cd freepanel-<version>
sudo ./installer/install.sh --web --mail --dns --mysql

The panel ports 7443 and 7444 stay closed in the firewall unless you pass --open-firewall.