networks: traefik-net: name: traefik-net external: true volumes: keycloak-pg-data: name: keycloak-pg-data keycloak-pg-backup: name: keycloak-pg-backup services: backup: image: prodrigestivill/postgres-backup-local:15 depends_on: - db volumes: - keycloak-pg-backup:/backups environment: - POSTGRES_EXTRA_OPTS=-Z 6 -F c - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_DB=${POSTGRES_DATABASE} - POSTGRES_HOST=db db: image: postgres:15 volumes: - keycloak-pg-data:/var/lib/postgresql/data restart: unless-stopped networks: - default environment: - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_DB=${POSTGRES_DATABASE} keycloak: image: quay.io/keycloak/keycloak:25.0.2 depends_on: - db restart: unless-stopped command: - start networks: - traefik-net - default env_file: - .env deploy: labels: - traefik.enable=true - traefik.docker.network=traefik-net - traefik.http.routers.keycloak.rule=Host(`${HOST}`) - traefik.http.routers.keycloak.entrypoints=websecure - traefik.http.routers.keycloak.tls.certresolver=le - traefik.http.services.keycloak.loadbalancer.server.port=8080