version: '3' services: syncthing: image: linuxserver/syncthing container_name: syncthing environment: - PUID=1000 - PGID=1000 - TZ=Europe/Stockholm - UMASK_SET=022 volumes: - ./syncthing/config:/config - /mnt/johanna_backup:/data1 ports: - 8384:8384 - 22000:22000 - 21027:21027/udp restart: unless-stopped milvert-nginx: container_name: milvert-nginx image: nginx:latest restart: always networks: - backend labels: - "traefik.enable=true" #HTTPS - "traefik.http.routers.milvert-secure.entrypoints=web-secure" - "traefik.http.routers.milvert-secure.rule=Host(`www.${DOMAIN}`, `${DOMAIN}`)" - "traefik.http.routers.milvert-secure.priority=1" # SSL - "traefik.http.routers.milvert-secure.tls.certresolver=milvert" - "traefik.http.routers.milvert-secure.tls=true" volumes: - "${DIR}/milvert-nginx/conf:/etc/nginx/conf.d" - "${DIR}/milvert-nginx/html:/html" zigbee2mqtt: container_name: zigbee2mqtt networks: - backend image: koenkk/zigbee2mqtt:1.13.0 volumes: - ${DIR}/zigbee2matt:/app/data - ${DIR}/zigbee2mqtt_node_log:/root/.npm devices: - /dev/ttyACM1:/dev/ttyACM0 environment: - UID=1000 - GID=1000 - TZ=Europe/Stockholm gitea: image: gitea/gitea:1.9.3 container_name: gitea networks: - backend restart: always environment: - USER_UID=1001 - USER_GID=1005 volumes: #- /var/lib/gitea:/data - ${DIR}/gitea:/data - /home/git/.ssh:/data/git/.ssh - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "127.0.0.1:2222:22" - "3000:3000" labels: - "traefik.enable=true" - "traefik.http.services.gitea-service.loadbalancer.server.port=3000" - "traefik.http.routers.gitea-secure.entrypoints=web-secure" - "traefik.http.routers.gitea-secure.rule=Host(`gitea.${DOMAIN}`)" - "traefik.http.routers.gitea-secure.tls.certresolver=milvert" - "traefik.http.routers.gitea-secure.tls=true" whoami: # A container that exposes an API to show its IP address container_name: whoami image: containous/whoami networks: - backend labels: - "traefik.enable=true" - "traefik.http.routers.whoami-secure.entrypoints=web-secure" - "traefik.http.routers.whoami-secure.rule=Host(`whoami.${DOMAIN}`)" - "traefik.http.routers.whoami-secure.tls.certresolver=milvert" - "traefik.http.routers.whoami-secure.tls=true" mqtt: image: eclipse-mosquitto:1.6.10 container_name: mqtt networks: - frontend - backend restart: always ports: - "1883:1883" - "9001:9001" environment: - PUID=1000 - PGID=1000 - TZ=Europe/Stockholm volumes: - ./mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf labels: - "traefik.http.routers.mqtt.rule=Host(`mqtt.${DOMAIN}`)" - "traefik.http.routers.mqtt.entrypoints=mqtt" - "traefik.http.services.mqtt-service.loadbalancer.server.port=9001" - "traefik.enable=true" traefik: # The official v2.0 Traefik docker image image: traefik container_name: "traefik" networks: - backend - frontend ports: # The HTTP port - "80:80" - "443:443" - "8080:8080" volumes: # So that Traefik can listen to the Docker events - /var/run/docker.sock:/var/run/docker.sock - ./traefik.yml:/etc/traefik/traefik.yml - ./static_config.yml:/etc/traefik/static_config.yml # - "./log.json:/etc/traefik/log.json" #- ./acme.json:/acme.json - ./letsencrypt:/letsencrypt dns: - 8.8.8.8 labels: - "traefik.enable=true" - "traefik.http.routers.traefik.rule=Host(`tra.${DOMAIN}`)" - "traefik.http.routers.traefik-secure.entrypoints=web-secure" - "traefik.http.routers.traefik-secure.rule=Host(`tra.${DOMAIN}`)" - "traefik.http.routers.traefik-secure.tls.certresolver=milvert" - "traefik.http.routers.traefik-secure.tls=true" - "traefik.http.services.traefik-service.loadbalancer.server.port=8080" - "traefik.http.routers.traefik-secure.middlewares=traefik-auth" - "traefik.http.middlewares.traefik-auth.basicauth.users=simon:$$apr1$$o3vIe.DX$$3XExiBMe8rUo3HujDSYEo0" networks: frontend: external: true backend: external: false