Skip to content

Install

Install Hostpanel

One command on a Linux server with Docker. The installer sets up HTTPS for you.

An illustration of a terminal running the installer command next to a server stack

Before you start

  • A Linux server with Docker and the Compose v2 plugin installed and running.
  • Two different host names pointing at the server: one for the client portal and one for the admin panel.
  • An email address for the administrator account and the Let's Encrypt certificate.
  • Ports 80 and 443 free and reachable, unless you install without TLS.

Run the installer

curl -fsSL https://raw.githubusercontent.com/innovayse/hostpanel/main/install.sh | bash

The installer checks for docker, docker compose, curl and openssl, and names anything that is missing.

Step by step

From an empty server to your first sign-in

The same five steps on every install.

1

Point the DNS

Point both host names at your server and wait for them to propagate.

2

Run the installer

Paste the command on the server. It downloads three files into /opt/hostpanel.

3

Answer three prompts

The portal domain, the admin domain and an admin email, which is also the certificate contact.

4

Wait for the stack

The installer pulls the images, starts everything and waits up to five minutes for the health check.

5

Claim the administrator role

Open the admin panel, create your account and paste the one-time setup token.

Then set up mail

The installer leaves the mail relay empty on purpose. Until you set a real one, no verification, password reset or invoice email is sent.

Configuration reference
The admin dashboard you reach after the first sign-in

Installer options

Flags and variables

Pass flags through the pipe, for example bash -s -- --version 1.4.0, or set the matching variable in front of bash.

--dir or HOSTPANEL_DIR

The install directory. The default is /opt/hostpanel.

--version or HOSTPANEL_VERSION

The release to install. The default is the latest.

--no-tls or HOSTPANEL_TLS=off

Serve plain HTTP on port 8080 behind your own TLS proxy.

HOSTPANEL_NONINTERACTIVE=1

Skip the prompts. Set HOSTPANEL_DOMAIN and HOSTPANEL_ADMIN_EMAIL first.

Behind your own proxy, forward both host names to port 8080, keep the original Host header and add X-Forwarded-Proto: https, because sign-in cookies need a secure origin.

Keep it running

Updates, backups and rollback

Take a database dump before every upgrade. Migrations run forward when the API starts and never backwards.

Upgrade

Run the install command again. An existing .env is kept.

Upgrade guide

Pin a version

Set IMAGE_TAG in .env to a release number instead of latest.

Configuration reference

Back up

Keep .env with every database dump. Without the same encryption key a restore cannot read stored secrets.

Backup guide

Roll back

If a release added a migration, restore your dump first, then start the old version.

Rollback guide

Troubleshooting

When something does not start

Read the API log first. It names the setting that failed.

cd /opt/hostpanel && docker compose -f docker-compose.hub.yml logs hostpanel-api

The API refuses to start

A secret still holds a placeholder, or the mail encryption setting is not tls, ssl or none. The log names the key.

Certificates are not issued

Both host names must resolve to the server before the first request. Check with dig, then run the installer again.

The stack is not healthy in time

The installer waits five minutes. Read the API and database logs for the start-up error.

No emails arrive

The mail relay is empty until you set it in .env. Set it, then run docker compose up -d again.

The setup token is lost

Restart the API and read the newest token from its log. It is printed again while setup is outstanding.

FAQ

Install questions

Can I install behind my own proxy?

Yes. Use the no-TLS option and forward both host names to port 8080.

Why two host names?

The admin panel is served from the root path, so it needs a host of its own.

Can I skip the script?

Yes. Download the three files, fill in .env and run docker compose by hand. The install guide lists the steps.

Which CPU architectures work?

Prebuilt images exist for amd64 and arm64.