Install
Install HF Panel with one command, answer its questions, and follow what it does step by step until the summary.
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. Do not install on a server that already hosts websites, email or another control panel.
- Your licence is tied to the server's public IPv4 address. Install on the server whose IP you licensed, or start a free trial at the licence question.
- You need root access.
- Open ports 22, 80, 443, 8443 and 2087 (and the mail, FTP and DNS ports you need) in your provider's cloud firewall, if it has one. See Ports.
Have ready:
- your licence key, or an email address for the trial
- your domain, for example
yourdomain.com - an email address for SSL notices, alerts and the "server is ready" email
- your company name, used in email footers and sender names
Run the installer
Log in to the server over SSH as root (or run sudo -i), then run:
cd /home && curl -o latest -L https://get.hostfog.io/latest && bash latest
To answer every question in advance, for example in an automated install, see Customise the installation.
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.
2. Licence key
At Licence key, type your key (HFL-XXXXX-XXXXX-XXXXX-XXXXX). The installer checks it with the licence server and
shows its status.
To try HF Panel first, type T. The installer asks for a Trial email, starts a 14-day trial for this server and shows the trial key, which is emailed to you as well. See Licensing.
The licence server's answer also says which plan the licence has: the features it includes and its account limit. The installer reads them now, before it changes anything, because they decide what gets installed (see What gets installed depends on your plan).
3. Questions
| Question | What to enter |
|---|---|
| Domain | your domain, for example yourdomain.com. The Control Panel becomes panel.yourdomain.com and every other address is a name under the same domain |
| the administrator's email address, for SSL notices, alerts and the "server is ready" email | |
| Company | your company name. Press Enter to keep the suggestion (your domain's first part with a capital, for example Yourdomain) |
4. Pre-install summary
Before it changes anything, the installer shows:
- the system, CPU, memory, free disk and the server's IP address
- the Server Admin address, the company name and the licence status
- Your plan: the plan's name, the features it includes and the account limit, for example
Pro Web — Server Admin, Control Panel, Email, DNS · up to 50 accounts - the DNS records your domain needs, each marked points here or add it, plus the glue records and the reverse DNS (PTR) to set at your server provider
Add any records that are missing, then press Enter to start, or Ctrl+C to cancel without changing anything.
5. Installation
The installer runs about 23 steps, each shown on one line with a progress bar and a tick when done. Steps your plan or your options leave out are not run and not counted:
| 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 |
| HF Files | the File Manager app |
| Service names | webmail., the mail names and ftp. |
| Separate panels | Server Admin, Control Panel and the names your plan includes: Reseller Panel, HF Files, HF Studio and the API (not with --no-portals) |
| MariaDB, MongoDB databases | the database servers for customers (PostgreSQL and MongoDB only when your plan includes HF Studio) |
Postfix, Dovecot, DKIM and spam filtering (when your plan includes Email; not with --no-mail) |
|
| DNS server | BIND, authoritative only (when your plan includes DNS; not with --no-dns) |
| FTP, SFTP | FTP with TLS, and SFTP kept to each account's home |
| Firewall, fail2ban | opens the needed ports and blocks repeated failed logins |
| 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 |
| 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 installer marks it stopped and shows the last lines of that log. Fix the problem and run the same command again. See Troubleshoot the installation.
6. Your admin login
Under CREATE YOUR ADMIN LOGIN, enter the first administrator's Admin username (3–32 characters, starting with a letter), Admin email and password (twice).
7. Summary
The installer finishes with:
- SIGN IN: the addresses of Server Admin, Control Panel and, when your plan includes them, Reseller Panel, HF Files, HF Studio, the API, webmail, the mail server and the mail app names
- Admin mailbox: the address
admin@yourdomain.comand its password - Email sent: where the "server is ready" email went, with your addresses and DNS records
- TO DO: anything still to do, such as DNS records that are missing
Important: the mailbox passwords are shown only once. They are also kept in
/root/hostfog-mailboxes.txt, which only root can read. Keep that file safe.
To read the admin mailbox, sign in to HF Mail at https://webmail.yourdomain.com with the full address
admin@yourdomain.com and that password, or click Webmail next to it under
Server Admin › Email › Server mailboxes, where you can also make a new password.
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 |
|---|---|
Postfix, Dovecot, DKIM, spam filtering and webmail, as with --no-mail |
|
| DNS | the DNS server (BIND), as with --no-dns |
| Reseller Panel | the reseller.yourdomain.com address |
| HF Files | the files.yourdomain.com address |
| HF Studio | the db.yourdomain.com address, PostgreSQL and MongoDB databases |
| API | the api.yourdomain.com address |
| Apps | Node.js, Ruby, Perl modules, PEAR and Composer for customers' apps |
| HF Tunnel, Docker | nothing at install time: both are set up from Server Admin when first used, and only when your plan includes them |
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-panel 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:
https://server.yourdomain.com:8443
with the admin login you just made. 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://panel.yourdomain.com:8443, with HF Files at
/files/, HF Studio at /studio/ and the API at /api/v1 on the same address.