version: '3.1'

services:
  pgadmin:
    image: dpage/pgadmin4
    environment:
      PGADMIN_DEFAULT_EMAIL: test@schoff.it
      PGADMIN_DEFAULT_PASSWORD: example
    restart: always
    ports:
      - "8084:80"
    volumes:
      - pgadmin-data:/var/lib/pgadmin
    labels:
      - "traefik.enable=true"
      # http (with redirect)
      - "traefik.http.routers.pgadmin_http.entrypoints=web"
      - "traefik.http.routers.pgadmin_http.rule=Host(`pgadmin.dev.duckduckfuck.com`)"
      - "traefik.http.routers.pgadmin_http.middlewares=https_redirect"

      # https
      - "traefik.http.routers.pgadmin_https.rule=Host(`pgadmin.dev.duckduckfuck.com`)"
      - "traefik.http.routers.pgadmin_https.entrypoints=websecure"
      - "traefik.http.routers.pgadmin_https.tls.certresolver=letsencrypt"
      - "traefik.http.services.pgadmin_https.loadbalancer.server.port=80"

    networks:
      #- shared-traefik
      - shared-pgadmin

  #web:
  #  build: .
  #  restart: always
  #  labels:
  #    - "traefik.enable=true"
  #    # http (with redirect)
  #    - "traefik.http.routers.goapi_http.entrypoints=web"
  #    - "traefik.http.routers.goapi_http.rule=Host(`goapi.dev.duckduckfuck.com`)"
  #    - "traefik.http.routers.goapi_http.middlewares=https_redirect"
  #    # https
  #    - "traefik.http.routers.goapi_https.rule=Host(`goapi.dev.duckduckfuck.com`)"
  #    - "traefik.http.routers.goapi_https.entrypoints=websecure"
  #    - "traefik.http.routers.goapi_https.tls.certresolver=letsencrypt"
  #    - "traefik.http.services.goapi_https.loadbalancer.server.port=8082"
  #  networks:
  #    #- shared-traefik
  #    - shared-web

  postgres-db:
    image: postgres:11.6
    restart: always
    ports:
      - "8081:5432"
    environment:
      POSTGRES_USER: web
      POSTGRES_PASSWORD: example
    volumes:
      - postgres-data:/var/lib/postgresql/data
    networks:
      - shared-pgadmin
      - shared-web

volumes:
  postgres-data:
  pgadmin-data:

networks:
  shared-web:
  #shared-traefik:
  #  external:
  #    name: shared-traefik
  shared-pgadmin:
