Skip to content

Provision with DigitalOcean

Servestead can create one Ubuntu DigitalOcean Droplet, wait for its public IPv4 address, and save it as a local profile. Provisioning and server setup are separate actions. The new Droplet is not bootstrapped or hardened until you review and run setup.

Terminal window
./bin/servestead setup

Choose Provision a new DigitalOcean VPS. The flow asks for a token, Droplet name, and local Servestead key before it loads:

  • Available regions.
  • Sizes with CPU, memory, disk, hourly price, and monthly price.
  • Supported Ubuntu images.
  • Existing DigitalOcean SSH keys, plus an option to upload the matching local public key.

The review screen requires the exact displayed phrase. After DigitalOcean assigns an address, Servestead saves the cloud metadata and opens the new profile dashboard. If local persistence fails after creation, retrying saves the already-created Droplet instead of creating another one.

You can provide the token for the current session through the masked prompt or the environment:

Terminal window
export DIGITALOCEAN_ACCESS_TOKEN='...'
./bin/servestead setup

Servestead does not save the token in profile metadata or profile secrets.

Provisioning stops after it saves the profile. From the dashboard, select Bootstrap, Harden, or Platform with j and k, then press r. Use v to review the full setup plan when you want to run the complete sequence.

From a DigitalOcean-backed profile, press o.

  • r requests a Droplet restart after confirmation.
  • d opens the destroy review and requires its exact displayed phrase.
  • Destroying the Droplet keeps the local profile, secrets, state, and logs. The profile records the cloud resource as destroyed.
  • ctrl+c requests cancellation while a provider action is running.

Delete unused Droplets when testing is complete.

Use the direct command only when you already know the provider identifiers and your automation supplies its own review boundary:

Terminal window
./bin/servestead provision \
--provider digitalocean \
--name production-vps \
--ssh-key provider-key-id-or-fingerprint

Its defaults are region nyc3, size s-1vcpu-1gb, and image ubuntu-24-04-x64. The command creates a billable Droplet and prints its address. It does not save a completed setup plan.