Olympus Docs
Get Started

Quickstart with octl

Local Olympus stack in one command

octl is the local-development CLI. One command starts every Olympus service in the correct order, runs migrations, seeds an admin identity, and prints access URLs.

Run it

npx @olympusoss/octl deploy

That's the whole command. It will:

  1. Detect and install dependencies, Podman, podman-compose, and kubectl via Homebrew on macOS if not present. (On Linux, install Podman yourself before running.)
  2. Initialize and start the Podman machine if one isn't running.
  3. Build dev images for Athena, Hera, and Site if they aren't cached.
  4. Start services in dependency order, Postgres → Kratos/Hydra migrations → Ory services → apps → seed.
  5. Verify health of every service.
  6. Print access URLs and test credentials.

End-to-end, on a warm cache, this takes about 90 seconds.

What you get

Eighteen running containers, exposed at:

URLService
http://localhost:2000Site (this docs page, brochure, OAuth2 playground)
http://localhost:3000Hera CIAM (customer login UI)
http://localhost:3001Athena CIAM (customer admin dashboard)
http://localhost:4000Hera IAM (employee login UI)
http://localhost:4001Athena IAM (employee admin dashboard)
http://localhost:5433pgAdmin (SSO via IAM)
http://localhost:5434MailSlurper (captured outbound email)

See Access URLs and credentials for the full list including admin/public API ports.

Tearing down

npx @olympusoss/octl destroy

Stops every container, removes volumes, and removes the dev images. The Podman machine itself is left running.

What octl deploy doesn't do

  • It does not deploy to production. For production, use Daedalus.
  • It does not configure email delivery. Outbound emails are captured by MailSlurper at http://localhost:5434.
  • It does not enable captcha. Turnstile is disabled in dev.

Where next

On this page