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(typicallyrootorubuntu).
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_keyson 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.
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 handle | OwnStack handles |
|---|---|
Host OS updates (unattended-upgrades recommended) | Dokku version updates (via ownstack stack patches apply) |
| Disk expansion | Plugin installs and config |
| Hypervisor / hardware lifecycle | App deploy + lifecycle |
| Network & firewall (host-side) | nginx vhost & SSL |
Backups, if not using ownstack stack backup | Backup 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.