Local development infrastructure for apps that need:
- Redis
- RedisInsight
- RabbitMQ
- PostgreSQL
- pgvector
- Keycloak
- TigerBeetle
This stack is designed for local development only and is managed with Docker Compose.
docker-compose.yml— main local stack.env— your local configuration values.env.example— safe template for setuppostgres/init/01-init-multiple-dbs.sh— first-run PostgreSQL bootstrapSTACK_DOCUMENTATION.md— detailed architecture and explanationSTACK_REFERENCE_EXTRAS.md— diagrams, examples, and troubleshooting
cd ~/Documents/Local-docker-stack
cp .env.example .env
# edit .env if needed
docker compose up -d- Redis:
localhost:6379 - RedisInsight:
http://localhost:5540 - RabbitMQ:
localhost:5672 - RabbitMQ UI:
http://localhost:15672 - PostgreSQL:
localhost:5432 - Keycloak:
http://localhost:8080 - Keycloak Admin:
http://localhost:8080/admin/ - TigerBeetle:
localhost:4555
Keycloak local login defaults come from .env:
username: admin
password: admin
Keycloak stores its internal tables in the separate local database nexudy_keycloak_db.
Docker stack status from docker ps:
docker compose up -dFormat the local TigerBeetle data volume once:
docker compose --profile tigerbeetle-format run --rm tigerbeetle-formatThen start the service:
docker compose up -d tigerbeetleTigerBeetle listens on localhost:4555 for local apps and tests.
docker compose downdocker compose down -vdocker compose configdocker compose logs -f- PostgreSQL extra databases are created from
APP_DATABASES. - The init script runs only on the first Postgres volume initialization.
- If you change bootstrap DB names later, recreate volumes or create the DBs manually.
- If an existing Postgres volume is missing the Keycloak DB, create it once:
docker compose exec -T postgres psql -U postgres -d postgres -c "CREATE DATABASE nexudy_keycloak_db"
docker compose restart keycloakgit init
git add .
git commit -m "Initial local docker stack"- See
STACK_DOCUMENTATION.mdfor detailed explanations. - See
STACK_REFERENCE_EXTRAS.mdfor diagrams and app connection examples.
