version: "3.3" services: traefik: image: traefik:latest networks: - geostreams volumes: - ./traefik:/traefik/ - /var/run/docker.sock:/var/run/docker.sock:ro ports: - 80:80 - 443:443 - 8001:8001 command: - --log.level=DEBUG - --entrypoints.private.address=:8001 - --entrypoints.web.address=:80 - --entrypoints.websecure.address=:443 - --entrypoints.web.http.redirections.entryPoint.to=websecure - --entrypoints.web.http.redirections.entryPoint.scheme=https - "--providers.docker=true" - "--api=true" - "--api.dashboard=true" - --providers.docker.exposedbydefault=false # - "--certificatesresolvers.le.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory" - --certificatesResolvers.le.acme.email=dev@mbclab.ncsa.illinois.edu - --certificatesResolvers.le.acme.storage=/traefik/acme.json - --certificatesResolvers.le.acme.httpChallenge=true - --certificatesResolvers.le.acme.httpChallenge.entryPoint=web - --providers.file.filename=/traefik/dynamic/conf.yaml labels: - "traefik.enable=true" - "traefik.http.routers.dashboard.service=api@internal" # Route setting # - "traefik.http.routers.dashboard.rule=Host(`${TRAEFIK_HOST:-localhost}`) && (PathPrefix(`/traefik`) || PathPrefix(`/api`))" - "traefik.http.routers.dashboard.rule=Host(`${TRAEFIK_HOST:-localhost}`)" # - "traefik.http.middlewares.dashboard-strip.stripprefix.prefixes=/traefik" # - "traefik.http.routers.dashboard.middlewares=traefik-strip" # set TLS (https) - "traefik.http.routers.dashboard.tls=true" - "traefik.http.routers.dashboard.entrypoints=private" - "traefik.http.routers.dashboard.tls.certresolver=le" # ---------------------------------------------------------------------- # GEOSTREAMS STACK # ---------------------------------------------------------------------- geodashboard: image: hub.ncsa.illinois.edu/geostreams/gd-smartfarm:develop networks: - geostreams labels: - traefik.enable=true - traefik.http.services.geodashboard.loadbalancer.server.port=80 - traefik.http.routers.geodashboard.rule=Host(`${TRAEFIK_HOST:-localhost}`) && (PathPrefix(`${GD_PREFIX_PATH:-/}`)) - traefik.http.routers.geodashboard.entrypoints=websecure - traefik.http.routers.geodashboard.tls=true - traefik.http.routers.geodashboard.tls.certresolver=le restart: unless-stopped geostreams: image: geostreams/geostreams env_file: - ./geostreams.env networks: - geostreams labels: - traefik.enable=true - traefik.http.services.geostreams.loadbalancer.server.port=9000 - traefik.http.routers.geostreams.rule=Host(`${TRAEFIK_HOST:-localhost}`) && (PathPrefix(`${GEOSTREAMS_PREFIX_PATH:-/}`)) - traefik.http.routers.geostreams.entrypoints=websecure - traefik.http.routers.geostreams.tls=true - traefik.http.routers.geostreams.tls.certresolver=le volumes: - ./application.conf:/home/geostreams/conf/application.conf - ./messages.en:/home/geostreams/conf/messages.en restart: unless-stopped # healthcheck: # test: ["CMD", "curl", "-s", "--fail", "http://localhost:9000/geostreams/api/status"] postgres: image: mdillon/postgis:9.5 networks: - geostreams ports: - 5432:5432 volumes: - ./postgres:/var/lib/postgresql/data restart: unless-stopped networks: geostreams: