Step 1 — Install OrcheStack
OrcheStack ships as Docker images on Docker Hub plus a compose file on GitHub. Most people install via a single installer script; power users clone the repo instead.
Prerequisites
- Docker 24+ and Docker Compose v2.20+
- Host machine with at least 4 GB RAM and 20 GB disk free (the base install uses ~2 GB)
- Linux, macOS, or Windows with WSL2. Any POSIX-style host works.
- Ports 80 and 443 available on the host (OrcheStack's reverse proxy binds here)
Working behind a firewall? You'll need outbound HTTPS to hub.docker.com (Docker images) and orchestack.africa (installer + compose file). Everything else is internal.
Where OrcheStack lives
OrcheStack is three artifacts in three places — understanding the split makes the install paths below obvious:
- Docker Hub (
hub.docker.com/r/tripleaceme/orchestack-*) — our prebuilt images:tripleaceme/orchestack-auth(signup, login and setup wizard),tripleaceme/orchestack-orchestrator(hot/cold service lifecycle daemon),tripleaceme/orchestack-dashboard(administrator dashboard), andtripleaceme/orchestack-airflow(Apache Airflow with dbt + Cosmos preinstalled). These are whatdocker composepulls. - GitHub (
github.com/tripleaceme/orchestack-public) — source of truth for the compose file, the service generator, docs, and the setup skeleton. This is what you clone if you want to read, fork, or contribute. - orchestack.africa — marketing + docs + the installer script you're about to run. The installer is a thin shell script that pulls from the other two places.
Pick an install option below based on how much you want to see under the hood.
Option 1 — Installer script (recommended)
Single command. Good for production hosts, demo laptops, and CI runners that just need OrcheStack running.
curl -fsSL https://orchestack.africa/install | sh
The installer creates an orchestack/ directory in your current path, downloads the latest pinned docker-compose.yml, runs docker compose up -d, and prints the URL to visit when the control plane is up. It prompts before overwriting an existing install.
Pin to a specific version by passing ORCHESTACK_VERSION=1.2.0 curl ... | sh. Default is the latest stable tag.
Option 2 — Clone the GitHub repo
For operators who want to read every file before running it, or who plan to fork and customise.
git clone https://github.com/tripleaceme/orchestack-public cd orchestack docker compose up -d
Same result as option 1, but the compose file and all supporting scripts live in a git-tracked folder you own. Updates happen via git pull + docker compose pull.
Option 3 — Manual compose
If you want to inspect or edit the compose file before starting anything — CI pipelines, Kubernetes migrations, airgapped hosts.
mkdir orchestack && cd orchestack curl -fsSL https://raw.githubusercontent.com/tripleaceme/orchestack-public/main/docker-compose.yml -o docker-compose.yml # inspect / edit as needed docker compose up -d
This is what options 1 and 2 do under the hood. Use it when you need to change the compose file (e.g. change exposed ports, add a volume mount) before the first boot.
Verify the install
All three options end at the same place. You should see:
[+] Running 4/4 ✔ Container orchestack-proxy Started ✔ Container orchestack-auth Started ✔ Container orchestack-postgres Started ✔ Container orchestack-dashboard Started
Only four containers at this stage. No Airbyte, dbt, Metabase, or any other service is pulled yet — those come after you configure the platform.
Open a browser and go to http://localhost. You should land on the OrcheStack signup page (because no users exist yet).
Port conflict? If something else is using port 80 on the host, edit the PROXY_HTTP_PORT variable in your .env file and restart.