version: "3.9" # Example Docker Compose configuration for swissoid-back Redis requirement # This Redis service is required for session storage in swissoid-back services: # Redis service for session storage # Required by swissoid-back for: # - Session management (storing user sessions) # - JTI replay prevention (single-use token enforcement) # - Transit token storage (temporary tokens during login flow) swissoid-redis: image: redis:latest container_name: ${REDIS_HOST:-swissoid-redis} expose: - 6379 volumes: - redis:/data restart: always healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 30s timeout: 10s retries: 3 networks: - app_network # Example application using swissoid-back # your-app: # image: your-app:latest # environment: # # Redis configuration for swissoid-back # REDIS_HOST: ${REDIS_HOST:-swissoid-redis} # REDIS_PORT: ${REDIS_PORT:-6379} # REDIS_DB: ${REDIS_DB:-0} # # # SwissOID configuration # SWISSOID_ISSUER: ${SWISSOID_ISSUER} # SWISSOID_CLIENT_ID: ${SWISSOID_CLIENT_ID} # SWISSOID_CLIENT_SECRET: ${SWISSOID_CLIENT_SECRET} # SWISSOID_TOKEN_ENDPOINT: ${SWISSOID_TOKEN_ENDPOINT} # SWISSOID_JWKS_URI: ${SWISSOID_JWKS_URI} # # # RP configuration # COOKIE_DOMAIN: ${COOKIE_DOMAIN} # RP_FRONTEND_URL: ${RP_FRONTEND_URL} # SESSION_COOKIE_NAME: ${SESSION_COOKIE_NAME} # SESSION_SECRET: ${SESSION_SECRET} # depends_on: # - swissoid-redis # networks: # - app_network volumes: redis: name: "swissoid-redis-volume" networks: app_network: name: swissoid-app_network external: false