name: monolith-v2 services: traefik: image: traefik:3.4 profiles: - with_traefik command: - --providers.docker=true - --providers.docker.exposedbydefault=false # HTTPS 설정을 제거하고 HTTP(web)만 남깁니다. - --entrypoints.web.address=:80/tcp ports: # 외부접속포트:내부포트 # 시놀로지 외부에서 접속할 포트(예: 8080)를 지정하세요. - "3926:80" volumes: - ./_log/traefik:/log:rw - /var/run/docker.sock:/var/run/docker.sock networks: - traefik restart: unless-stopped env_file: - .env mosquitto: image: eclipse-mosquitto:2.0 labels: - "traefik.enable=true" # Host 규칙을 제거하고 PathPrefix로 모든 접속 허용 (IP 접속 가능하게 함) - "traefik.http.routers.mqtt.rule=PathPrefix(`/mqtt`) || Header(`Upgrade`,`websocket`)" - "traefik.http.routers.mqtt.entrypoints=web" - "traefik.http.services.mqtt.loadbalancer.server.port=9001" volumes: - ./config:/mosquitto/config - ./_log/mosquitto:/mosquitto/log:rw - ./_data/mosquitto:/mosquitto/data:rw networks: - traefik restart: unless-stopped env_file: - .env nginx: image: nginx:latest labels: - "traefik.enable=true" - "traefik.http.routers.monolith-v2.rule=PathPrefix(`/`)" - "traefik.http.routers.monolith-v2.entrypoints=web" - "traefik.http.services.monolith-v2.loadbalancer.server.port=7000" volumes: - ./config/nginx.conf:/etc/nginx/conf.d/default.conf:ro - ./web/dist:/var/public networks: - traefik restart: unless-stopped env_file: - .env networks: traefik: external: true