This site is under active development. Some services and pages may not be fully ready yet.

Install Hostinvo on your own server

Hostinvo is fully self-hosted: you install and run it on your own server. We never host your client data. Follow the steps below to get a production-ready instance running.

You need a licence key before you start: the installer downloads the package from us and the key is checked first. Create a free account to get a 7-day trial key in about a minute.

Start the free trial

Requirements

  • Linux VPS (Ubuntu 22.04+), 2 vCPU, 4 GB RAM, 40 GB disk
  • Docker Engine 24+ with Docker Compose v2
  • One domain (or subdomain) for the API, one for the portal UI
  • A reverse proxy with HTTPS (Plesk, Caddy, or Traefik)
  • SMTP credentials for outbound email
1

Run the installer

One command on your server as root. It downloads the package, generates secrets, builds and starts the containers, and runs the migrations. Replace your-domain.com with the domain you will serve Hostinvo on — it sets your app URL, session domain and CORS origins, and without it you will not be able to sign in after installing.

curl -fsSL https://api.hostinvo.dev/install.sh | bash -s -- --license YOUR-LICENCE-KEY --domain your-domain.com
2

Point a domain at it

The installer listens on localhost only and prints the port it chose. Put a reverse proxy in front. In Plesk: add the domain, open Apache & nginx Settings, scroll to the nginx section, untick Proxy mode, and paste this into Additional nginx directives — not the Apache boxes above it. A regex location is required; a plain “location /” clashes with the block Plesk generates. Then issue a Let's Encrypt certificate. If that page shows no nginx section, Plesk was installed without the optional nginx component: either add it, or proxy from Apache instead by putting ProxyPass / ProxyPassReverse to the same port in both Additional Apache directives boxes, with RequestHeader set X-Forwarded-Proto matching each box. Put ProxyPass /.well-known ! above the catch-all, or Apache sends the ACME challenge to the container and the certificate cannot be issued or renewed.

location ~ / {
    proxy_pass http://127.0.0.1:PORT;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_http_version 1.1;
    proxy_read_timeout 120s;
    client_max_body_size 32m;
}
3

Create your owner account

The installer prints a one-time setup link ending in ?token=… — open it and create the owner account. Treat it like a password: whoever holds it can create the owner account, and anyone opening /install without it gets a sealed page. It stops working the moment setup completes. Lost it? Print it again on the server with the command below. Activate your licence key there, or a 7-day trial starts automatically.

docker compose -f docker-compose.prod.yml exec app php artisan install:link
4

Set your URL and mail

Mail stays on the log driver until you supply real SMTP, so a missing mail server cannot break the install. Set APP_URL and the MAIL_* values, then restart.

nano /opt/hostinvo/backend/.env.production
cd /opt/hostinvo && docker compose -f docker-compose.prod.yml restart app

Installer options

  • --port PORT — the installer picks the first free port from 8080; use this to choose one.
  • --bind 0.0.0.0 — expose the port directly instead of binding to localhost behind a proxy.
  • --dir PATH — install directory (default /opt/hostinvo).
  • --reset — reinstall from scratch: removes the previous install directory and its database and cache volumes. Destroys all data, and is required when reinstalling because each install generates a new database password the old volume would reject.
  • If it fails, the installer prints the reason and keeps a full log in /tmp — include it when contacting support.

For full detail — including frontend deployment, backups, and troubleshooting — see the complete installation guide bundled with your release package.

Need a license?

Pick a plan and your license key is emailed to you immediately after payment.

View pricing

Need help?

Our support team can help with installation and activation questions.

Contact support