Ionize Docs
Get Started

Quickstart with ionctl

Local Ionize stack in one command

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

Run it

npx @nannier/ionctl 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 Dashboard, Auth, 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:3000Auth CIAM (customer login UI)
http://localhost:3001Dashboard CIAM (customer admin dashboard)
http://localhost:4000Auth IAM (employee login UI)
http://localhost:4001Dashboard 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 @nannier/ionctl destroy

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

What ionctl deploy doesn't do

  • It does not deploy to production. For production, use Deploy.
  • 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