version: "3" services: web: image: reg.federspiel.software/fedeo/software:beta restart: always environment: - INFISICAL_CLIENT_ID=abc - INFISICAL_CLIENT_SECRET=abc backend: image: reg.federspiel.software/fedeo/backend:main restart: always environment: - NUXT_PUBLIC_API_BASE= - NUXT_PUBLIC_PDF_LICENSE= db: image: postgres restart: always shm_size: 128mb environment: POSTGRES_PASSWORD: abc POSTGRES_USER: sandelcom POSTGRES_DB: sensorfy volumes: - ./pg-data:/var/lib/postgresql/data ports: - "5432:5432" traefik: image: traefik:v2.2 restart: unless-stopped container_name: traefik command: - "--api.insecure=false" - "--api.dashboard=true" - "--api.debug=false" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--providers.docker.network=traefik" - "--entrypoints.web.address=:80" - "--entrypoints.web-secured.address=:443" - "--accesslog=true" - "--accesslog.filepath=/logs/access.log" - "--accesslog.bufferingsize=5000" - "--accesslog.fields.defaultMode=keep" - "--accesslog.fields.headers.defaultMode=keep" - "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true" # <== Enable TLS-ALPN-01 to generate and renew ACME certs - "--certificatesresolvers.mytlschallenge.acme.email=info@sandelcom.de" # <== Setting email for certs - "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json" # <== Defining acme file to store cert information ports: - 80:80 - 8080:8080 - 443:443 volumes: - "./traefik/letsencrypt:/letsencrypt" # <== Volume for certs (TLS) - "/var/run/docker.sock:/var/run/docker.sock:ro" - "./traefik/logs:/logs" labels: #### Labels define the behavior and rules of the traefik proxy for this container #### - "traefik.enable=true" # <== Enable traefik on itself to view dashboard and assign subdomain to view it - "traefik.http.routers.api.rule=Host(`srv1.drinkingteam.de`)" # <== Setting the domain for the dashboard - "traefik.http.routers.api.service=api@internal" # <== Enabling the api to be a service to access