infra(docker): add Docker Compose with PostgreSQL and Keycloak
- Add docker-compose.yml (v3.9) with postgres:16-alpine and keycloak:26.1 services - Configure PostgreSQL with separate workclub and keycloak databases - Setup Keycloak with database backend, admin user, and realm import capability - Create PostgreSQL init script to provision development databases and users - Add placeholder realm-export.json for Keycloak realm configuration - Configure healthchecks and app-network bridge for service discovery - Document configuration and patterns in learnings.md
This commit is contained in:
23
infra/postgres/init.sql
Normal file
23
infra/postgres/init.sql
Normal file
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
# PostgreSQL initialization script for development environment
|
||||
# Creates: workclub (application data), keycloak (Keycloak metadata)
|
||||
|
||||
set -e
|
||||
|
||||
# Create application database
|
||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
CREATE USER app WITH PASSWORD 'devpass';
|
||||
CREATE DATABASE workclub OWNER app;
|
||||
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO app;
|
||||
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO app;
|
||||
EOSQL
|
||||
|
||||
# Create Keycloak database
|
||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
CREATE USER keycloak WITH PASSWORD 'keycloakpass';
|
||||
CREATE DATABASE keycloak OWNER keycloak;
|
||||
ALTER DEFAULT PRIVILEGES IN DATABASE keycloak GRANT ALL ON TABLES TO keycloak;
|
||||
ALTER DEFAULT PRIVILEGES IN DATABASE keycloak GRANT ALL ON SEQUENCES TO keycloak;
|
||||
EOSQL
|
||||
|
||||
echo "PostgreSQL initialization complete: workclub and keycloak databases created"
|
||||
Reference in New Issue
Block a user