From 2d0300ed83857f7f1c38c736db559af514942f75 Mon Sep 17 00:00:00 2001 From: Oleh Omelchenko Date: Wed, 22 Jan 2025 12:40:20 +0200 Subject: [PATCH] Update docker-compose.yml for Traefik configuration and environment variable support --- docker-compose.yml | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 0a4ac32..3aa7e9b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,23 +11,40 @@ services: ports: - "3000:3000" environment: - - PORT=3000 + - 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" - - "8080:8080" + - "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 + - "/var/run/docker.sock:/var/run/docker.sock:ro" + - "./letsencrypt:/letsencrypt" labels: - - "traefik.http.routers.web.rule=Host(`${YOUR_DOMAIN}`)" - - "traefik.http.services.web.loadbalancer.server.port=3000" + - "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}"