PanelDOCSv1.0.0

Install

Install HF Panel with one command, then finish everything in your browser — check, domain, licence, admin login and the live install.

Install HF Panel with one command. Check the System requirements and add your DNS records first.

Before you begin

Important:

  • Use a freshly installed server running a supported system: Ubuntu, Debian, or Rocky Linux or AlmaLinux 8, 9 or 10, CentOS Stream 9 or 10, or CloudLinux 8, 9 or 10 (the same command works on all of them). Do not install on a server that already hosts websites, email or another control panel.
  • You don't need a licence key to install. The command prints a setup link within a minute: the rest happens in your browser, including the free 30-day trial or your key.
  • You need root access.
  • Open ports 22, 80, 443 and 8443 (and the mail, FTP and DNS ports you need) in your provider's cloud firewall, if it has one. See Ports.

Have ready:

  • your domain, for example yourdomain.com (optional: without one the panel opens on the server's IP)
  • an email address for SSL notices, alerts and the "server is ready" email

Run the installer

Log in to the server over SSH as root (or run sudo -i), then run:

bash
curl -fsSL https://cdn.hostfog.com/latest | bash

To install from a script instead, see Without the browser.

What happens during the installation

1. Download and checks

The latest script checks that it runs as root, on a supported system, with no other control panel installed. It installs curl, unzip and openssl if they are missing, then downloads HF Panel into /home/hostfog-install.

The download is checked before anything runs: its checksum must match, and the checksum file must be signed with the HF Panel release key. If either check fails, nothing is installed.

Note: if HF Panel is already installed on the server, the script updates it instead. See Updating.

The script checks the server (system, memory, disk), draws the HF Panel logo and starts a small setup page on port 8443. It then prints one link, with a QR code of it for your phone:

text
https://203.0.113.10:8443/setup?code=7Q4K-M2XD

Open it in your browser. Nothing else is installed yet. You can close the SSH window: the setup page keeps running.

Note: the page uses a temporary certificate, so your browser warns you once. That's expected; the real one comes at the end. The link works once, for 24 hours. Lost it? Log in over SSH (the login message reminds you) and run hf-agent setup-code for a new one.

3. In the browser

Step What you do
Check the page checks the system, memory, disk, public IP and ports 80, 443, 25 and 8443. If another control panel or existing websites are found, it stops and says what to do
Setup your domain (optional; the page checks live that srv. and cp. point to this server), your email, and what to install: websites and MariaDB always, Email and DNS (on by default, they need a domain), PostgreSQL and Docker (off by default)
Licence Start free trial with your email (every feature for 30 days, no card), or paste your key and click Use this key. No licence yet? See plans
Admin your admin login: a username, your email and a password (a meter shows its strength), with the licence it will run with. Click Install now
Installing the install runs with a live percentage and a list that ticks off as it goes; Show details shows the log. You can close the page and come back later, or reload it
Done the panel's addresses, whether the real SSL certificate is in place, your licence, and Open Server Admin. The same details are emailed to you

What your plan leaves out is not installed (see What gets installed depends on your plan).

4. Installation

The browser runs the same installer as the command line, about 23 steps. Steps your plan or your choices leave out are not run:

Step What it does
Packages updates the system and installs the server software
HostFog files the panel's program files, users and folders
PHP PHP for websites, with the common extensions
wp-cli, Node.js tools for WordPress and for customers' Node.js apps (Node.js only when your plan includes Apps)
Web servers Nginx in front, Apache behind it so .htaccess files work
Panel certificate a Let's Encrypt certificate for every server name that already points here (a temporary one until then)
Panel on port 8443 the panel's web server setup (the setup page carries on through it)
Files the File Manager app
Service names the mail names (mail., smtp., imap.) and ftp.
Separate panels Server Admin, Control Panel and the names your plan includes: Reseller Panel, Files, DB Studio and the API (not without a domain, or with --no-portals)
MariaDB, MongoDB databases the database servers for customers (MongoDB only when your plan includes DB Studio)
Email Postfix, Dovecot, DKIM and spam filtering (when your plan includes Email and it is ticked)
DNS server BIND, authoritative only (when your plan includes DNS and it is ticked)
FTP, SFTP FTP with TLS, and SFTP kept to each account's home
Firewall, fail2ban opens the needed ports and blocks repeated failed logins
Extra software PostgreSQL and Docker, when ticked
Scheduled jobs statistics every 5 minutes, the nightly jobs, log rotation
Disk quotas only with --quotas
Production settings automatic restarts, security updates, swap on small servers, mail app auto-setup
Panel database creates the panel's database and your admin login
Websites writes the web server settings of every website

It usually takes 10–15 minutes, depending on the server and its network.

Note: everything the commands print goes to /var/log/hostfog-install.log. If a step fails, the page shows why and the last lines of that log; fix the problem and click Try again (the install carries on where it stopped). See Troubleshoot the installation.

5. Done

When the page shows HF Panel is ready, the setup page removes itself and the panel takes over the port. Click Open Server Admin and sign in with the admin login you made. Getting started on the Overview lists what to do next.

The "server is ready" email lists your addresses and DNS records. The admin mailbox admin@yourdomain.com and its password are kept in /root/hostfog-mailboxes.txt, which only root can read.

Without the browser

Give the answers on the command line, for example in a script:

bash
curl -fsSL https://cdn.hostfog.com/latest | bash -s -- --yes --domain yourdomain.com --email you@yourdomain.com --trial

Use --licence KEY instead of --trial for a key. Everything installs in the terminal, which ends with a summary and a setup link: open it to create your admin login. See Customise the installation.

What gets installed depends on your plan

HF Panel is sold as plans. Each licence includes a set of features, and the installer sets up only the server software those features need. A licence made before plans existed includes everything.

Not in your plan What the installer leaves out
Email Postfix, Dovecot, DKIM, spam filtering and Mail, as with --no-mail
DNS the DNS server (BIND), as with --no-dns
Reseller Panel the rs.yourdomain.com address
Files the fm.yourdomain.com address
DB Studio the dbs.yourdomain.com address, PostgreSQL and MongoDB databases
API the api.yourdomain.com address (and pay. and hook.)
Billing the pay.yourdomain.com and hook.yourdomain.com addresses
Apps Node.js, Ruby, Perl modules, PEAR and Composer for customers' apps
Docker nothing at install time: it is set up from Server Admin when first used, and only when your plan includes it

Everything else (websites, SSL, MySQL databases, FTP and SFTP, the File Manager inside the Control Panel, security, local backups) is always installed. The other features, such as Billing or White label, are parts of the panel and need no extra software.

Options can only take more away: --no-mail leaves email out even when your plan includes it.

Note: when your plan changes later, the server follows by itself once a day, or straight away with hf-agent licence sync. What your plan gained is set up; what it lost is switched off. Your data is never deleted. See Server commands.

When it finishes

Sign in to Server Admin at:

text
https://srv.yourdomain.com:8443

with the admin login you made. Without a domain the panel is at https://<server IP>:8443. The panels open with the port :8443 only; the same names without the port go to your website. Then follow After installation.

With --no-portals, there is one panel for everyone at https://cp.yourdomain.com:8443, with Files at /files/, DB Studio at /studio/ and the API at /api/v1 on the same address.