Deploy / Build / Administer
Harden a self-hosted Server
Bound infrastructure authority, network exposure, credentials, and recovery material around one owned Server.
Self-hosting removes an unknown SaaS operator from the trust boundary. It does not remove the need to secure the host, SSH authority, DNS, TLS, owner account, model providers, and recovery copies.
Minimum boundary
- Use a supported Linux host with current security updates and a dedicated noninteractive SSH identity.
- Grant the operator account only the host and Docker authority the lifecycle requires. Anyone who controls Docker effectively controls the Server.
- Verify the SSH host-key fingerprint through a separate trusted channel and enforce strict host-key checking.
- Expose only the ports required for SSH and the configured HTTPS path.
- Require a domain and explicit ACME email for Let's Encrypt profiles; verify DNS before deployment.
- Store owner credentials and recovery codes in protected operator storage, separate from the host.
- Retain verified recovery bundles off the host. Same-disk backup is not host-loss recovery.
nautilo doctor remote circle-server
nautilo profile current
nautilo statusdoctor remote checks profile consistency, DNS observations, SSH reachability,
remote-path access, Docker, and transfer prerequisites. It does not change DNS,
firewalls, /etc/hosts, provider policy, or the host's patch state.
Prove the boundary
- An unknown or changed host key must fail closed.
- An unprivileged host account must not gain Docker lifecycle authority.
- HTTPS must present the expected hostname and certificate.
profile currentmust identify the intended instance without printing secrets.- Owner sign-in and a model-backed turn must work through the public route.
- A verified recovery bundle must exist somewhere the loss of this host cannot erase.