Skip to content

Instantly share code, notes, and snippets.

@suru-dissanaike
Created April 16, 2021 12:40
Show Gist options
  • Save suru-dissanaike/457dffd82651b019ee82282ecc486d9f to your computer and use it in GitHub Desktop.
Save suru-dissanaike/457dffd82651b019ee82282ecc486d9f to your computer and use it in GitHub Desktop.
version: "3.3"
services:
traefik:
image: "traefik:v2.4"
container_name: "traefik"
command:
- "--log.level=DEBUG"
- "--api=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
# Entrypoints
- "--entrypoints.websocket.address=:443"
- "--entrypoints.mqtt.address=:1883"
# Let's encrypt configuration
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
- "[email protected]"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
ports:
- "443:443"
- "1883:1883"
volumes:
- "./letsencrypt:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
mqtt:
image: "eclipse-mosquitto"
container_name: "mosquitto"
expose:
- "1883"
- "9001"
volumes:
- ./config:/mosquitto/config/
labels:
- "traefik.enable=true"
- "traefik.http.routers.mqtt_websocket.rule=Host(`DOMAIN.COM`)"
- "traefik.http.routers.mqtt_websocket.entrypoints=websocket"
- "traefik.http.routers.mqtt_websocket.tls.certresolver=myresolver"
- "traefik.http.services.mqtt_websocket.loadbalancer.server.port=9001"
- "traefik.tcp.services.mqtt.loadbalancer.server.port=1883"
- "traefik.tcp.routers.mqtt.entrypoints=mqtt"
- "traefik.tcp.routers.mqtt.rule=HostSNI(`*`)"
- "traefik.tcp.routers.mqtt.service=mqtt"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment