Getting started with HostSSH
Your first 10 minutes — account, first server, first capture, and a nightly schedule with a monthly restore-drill.
Getting started with HostSSH
HostSSH makes any machine you run — cloud VPS today, office or GPU hardware next —
portable and un-trappable: one agent, one fleet, one encrypted .hsi image you can
restore or relocate with IP rewrite, plus deploy and (on the path) inference over your
capacity. This guide is the first 10 minutes — account, first server, first capture, nightly
backup that proves the repo is readable.
By the end you'll have:
- An account at hostssh.com and a license key.
- One server in your fleet dashboard, reporting backup health.
- A verified
.hsiimage in your own storage. - A nightly schedule and a monthly restore-drill running on autopilot.
The principle this whole guide is built around: a backup you haven't restored isn't a backup. HostSSH treats recoverability — not "the job completed" — as the definition of success.
1. Create your account
Sign up at hostssh.com. You land in the Control Panel —
the multi-server SaaS dashboard that licenses, monitors, and orchestrates your whole
fleet. A new account starts on a trial license; your license key (HSSH-XXXX-XXXX-XXXX)
is shown in the dashboard and emailed to you. You'll paste it into your first server in
the next step.
What the dashboard gives you out of the gate:
- Fleet view — every licensed server, with backup health, uptime, storage, and last restore-drill.
- Recovery console — browse images across servers, one-click restore or migrate, point-in-time.
- License management — keys, seats, expiry, bind/unbind, revoke.
See Licensing for how seats, tiers, and transfers work.
2. Add your first server
There are two ways to add a server. Pick whichever matches how you run infrastructure — both end up in the same fleet, managed the same way.
Option A: Provision through the panel
Queue a fresh VPS through a connected provider. In the dashboard:
Fleet → Provision → choose the owner, provider, region, and size → Provision.
The durable request creates the provider machine, enrolls its agent, and schedules protection checks. The node is not ready until the control plane records agent and recovery evidence. This path is gated by tier; see Licensing.
Option B: Connect your own machine
Already have a box — any provider, bare metal, or a machine you own? Open Fleet → Add node. The panel shows the signed install command only after the public release mirror and clean-host journey are verified. Until then, request assisted onboarding from the same panel.
Full details, flags, and the activation handshake are in Install on any VPS. Home, office, or CGNAT boxes (no public IP) still join — the agent is pull-only. To publish an app from that box, add the tunnel-first path.
Either way, it is the same Fleet experience. Provisioned and directly connected nodes share one image format, one control plane, and the same operations. The origin badge records how each node arrived.
3. Run your first capture
A capture currently protects supported Postgres data and named Docker-volume bytes in
encrypted restic storage. Broader database adapters, sidecar recreation, and the signed portable
.hsi pack remain private-beta release gates. From the box itself:
hostssh capture
…or click Capture now in the dashboard. The first capture is a full snapshot; subsequent ones are incremental and deduplicated, so they finish fast.
Before the image can land anywhere, the Agent needs a storage backend — your bucket, your keys. HostSSH is bring-your-own-storage: Cloudflare R2 (the default, zero-egress restores), AWS S3, MinIO, Backblaze B2, Wasabi, any S3-compatible store, SFTP, or local disk. Add one in the dashboard or on the CLI:
hostssh connections add # wire up R2/S3/MinIO/B2/Wasabi/SFTP/local
hostssh capture # now the image has a home
Every image is encrypted before it leaves the host and integrity-signed, so a leaked bucket is not leaked data. You choose how the key is held:
| Custody | Who holds the key | Trade-off |
|---|---|---|
agent_local | Only the Agent, on the host | Air-gapped; control plane never sees it |
zero_knowledge | You (a passphrase) | Maximum privacy; lose it = lose the backups |
escrow | Control-plane KMS (wrapped) | One-click recovery if you forget the passphrase |
Storage, integrations, and custody are covered end-to-end in Connections (BYOK).
4. Watch it appear in the fleet dashboard
Head back to the Control Panel. Your server now reports live:
| Signal | What it tells you |
|---|---|
| Backup health | Last capture time, integrity check, success/failure |
| Storage | Where images land, how much they use |
| Uptime | Reachability, independent of your hosting provider |
| License | Plan, seats, expiry, last heartbeat |
| Restore-drill | When recoverability was last proven (set up next) |
hostssh status shows the same picture from the command line — health, license, and last
backup at a glance.
5. Schedule a nightly backup + a monthly restore-drill
A one-off capture is a good start. A schedule you never think about is the goal.
Nightly backup
Set a recurring capture in the dashboard (Backups → Schedule) — pick a time, a storage target, and a cadence. The Agent's built-in scheduler runs it cron-style on the box, with no inbound ports and no dependency on the dashboard being online.
By default HostSSH keeps every image — there is no silent deletion. When you're ready to cap storage, set an explicit, previewable retention policy (every prune is logged and dry-run-previewable first). See Connections (BYOK) for retention.
Want a heads-up on failures? Add a notification connection (Slack, email, PagerDuty, webhook) so you hear about a missed backup instead of discovering it during a disaster.
Monthly restore-drill
This is the step most backup tools skip — and the one that matters most. A restore-drill spins up a throwaway target, restores your latest image onto it, checks that the databases and domains actually come back, then tears the target down. It turns "the backup completed" into "the backup restores."
Schedule one in the dashboard (Recovery → Restore-drills → Monthly). HostSSH provisions an ephemeral target, runs the restore, diffs row counts and verifies domains, posts a green/red verification report to your dashboard, and cleans up — at scale-to-zero cost.
Why this exists: the worst time to discover a backup doesn't restore is the day you need it. A monthly drill makes recoverability a fact you can see, not a hope.
Next steps
You now have a self-proving backup. Here's where to go deeper:
- Backups & recovery — restore in place, clone to another
box, and relocate to a fresh VPS with automatic IP rewrite (
migrate --new-ip), plus the three transfer modes (offline download, peer transfer key, managed migration). - Connections (BYOK) — bring your own storage and provider keys; add DNS, notifications, monitoring, and access integrations; set retention.
- Web-SSH & access — browser shells to any server with ephemeral,
short-TTL keys and no open
:22, plus audited sessions.
For how the pieces fit together — the Agent, the control plane, the .hsi image, and the
IP-rewrite engine — see the Architecture and the
Product Spec.