Skip to content

Getting Started

Get a working Get2Dial environment running locally: bring up the central stack, apply the schema, create the first admin and tenant, and sign in.

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.

Terminal window
# Creates deploy/compose/central/.env from .env.example on first run.
make up-central

Update the changeme_* values in deploy/compose/central/.env before exposing the stack anywhere. The defaults that matter on first run:

Terminal window
POSTGRES_PASSWORD=changeme_postgres_password
REDIS_PASSWORD=changeme_redis_password
AUTH_JWT_SECRET=changeme_jwt_secret_at_least_16_bytes_long
HTTP_ALLOWED_ORIGINS=http://localhost:3001,http://localhost:3000

1. Start the stack (builds images, waits for healthy):

Terminal window
make up-central # infra + migrate + control + callengine + observability
make up-web # (re)build and start the tenant app + admin console

2. Create the first platform admin and a tenant (the migrator runs automatically; bootstrap is explicit and idempotent):

Terminal window
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 state

3. 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:

Terminal window
make logs-central
make down-central # stop; add down-central-v to also drop volumes
  • Migrations run as a one-shot migrate service before the app services; they are idempotent and safe to re-run (make migrate-status shows 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 via deploy/compose/edge-node).