Getting Started
Purpose
Section titled “Purpose”Get a working Get2Dial environment running locally: bring up the central stack, apply the schema, create the first admin and tenant, and sign in.
Overview
Section titled “Overview”The central stack (deploy/compose/central) is the management plane and is
meant for local development and single-host bring-up — all TCP, no SIP/RTP (the
voice path lives on an edge). It bundles PostgreSQL +
TimescaleDB, Redis, NATS, MinIO, the one-shot migrator, the control and
callengine Go services, Prometheus + Grafana, and the two web apps.
A Makefile wraps the common Docker Compose commands.
Configuration
Section titled “Configuration”# Creates deploy/compose/central/.env from .env.example on first run.make up-centralUpdate the changeme_* values in deploy/compose/central/.env before exposing
the stack anywhere. The defaults that matter on first run:
POSTGRES_PASSWORD=changeme_postgres_passwordREDIS_PASSWORD=changeme_redis_passwordAUTH_JWT_SECRET=changeme_jwt_secret_at_least_16_bytes_longHTTP_ALLOWED_ORIGINS=http://localhost:3001,http://localhost:3000Examples
Section titled “Examples”1. Start the stack (builds images, waits for healthy):
make up-central # infra + migrate + control + callengine + observabilitymake up-web # (re)build and start the tenant app + admin console2. Create the first platform admin and a tenant (the migrator runs automatically; bootstrap is explicit and idempotent):
BOOTSTRAP_PLATFORM_ADMIN_EMAIL=admin@example.com \BOOTSTRAP_PLATFORM_ADMIN_PASSWORD='at-least-12-chars' \ make bootstrap-platform-admin
BOOTSTRAP_TENANT_NAME='Acme' \BOOTSTRAP_TENANT_DOMAIN='acme.get2dial.local' \BOOTSTRAP_TENANT_ADMIN_EMAIL='owner@acme.example' \BOOTSTRAP_TENANT_ADMIN_PASSWORD='at-least-12-chars' \ make bootstrap-tenant
make bootstrap-status # inspect bootstrap state3. Reach the services:
| Service | URL |
|---|---|
| Control API | http://localhost:8080/api/v1 (health: /healthz) |
| Tenant app | http://localhost:3001 |
| Admin console | http://localhost:3002 |
| Grafana | http://localhost:3000 |
| Prometheus | http://localhost:9090 |
| MinIO console | http://localhost:9001 |
4. Tail logs / tear down:
make logs-centralmake down-central # stop; add down-central-v to also drop volumes- Migrations run as a one-shot
migrateservice before the app services; they are idempotent and safe to re-run (make migrate-statusshows the version). - The full bootstrap lifecycle and every
BOOTSTRAP_*variable are documented in the Bootstrap runbook. - This stack is development-oriented. Production runs from pre-built GHCR
images via
deploy/compose/app-node(and edges viadeploy/compose/edge-node).