version: "3.7"

services:
  traefik:
    container_name: bridgehead-traefik
    image: traefik:2.4
    command:
      - --api.insecure=true
      - --entrypoints.web.address=:80
      - --entrypoints.websecure.address=:443
      - --providers.docker=true
      - --entrypoints.web.http.redirections.entrypoint.to=websecure
      - --entrypoints.web.http.redirections.entrypoint.scheme=https
    ports:
      - 80:80
      - 443:443
      - 8080:8080
    volumes:
      - ../certs:/tools/certs
      - /var/run/docker.sock:/var/run/docker.sock:ro
    extra_hosts:
      - "host.docker.internal:host-gateway"

  ### Does need to know the outside proxy to connect central components
  forward_proxy:
    container_name: bridgehead-squid
    image: ubuntu/squid
    environment:
      http_proxy: ${http_proxy}
      https_proxy: ${https_proxy}
    volumes:
      - "bridgehead-proxy:/var/log/squid"
    
## Needs internal proxy config
  landing:
    container_name: bridgehead-landingpage
    image: samply/bridgehead-landingpage
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.landing.rule=PathPrefix(`/`)"
      - "traefik.http.services.landing.loadbalancer.server.port=80"
      - "traefik.http.routers.landing.tls=true"
    environment:
      HOST: ${HOST}
      PROJECT: ${PROJECT}
      SITE_NAME: ${SITE_NAME}

  nngm-connector:
      container_name: bridgehead-nngm-connector
      image: "samply/share-client:nngm-feature-environmentPreconfiguration"
      environment:
        POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
        NNGM_MAGICPL_APIKEY: ${NNGM_MAGICPL_APIKEY}
        NNGM_MAINZELLISTE_APIKEY: ${NNGM_MAINZELLISTE_APIKEY}
        NNGM_CTS_APIKEY: ${NNGM_CTS_APIKEY}
        NNGM_CRYPTKEY: ${NNGM_CRYPTKEY}
      volumes:
        - "nngm-connector-logs:/usr/local/tomcat/logs"
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.nngm_connector.rule=PathPrefix(`/nngm-connector`)"
        - "traefik.http.services.nngm_connector.loadbalancer.server.port=8080"
        - "traefik.http.routers.nngm_connector.tls=true"

      depends_on:
        - "nngm-connector-db"
        - "forward_proxy"
      ports:
      - 5005:5005
      restart: "always"

  nngm-connector-db:
      container_name: bridgehead-nngm-connector-db
      image: "postgres:10.17"
      environment:
        POSTGRES_DB: "share_v2"
        POSTGRES_USER: "samplyweb"
        POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      volumes:
        - "nngm-connector-db-data:/var/lib/postgresql/data"
      restart: "always"

volumes:
  nngm-connector-db-data:
  nngm-connector-logs:
  bridgehead-proxy: