Bring-your-own (SSH) stacks

If you already have a host you can SSH into — bare metal, DigitalOcean, Hetzner, Vultr, Linode, your homelab — turn it into an OwnStack stack with one credential and one form. No cloud-provider integration required.

Host requirements

  • Ubuntu 22.04 LTS (other Debian-derivatives may work; only 22.04 is tested and supported).
  • 2 vCPU, 2 GiB RAM minimum. 4 vCPU / 4 GiB for real workloads.
  • 30 GiB disk minimum; 50 GiB recommended.
  • A public IP (or anything routable from the control plane).
  • Ports 22, 80, 443 open inbound.
  • SSH access as a user with passwordless sudo (typically root or ubuntu).

Create the stack

In the dashboard, Stacks → New → SSH. Paste:

  • Hostname or IP.
  • SSH username (defaults to ubuntu).
  • SSH private key (the corresponding public key must already be in ~/.ssh/authorized_keys on the host).

OwnStack tests the connection, then offers two paths:

Path A — let OwnStack provision dokku

If the host is a fresh Ubuntu, OwnStack runs the dokku bootstrap (the same script the AWS/GCP path runs). Takes 3–5 minutes; the stack flips to provisioned when done.

Path B — adopt an existing dokku host

If the host already has dokku installed, mark Already provisioned. OwnStack registers it as a stack but skips bootstrap. Apps already on the host stay where they are; you can adopt them into OwnStack later via ownstack import.

SSH key handling

The private key is encrypted at rest in the control plane and used only for control-plane → stack operations (deploys, scales, log fetches). It is not exposed via the API. You can rotate by creating a new pair on the host and updating the stack's credentials.

What you maintain

SSH-provider stacks shift some responsibility to you:

You handleOwnStack handles
Host OS updates (unattended-upgrades recommended)Dokku version updates (via ownstack stack patches apply)
Disk expansionPlugin installs and config
Hypervisor / hardware lifecycleApp deploy + lifecycle
Network & firewall (host-side)nginx vhost & SSL
Backups, if not using ownstack stack backupBackup orchestration if you opt in to stack backup

When to pick SSH over AWS/GCP

  • You already have a server you want to keep using.
  • You're on a provider OwnStack doesn't integrate with directly (Hetzner, OVH bare metal, DigitalOcean Droplets).
  • You want the control plane to never have IAM access to your cloud account.
  • Homelab / on-prem.

Decommissioning

$ ownstack stack destroy <stack>

For SSH stacks, this only de-registers the stack from OwnStack — the underlying host is yours, OwnStack doesn't touch it. Run dokku-uninstall manually if you want to remove dokku from the host.