Welcome to OwnStack
OwnStack is a control plane for deploying apps onto stacks you own. Heroku-style ergonomics — git push, scale, add-ons, automatic SSL — on infrastructure that lives in your AWS account, your GCP project, or any host with SSH access.
Why OwnStack exists
Heroku is wonderful at the feel: deploy by pushing to a remote, scale by typing ps:scale worker=2, add a database with one command. But it bills per dyno and runs on someone else's hardware. The escape route — running dokku on your own server — gets you the engine, but you also inherit its quirks: app.json formation locks, password drift after dump-restores, multi-stack orchestration you have to script yourself.
OwnStack is the layer above dokku. It runs on your servers (or on managed hosts you provision through it), and it papers over the rough edges so the day-to-day workflow feels like Heroku again: a CLI, a UI, and one obvious way to do each thing.
The mental model
Five things to know:
| Concept | What it is |
|---|---|
| Control plane | Central service (hosted at api.ownstack.org, or self-hosted) that holds your account, your stacks, your apps, and runs the deploy worker. |
| Stack | A server (or cluster) that runs your apps. Lives in your cloud account; OwnStack provisions it via SSH. |
| App | Code in a repo, a Procfile, environment variables, optional databases. Apps deploy to one or more stacks. |
| Profile | A saved control-plane endpoint plus an auth token. Switch profiles to talk to different control planes. |
| CLI | ownstack — the everyday driver for deploying, scaling, viewing logs, managing config. |
What's next
- Install the CLI — five minutes.
- Deploy your first app — about fifteen minutes, end-to-end.
- Migrate from Heroku — if you're coming from there.
If you want a deeper read, jump to Apps or Stacks next; the rest of the manual fans out from there.