version: "3.9" services: traefik: image: "traefik:v2.5" container_name: "sq_traefik" command: - "--api.insecure=true" - "--providers.file=true" - "--providers.file.filename=/config/traefik.yml" - "--entrypoints.webinsecure.address=:80" - "--entrypoints.web.address=:443" - "--entryPoints.web.proxyProtocol.insecure" - "--entryPoints.web.forwardedHeaders.insecure" - "--certificatesresolvers.tlsresolver.acme.email=email@example.com" - "--certificatesresolvers.tlsresolver.acme.storage=/letsencrypt/acme.json" - "--certificatesresolvers.tlsresolver.acme.httpchallenge=true" - "--certificatesresolvers.tlsresolver.acme.httpchallenge.entrypoint=webinsecure" ports: - "80:80" - "443:443" - "8080:8080" volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" - ./letsencrypt:/letsencrypt - ./traefik.yml:/config/traefik.yml database: container_name: sq_mongodb image: mongo:6.0 ports: - "127.0.0.1:27017:27017" volumes: - ./data:/data/db api: container_name: sq_api image: ghcr.io/tdjsnelling/sqtracker-api:latest ports: - "127.0.0.1:3001:3001" volumes: - type: bind source: ./config.js target: /sqtracker/config.js depends_on: - database client: container_name: sq_client image: ghcr.io/tdjsnelling/sqtracker-client:latest ports: - "127.0.0.1:3000:3000" volumes: - type: bind source: ./config.js target: /sqtracker/config.js # - ./favicon.png:/sqtracker/public/favicon.png # - ./favicon.ico:/sqtracker/public/favicon.ico depends_on: - api