Skip to content

Connect an Existing VPS

This path creates a local profile, prepares its Git-backed configuration, and runs bootstrap, hardening, networking, proxy, and observability as one visible plan.

You need a supported fresh VPS, working SSH key, domain, and DNS access. Start Servestead Web and keep the CLI process running.

Setup Workbench showing Connect existing VPS as the recommended setup path
Choose Connect existing VPS for the most direct first run; saved profiles can be resumed from the same screen.

Open Setup, choose Connect existing VPS, and select Continue.

Complete the Profile step:

Field What to enter
Profile name A recognizable local name such as production-vps.
Server IP or hostname The fresh server’s public address.
Private key A path on this machine, such as ~/.ssh/servestead_ed25519.
Base domain The domain Servestead will use for Pangolin and application routes.
Let’s Encrypt email The certificate contact address.

Open Connection and credential overrides only when the server does not use the default initial user root, the administrative user servestead, or the certificate email for Pangolin administration.

Select Continue to GitOps.

Pick one repository mode:

  • Create local repository uses the profile’s default configuration location.
  • Use existing local checkout uses a repository you already own.
  • Clone GitHub repository clones an HTTPS URL. Add a PAT only when the repository is private or anonymous rate limits are a concern.

Servestead deploys committed configuration. Repository preparation happens before any SSH command starts.

On Review and confirm, verify the server address, users, domain, repository action, and planned stages. Nothing remote has run yet.

Select Run after review only when the plan matches your intent.

The run view shows status, progress, and live logs. If Servestead identifies a recoverable problem, use the inline credential or repository guidance, then select Retry. Use Cancel safely when you need to stop a running plan.

The profile reports complete, the Command Center reports a healthy environment, and Profiles shows clean GitOps state plus the completed run.

If a stage fails, open Common issues and start with the exact failed stage and its saved log.

For a direct interactive run:

Terminal window
./bin/servestead setup --ip 203.0.113.10

Use --fresh only when you intentionally want a new local profile for a reused address. Servestead preserves the prior profile instead of overwriting it.