Local Development

Target reader: developers running the Alpha stack locally.

Docker Compose starts PostgreSQL, MinIO, both Go APIs, the Developer Console, and the docs site for local E2E.

Account mail is captured locally by Mailpit at http://localhost:8025 (SMTP port 1025); no external relay is configured. Seed users are explicitly verified synthetic fixtures. Real new registrations follow email verification. Old populated Alpha datasets are rejected before provisioning; use a fresh local dataset. Existing .env files are not overwritten.

Minimal example

cd ../echo-nebula-infra
cp .env.example .env
./scripts/dev-apps-up.sh
./scripts/wait-for-services.sh
./scripts/e2e-all.sh
./scripts/dev-down.sh

dev-apps-up.sh is the full-stack entry point: it starts PostgreSQL and MinIO, initializes the private bucket, applies unapplied migrations, installs Console/Docs dependencies in their containers, and starts both APIs plus the web apps. Use dev-up.sh only for dependency-only work. wait-for-services.sh and e2e-all.sh require both API readiness components to be ready; /healthz alone is not acceptance evidence.

Common mistakes

Next step

Read the full Local Docker Compose guide.