Customise the installation
Every installer option, unattended installs without questions, and how to change the same things after installing.
Without options, curl -fsSL https://cdn.hostfog.com/latest | bash prints a setup link and you choose
everything in the browser (see Install). Give options instead to install in the terminal:
answer its questions in advance, choose the panel port, or leave parts out. Options go after bash -s -- (or after
bash latest when you downloaded the file first with curl -o latest -L https://cdn.hostfog.com/latest);
--domain, --hostname, --email or --yes install in the terminal.
Options
| Option | What it does | Default |
|---|---|---|
--licence KEY |
your licence key, activated during the install (--license works too) |
added in the panel's setup |
--trial |
start the free 30-day trial for this server and the --email address during the install |
added in the panel's setup |
--domain DOMAIN |
your domain, for example yourdomain.com (the Control Panel becomes cp.yourdomain.com) |
asked |
--yes |
ask nothing: give --domain (or --hostname) and --email too |
questions asked |
--hostname NAME |
the server's own name, for example cp.yourdomain.com. The domain after the first dot is used for every other address |
asked as Domain, then cp. + your domain |
--email ADDRESS |
the administrator's email: SSL notices, alerts, the "server is ready" email | asked |
--company "NAME" |
the company name in email footers and sender names | your domain's first part, with a capital |
--port PORT |
the panels' port | 8443 |
--ns1 NAME, --ns2 NAME |
your nameservers' names | ns1. and ns2. + your domain |
--mail-host NAME |
the mail server's name: the MX, the name it greets other servers with, and the reverse DNS | mail. + your domain |
--node VERSION |
the Node.js version for customers' apps: a major version, 18 or newer (for example 22) |
24 |
--quotas |
hard disk quotas per account on the / filesystem |
off |
--no-mail |
no email: no Postfix, Dovecot, spam filtering or Mail | email on |
--no-dns |
no DNS server (BIND): your domains' DNS stays at another provider | DNS on |
--no-domain |
no domain yet: one panel on the server's IP, no email or DNS server (with --yes) |
a domain |
--postgresql, --docker |
also install PostgreSQL or Docker (the browser's ticks) | not installed |
--no-portals |
one panel for everyone at https://cp.yourdomain.com:8443, instead of separate Server Admin, Control Panel and Reseller Panel |
separate panels |
What gets installed depends on your plan
Your licence's plan decides which parts are installed: without Email the installer works as with --no-mail,
without DNS as with --no-dns, and without Reseller Panel, Files, DB Studio or API it leaves out
that part's own address (rs., fm., dbs., api.; without API or Billing also pay. and hook.). Without DB Studio there are no PostgreSQL and
MongoDB databases, and without Apps no Node.js, Ruby, Perl modules, PEAR or Composer. The full list is in
Install.
The options above can only take more away. A part you leave out with an option (--no-mail, --no-dns,
--no-portals) stays out when your plan changes later; hf-agent licence sync never adds it back.
Note: the company name is asked only when the domain or email is asked too. In an install without questions it is
--company, or the suggestion.
Install without any questions
Give the domain and the email, and add --yes; the installer then asks nothing. Add --licence KEY or --trial to
activate the licence during the install:
curl -fsSL https://cdn.hostfog.com/latest | bash -s -- --yes --domain yourdomain.com \
--email you@yourdomain.com --company "Your Hosting Ltd" --licence HFL-XXXXX-XXXXX-XXXXX-XXXXX
The install ends with a setup link where you create the first admin login in the browser. From a script, create it on the server instead:
hf-agent create-admin
Examples
A web-only server, with email and DNS handled elsewhere:
bash latest --no-mail --no-dns
A different panel port and Node.js 22:
bash latest --port 2083 --node 22
Your own mail server and nameserver names:
bash latest --mail-host mx1.yourdomain.com --ns1 dns1.yourdomain.com --ns2 dns2.yourdomain.com
Note: when you change the port with
--port, open that port instead of 8443 in your provider's firewall, and use it in the panel addresses, for examplehttps://srv.yourdomain.com:2083.
Change things after installing
| What | How |
|---|---|
| Follow a plan change now (set up what it gained, switch off what it lost) | hf-agent licence sync (runs once a day by itself) |
| Separate panels on or off, or other names for them | hf-agent portals on / hf-agent portals off (--admin, --customer and --reseller choose the names) |
| Files, DB Studio, the API, the billing pages, the payment webhooks or the status page on their own address | hf-agent files-portal on|off, hf-agent db-portal on|off, hf-agent api-portal on|off, hf-agent pay-portal on|off, hf-agent hook-portal on|off, hf-agent status-page on|off |
| The mail server's name | hf-agent mail-name mail2.yourdomain.com |
| Newer Nginx, Apache, MariaDB, PostgreSQL, Redis, Node.js | Server Admin › System › Software › Software versions |
| PHP versions | Server Admin › System › PHP & Node.js |
| The company name, logo and colours | Server Admin › System › White label |
| Every other server command | Server commands |