version: '3.8' services: web: container_name: mini-vlat-adaptation image: node:14 working_dir: /app volumes: - .:/app - ./data:/app/data ports: - "3000:3000" environment: - PORT=${PORT} env_file: - .env command: sh -c "npm install && npm start" labels: - "traefik.enable=true" - "traefik.http.routers.web.rule=Host(`${YOUR_DOMAIN}`)" - "traefik.http.routers.web.entrypoints=websecure" - "traefik.http.routers.web.tls.certresolver=myresolver" - "traefik.http.services.web.loadbalancer.server.port=3000" traefik: image: traefik:v2.5 container_name: traefik ports: - "80:80" - "443:443" command: - "--api.insecure=true" - "--providers.docker=true" - "--entrypoints.web.address=:80" - "--entrypoints.websecure.address=:443" - "--certificatesresolvers.myresolver.acme.tlschallenge=true" - "--certificatesresolvers.myresolver.acme.email=${LETSENCRYPT_EMAIL}" - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json" - "--api.dashboard=true" - "--log.level=DEBUG" volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" - "./letsencrypt:/letsencrypt" labels: - "traefik.http.routers.traefik.rule=Host(`traefik.${YOUR_DOMAIN}`)" - "traefik.http.routers.traefik.service=api@internal" - "traefik.http.routers.traefik.entrypoints=websecure" - "traefik.http.routers.traefik.tls.certresolver=myresolver" - "traefik.http.routers.traefik.middlewares=auth" - "traefik.http.middlewares.auth.basicauth.users=${TRAEFIK_BASIC_AUTH_USER}:${TRAEFIK_BASIC_AUTH_PASSWORD}"