services: keycloak: image: hub.anxietyprime.de/swa-jodel/keycloak:latest container_name: swa-keycloak command: ["start"] env_file: - ./.keycloak-env - ./.hostname environment: KC_DB: postgres KC_DB_SCHEMA: public KC_DB_URL: jdbc:postgresql://keycloak-db/keycloak #KC_HTTP_RELATIVE_PATH: /auth PROXY_ADDRESS_FORWARDING: true KC_PROXY: edge KC_HOSTNAME_STRICT: false KC_HTTP_ENABLED: true expose: - 8080 networks: swa-public: swa-keycloak: ipv4_address: 10.42.0.3 swa-keycloak-db: ipv4_address: 10.42.0.10 labels: - "traefik.enable=true" - "traefik.http.routers.keycloak.rule=Host(`keycloak.local.anxietyprime.de`)" - "traefik.http.routers.keycloak.entrypoints=websecure" - "traefik.http.routers.keycloak.tls.domains[0].main=keycloak.local.anxietyprime.de" # - "traefik.http.routers.keycloak.tls.certresolver=letsencrypt" - "traefik.http.services.keycloak.loadbalancer.server.port=8080" - "traefik.http.routers.keycloak.service=keycloak" healthcheck: test: echo "" interval: 5s timeout: 5s retries: 30 depends_on: keycloak-db: condition: service_healthy restart: always keycloak-db: image: hub.anxietyprime.de/swa-jodel/keycloak-db:latest container_name: swa-keycloak-db env_file: - ./.keycloak-env - ./.hostname volumes: - ./keycloak-db/:/var/lib/postgresql/data expose: - 5432 networks: swa-keycloak-db: ipv4_address: 10.42.0.11 healthcheck: test: pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB start_period: 5s interval: 5s timeout: 5s retries: 30 restart: always frontend: image: hub.anxietyprime.de/swa-jodel/frontend:latest container_name: swa-frontend expose: - 80 networks: swa-public: labels: - "traefik.enable=true" - "traefik.http.routers.web-jodel.rule=Host(`jodel.local.anxietyprime.de`)" - "traefik.http.routers.web-jodel.entrypoints=websecure" - "traefik.http.routers.web-jodel.tls.domains[0].main=jodel.local.anxietyprime.de" # - "traefik.http.routers.web-jodel.tls.certresolver=letsencrypt" - "traefik.http.services.web-jodel.loadbalancer.server.port=80" - "traefik.http.routers.web-jodel.service=web-jodel" healthcheck: test: echo "" interval: 5s timeout: 5s retries: 30 depends_on: backend: condition: service_healthy restart: always backend: image: hub.anxietyprime.de/swa-jodel/backend:latest container_name: swa-backend env_file: - ./.backend-env expose: - 8080 networks: swa-public: swa-keycloak: ipv4_address: 10.42.0.2 swa-database: ipv4_address: 10.42.0.18 labels: - "traefik.enable=true" - "traefik.http.routers.api-jodel.rule=Host(`api.jodel.local.anxietyprime.de`)" - "traefik.http.routers.api-jodel.entrypoints=websecure" - "traefik.http.routers.api-jodel.tls.domains[0].main=api.jodel.local.anxietyprime.de" # - "traefik.http.routers.api-jodel.tls.certresolver=letsencrypt" - "traefik.http.services.api-jodel.loadbalancer.server.port=8080" - "traefik.http.routers.api-jodel.service=api-jodel" healthcheck: test: echo "" interval: 5s timeout: 5s retries: 30 depends_on: keycloak: condition: service_healthy database: condition: service_healthy restart: always database: image: hub.anxietyprime.de/swa-jodel/database:latest container_name: swa-database env_file: - ./.backend-env volumes: - ./backend-db/:/var/lib/postgresql/data expose: - 5432 networks: swa-database: ipv4_address: 10.42.0.19 healthcheck: test: pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB start_period: 5s interval: 5s timeout: 5s retries: 30 restart: always networks: default: external: false swa-public: external: name: traefik swa-keycloak: name: swa-keycloak ipam: config: - subnet: 10.42.0.0/29 internal: true swa-keycloak-db: name: swa-keycloak-db ipam: config: - subnet: 10.42.0.8/29 internal: true swa-database: name: swa-database ipam: config: - subnet: 10.42.0.16/29 internal: true