Stacks

A stack is a host (or cluster) that runs apps. You own the underlying server — it lives in your AWS account, your GCP project, or any provider where you have SSH access. OwnStack provisions and configures the dokku layer on top.

Provider types

ProviderUsed for
AWSEC2 instance(s) provisioned from your AWS credentials.
GCPGCE instance(s) in your GCP project.
OpenStackPrivate clouds with an OpenStack API.
Bring-your-own (SSH)Any Linux host you can SSH into. Bare metal, DigitalOcean, Hetzner, on-prem, anything.
Localownstack local stack start runs dokku in a Docker container on your machine for development.

What's installed on every stack

OwnStack provisioning ensures a working dokku environment — you don't install anything by hand:

  • dokku — the underlying PaaS engine.
  • Standard plugins — postgres, mysql, mongo, redis, letsencrypt, http-auth.
  • nginx — managed by dokku for routing and SSL termination.
  • An SSH endpoint — the control plane uses this to push deploys, run dokku commands, fetch logs, and configure the app.

You can install additional dokku plugins as needed:

$ ownstack stack plugin-install --stack=<stack> clamav

Provisioning

Most users create stacks in the dashboard (Stacks → New): pick a provider, add credentials, choose a region, hit provision. The control plane creates the instance, installs dokku, configures nginx, runs healthchecks, and marks the stack ready.

Existing dokku hosts can be imported as SSH-provider stacks — see Bring-your-own (SSH).

What lives on a stack

ResourceWhere it lives
App containersDocker on the stack host. dokku ps:report <app> shows the running set.
Postgres / MySQL / Mongo / Redis servicesDocker containers on the same host, managed by the matching dokku plugin. Data on the host's disk.
nginx vhosts/home/dokku/<app>/nginx.conf
SSL certs/home/dokku/<app>/tls/ (or letsencrypt's path).
App config vars/home/dokku/<app>/ENV (don't edit by hand — use ownstack config).

Inspecting

$ ownstack stacks                                        # list all stacks
$ ownstack stack data databases <stack>                  # databases on the stack
$ ownstack stack data volumes <stack>                    # persistent volumes
$ ownstack stack disk-usage <stack>                      # df + dokku disk via SSH
$ ownstack stack patches <stack>                         # pending dokku/system patches

Scaling a stack

Two paths:

  • Vertical — bigger instance type. Provisioned in your cloud account; OwnStack respects whatever you set there. Resize is a stack-restart event, so plan a window.
  • Horizontal — multiple stacks, with apps deploying to several. Combined with a load balancer in front (often the cloud provider's), you get an active-active topology.

OwnStack itself does not auto-scale stacks. That's a deliberate choice: stack lifecycle should be visible and explicit.

Backups

Stacks support manual and scheduled backups via ownstack stack backup. Backups capture databases and persistent volumes; storage destination (typically S3) is configured per-stack. See Stack backups.