120 lines
3.7 KiB
YAML
120 lines
3.7 KiB
YAML
services:
|
|
lacpass-backend:
|
|
build:
|
|
context: ..
|
|
dockerfile: ./docker/Dockerfile
|
|
container_name: lacpass-backend
|
|
image: ips-backend
|
|
networks:
|
|
- backend
|
|
env_file:
|
|
- ../.env
|
|
environment:
|
|
API_PORT: ${API_PORT:-3000}
|
|
AUTH_INTERNAL_URL: ${AUTH_INTERNAL_URL:-http://auth:8080}
|
|
AUTH_HOSTNAME: ${KEYCLOAK_HOSTNAME:-http://localhost:9083}
|
|
AUTH_REALM: ${KEYCLOAK_REALM:-lacpass}
|
|
AUTH_CLIENT_ID: ${AUTH_CLIENT_ID:-admin-cli}
|
|
# Need to set this after creating a client for Keycloak Admin API access, using service account
|
|
AUTH_CLIENT_SECRET: ${KEYCLOAK_ADMIN_CLIENT_SECRET:-bbU4vnqhqe2AJ32XpdQVRVqfRMA82Hnu}
|
|
AUTH_EMAIL_REDIRECT_URI: ${AUTH_EMAIL_REDIRECT_URI:-ph4happ://open/validated-email}
|
|
AUTH_EMAIL_CLIENT_ID: ${AUTH_EMAIL_CLIENT_ID:-app}
|
|
FHIR_BASE_URL: ${FHIR_BASE_URL:-http://lacpass.create.cl:8080}
|
|
VHL_BASE_URL: ${VHL_BASE_URL:-http://lacpass.create.cl:8182}
|
|
FHIR_MEDIATOR_BASE_URL: ${FHIR_MEDIATOR_BASE_URL:-http://lacpass.create.cl:3000}
|
|
API_SWAGGER: ${API_SWAGGER:-true}
|
|
WALLET_ENABLED: ${WALLET_ENABLED:-0}
|
|
WALLET_URL: ${WALLET_URL:-https://conectathon-balancer.izer.tech/}
|
|
WALLET_IDENTIFIER: ${WALLET_IDENTIFIER:-test}
|
|
WALLET_API_KEY: ${WALLET_API_KEY:-}
|
|
ICVP_VALIDATOR_URL: ${ICVP_VALIDATOR_URL:-http://lacpass.create.cl:7089}
|
|
ports:
|
|
- "9081:3000"
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
depends_on:
|
|
auth:
|
|
condition: service_healthy
|
|
|
|
auth:
|
|
image: quay.io/keycloak/keycloak:26.2.5
|
|
container_name: auth
|
|
env_file:
|
|
- ../.env
|
|
command: ["start", "--import-realm"]
|
|
volumes:
|
|
- ../config/keycloak:/opt/keycloak/data/import
|
|
environment:
|
|
KC_HEALTH_ENABLED: ${KC_HEALTH_ENABLED:-true}
|
|
KC_METRICS_ENABLED: ${KC_METRICS_ENABLED:-true}
|
|
KC_DB_URL_HOST: auth-db
|
|
KC_DB_DATABASE: ${POSTGRES_DB:-keycloak}
|
|
KC_DB_USERNAME: ${POSTGRES_USER:-keycloak}
|
|
KC_DB_PASSWORD: ${POSTGRES_PASS:-p@ssw0rd}
|
|
KC_HOSTNAME: ${KC_HOSTNAME:-localhost}
|
|
KC_HTTP_ENABLED: ${KC_HTTP_ENABLED:-true}
|
|
KC_HOSTNAME_STRICT_HTTPS: ${KC_HOSTNAME_STRICT_HTTPS:-false}
|
|
KC_DB: ${KC_DB:-postgres}
|
|
TZ: ${TZ:-America/Argentina/Buenos_Aires}
|
|
KC_LOG_LEVEL: ${KC_LOG_LEVEL:-DEBUG}
|
|
KC_PROXY_HEADERS: ${KC_PROXY_HEADERS:-xforwarded}
|
|
KEYCLOAK_ADMIN: ${KEYCLOAK_ADMIN:-admin}
|
|
KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD:-adminpassword}
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "exec 3<>/dev/tcp/localhost/9000 && echo -e 'GET /health/ready HTTP/1.0\\r\\nHost: localhost\\r\\n\\r\\n' >&3 && grep -q '200 OK' <&3"]
|
|
interval: 15s
|
|
timeout: 5s
|
|
retries: 10
|
|
start_period: 40s
|
|
ports:
|
|
- "9083:8080"
|
|
networks:
|
|
- backend
|
|
- auth
|
|
depends_on:
|
|
auth-db:
|
|
condition: service_healthy
|
|
|
|
|
|
auth-db:
|
|
image: postgres:17.5-alpine
|
|
container_name: auth-db
|
|
volumes:
|
|
- auth-data:/var/lib/postgresql/data
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: ${POSTGRES_DB:-keycloak}
|
|
POSTGRES_USER: ${POSTGRES_USER:-keycloak}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASS:-p@ssw0rd}
|
|
healthcheck:
|
|
test:
|
|
[
|
|
"CMD-SHELL",
|
|
"pg_isready -U ${POSTGRES_USER:-keycloak} -d ${POSTGRES_DB:-keycloak} -h localhost",
|
|
]
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 5
|
|
networks:
|
|
- auth
|
|
|
|
mailcatcher:
|
|
image: haravich/fake-smtp-server:20250615
|
|
container_name: mailcatcher
|
|
platform: "linux/amd64"
|
|
ports:
|
|
- "25:1025"
|
|
- "9082:1080"
|
|
networks:
|
|
- auth
|
|
|
|
volumes:
|
|
auth-data:
|
|
|
|
networks:
|
|
auth:
|
|
backend:
|