From c6db4dce48d73171de0c3c63eca3f67a2b811c73 Mon Sep 17 00:00:00 2001 From: Dongho Kim Date: Mon, 17 Nov 2025 12:53:52 +0100 Subject: [PATCH 1/2] traefik integration --- docker-compose.yml | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 99393d7..66fb1ff 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -204,8 +204,8 @@ services: build: ./frontend container_name: munich-news-frontend restart: unless-stopped - ports: - - "3000:3000" + # ports: + # - "3000:3000" # Traefik Configuration (commented out - uncomment when using Traefik) # Remove port exposure when using Traefik # ports: @@ -217,11 +217,25 @@ services: - backend networks: - munich-news-network + - proxy healthcheck: test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000"] interval: 30s timeout: 10s retries: 3 + labels: + - traefik.enable=true + - traefik.docker.network=proxy + - traefik.http.routers.news.entrypoints=http + - traefik.http.routers.news.rule=Host(`news.dongho.kim`) + - traefik.http.middlewares.news-redirect.redirectscheme.permanent=true + - traefik.http.middlewares.news-redirect.redirectscheme.scheme=https + - traefik.http.routers.news.middlewares=news-redirect + - traefik.http.routers.news-secure.entrypoints=https + - traefik.http.routers.news-secure.rule=Host(`news.dongho.kim`) + - traefik.http.routers.news-secure.tls=true + - traefik.http.routers.news-secure.tls.certresolver=cloudflare + - traefik.http.services.news-secure-service.loadbalancer.server.port=2283 volumes: mongodb_data: @@ -233,4 +247,6 @@ volumes: networks: munich-news-network: - driver: bridge + internal: true + proxy: + external: true \ No newline at end of file -- 2.49.1 From 4e881a009a91ba35840cd03fa4e3a9fe7e8a3c3e Mon Sep 17 00:00:00 2001 From: Dongho Kim Date: Mon, 17 Nov 2025 13:05:48 +0100 Subject: [PATCH 2/2] news backend url redirect --- docker-compose.yml | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 66fb1ff..7b237bd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -129,8 +129,8 @@ services: depends_on: - mongodb - redis - ports: - - "5001:5001" + # ports: + # - "5001:5001" environment: - MONGODB_URI=mongodb://${MONGO_USERNAME:-admin}:${MONGO_PASSWORD:-changeme}@mongodb:27017/ - REDIS_URL=redis://redis:6379 @@ -141,12 +141,26 @@ services: - /var/run/docker.sock:/var/run/docker.sock:ro networks: - munich-news-network + - proxy healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:5001/health')"] interval: 30s timeout: 10s retries: 3 start_period: 40s + labels: + - traefik.enable=true + - traefik.docker.network=proxy + - traefik.http.routers.news-api.entrypoints=http + - traefik.http.routers.news-api.rule=Host(`news-api.dongho.kim`) + - traefik.http.middlewares.news-api-redirect.redirectscheme.permanent=true + - traefik.http.middlewares.news-api-redirect.redirectscheme.scheme=https + - traefik.http.routers.news-api.middlewares=news-api-redirect + - traefik.http.routers.news-api-secure.entrypoints=https + - traefik.http.routers.news-api-secure.rule=Host(`news-api.dongho.kim`) + - traefik.http.routers.news-api-secure.tls=true + - traefik.http.routers.news-api-secure.tls.certresolver=cloudflare + - traefik.http.services.news-api-secure-service.loadbalancer.server.port=5001 # Transport Crawler - API service for MVG disruptions (Internal only - not exposed to host) transport-crawler: @@ -235,7 +249,7 @@ services: - traefik.http.routers.news-secure.rule=Host(`news.dongho.kim`) - traefik.http.routers.news-secure.tls=true - traefik.http.routers.news-secure.tls.certresolver=cloudflare - - traefik.http.services.news-secure-service.loadbalancer.server.port=2283 + - traefik.http.services.news-secure-service.loadbalancer.server.port=3000 volumes: mongodb_data: -- 2.49.1