Skip to content

Local Docker Compose

Available for local development

The repository-root Compose environment runs Katra Client, Katra Server, and the selected self-hosted foundation. It is the verified development path, not the production deployment architecture.

Terminal window
docker compose up --build

Wait for the Server, Client, PostgreSQL, Redis, Meilisearch, Reverb, Horizon, and LiveKit health checks to settle.

Terminal window
docker compose ps
docker compose exec server php artisan katra:foundation:check

Run the complete project checks when validating a change:

Terminal window
docker compose exec server composer validate --strict
docker compose exec server vendor/bin/pint --test
docker compose exec server php artisan test
docker compose exec client npm run check
docker compose exec client npm run build
docker compose exec client npm run test:sites

Open http://localhost:5173/register. Provide first name, last name, email address, and a password of at least 12 characters.

Open registration is appropriate only for this trusted local environment. A shared installation requires the planned installer, invitation policy, TLS, and secure cookie configuration.

After creating exactly one non-demo account:

Terminal window
docker compose exec server php artisan db:seed --class=LocalCommunicationDemoSeeder

The seeder creates disposable local communication records and never runs during normal startup, migrations, registration, or production deployment.

Terminal window
docker compose down
Terminal window
docker compose down --volumes
docker compose up --build

The reset permanently deletes Compose-managed PostgreSQL data, Redis state, Meilisearch indexes, Mailpit messages, and dependency volumes. Use it only when the local data is disposable or backed up.