35 lines
1.2 KiB
YAML
35 lines
1.2 KiB
YAML
services:
|
|
pixelbrew:
|
|
build: .
|
|
container_name: pixelbrew
|
|
restart: unless-stopped
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
- NODE_ENV=production
|
|
labels:
|
|
- "traefik.enable=true"
|
|
|
|
# 1. Router für HTTP (Port 80), der nur auf HTTPS umleitet
|
|
- "traefik.http.routers.pixelbrew-http.rule=Host(`${DOMAIN}`, `www.${DOMAIN}`)"
|
|
- "traefik.http.routers.pixelbrew-http.entrypoints=web"
|
|
- "traefik.http.routers.pixelbrew-http.middlewares=https-redirect@file" # Name des Redirect-Middlewares
|
|
|
|
# 2. Router für HTTPS (Port 443), der den Traffic zur Anwendung leitet
|
|
- "traefik.http.routers.pixelbrew-secure.rule=Host(`${DOMAIN}`, `www.${DOMAIN}`)"
|
|
- "traefik.http.routers.pixelbrew-secure.entrypoints=websecure"
|
|
- "traefik.http.routers.pixelbrew-secure.tls=true"
|
|
- "traefik.http.routers.pixelbrew-secure.tls.certresolver=letsencrypt" # <-- DAS IST WICHTIG!
|
|
|
|
# 3. Service-Definition, die auf den App-Port zeigt
|
|
- "traefik.http.services.pixelbrew.loadbalancer.server.port=3000"
|
|
- "traefik.http.routers.pixelbrew-secure.service=pixelbrew" # Verknüpfung mit dem Service
|
|
|
|
networks:
|
|
- traefik
|
|
expose:
|
|
- "3000"
|
|
|
|
networks:
|
|
traefik:
|
|
external: true |