docker-compose

 avatar
unknown
plain_text
a month ago
2.6 kB
6
Indexable
services:

  reverse-proxy:
    image: traefik:v3.1
    command:
      - "--log.level=DEBUG"
      - "--providers.docker"
      - "--providers.docker.exposedbydefault=false"
      - "--certificatesresolvers.myresolver.acme.tlschallenge=true"
      - "--certificatesresolvers.myresolver.acme.email=email@domain.cloud"
      - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme-v1.json"
      - "--entrypoints.web.address=:8080"
      - "--entrypoints.websecure.address=:443"
      - "--entrypoints.websecure.asDefault=true"
      - "--entrypoints.web.http.redirections.entrypoint.to=websecure"
      - "--entrypoints.web.http.redirections.entrypoint.scheme=https"
    ports:
      - "8080:8080"
      - "443:443"
    volumes:
      - letsencrypt:/letsencrypt
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      - webnet

  kcdb:
    container_name: kcdb
    image: postgres:16.2
    restart: unless-stopped
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
    expose:
      - 5432
    volumes:
      - pgdata:/var/lib/postgresql/data
    networks:
      - webnet

  keycloak:
    image: quay.io/keycloak/keycloak:26.0.7
    command: start
    environment:
      KC_HOSTNAME: keycloak.thesispath.cloud
      PROXY_ADDRESS_FORWARDING: true
      KC_HOSTNAME_PORT: 8088
      KC_HOSTNAME_STRICT: false
      KC_PROXY_HEADERS: 'xforwarded'
      KC_HTTP_ENABLED: true
      KEYCLOAK_LOGLEVEL: DEBUG
      KC_HEALTH_ENABLED: true
      KEYCLOAK_ADMIN: ${KEYCLOAK_ADMIN}
      KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD}
      KC_DB: postgres
      KC_DB_URL: jdbc:postgresql://kcdb/${POSTGRES_DB}
      KC_DB_USERNAME: ${POSTGRES_USER}
      KC_DB_PASSWORD: ${POSTGRES_PASSWORD}
    restart: always
    ports:
      - "8088:8088"
    depends_on:
      - kcdb
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.keycloak.rule=Host(`keycloak.domain.cloud`)"
      - "traefik.http.routers.keycloak.entrypoints=websecure"
      - "traefik.http.routers.keycloak.tls.certresolver=myresolver"
    networks:
      - webnet

  webApp:
    image: webApp:v6.1
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.webApp.rule=Host(`webApp.domain.cloud`)"
      - "traefik.http.routers.webApp.entrypoints=websecure"
      - "traefik.http.routers.webApp.tls.certresolver=myresolver"
    networks:
      - webnet
      
networks:
  webnet:
    driver: bridge
volumes:
  pgdata:
  letsencrypt:
Leave a Comment