Never touched a VPS before? This takes you from a fresh box to a live app with automatic HTTPS.
Create a server
On Hetzner Cloud (or any provider): add a server and pick the latest Ubuntu LTS (26.04). The cheapest shared box is fine. Add your SSH key when prompted and copy the server’s IP.
Bootstrap it
From your laptop:
homeport bootstrap root@<ip>This hardens the box (firewall, key-only SSH, no root login, fail2ban,
automatic security updates), installs Caddy for automatic HTTPS, and
installs homeportd, the server-side helper. It’s idempotent — safe to
re-run. You can also paste bootstrap/bootstrap.sh into Hetzner’s user
data field at creation and the box sets itself up on first boot.
Point DNS
Add an A record for your domain to the server’s IP. Certificates issue
automatically once it resolves.
Deploy
In your project:
homeport init # writes homeport.yaml, auto-detecting the project type
homeport deploy # build → upload → health-checked activateinit auto-detects Go, Rust, Next, Nuxt, SvelteKit, TanStack Start, and
Bun. Open your domain — it’s live.
What just happened
deploy built your app locally, uploaded the binary next to any previous
release, started it bound to loopback, waited for a health check to pass, then
pointed Caddy at it. If the health check had failed, the previous release would
still be serving — nothing goes live until it’s healthy.
From here: wire up secrets, put the app behind Cloudflare, or read the full configuration reference.