version: '3' services: traefik: image: traefik:v2.3.1 container_name: traefik restart: unless-stopped volumes: - /var/run/docker.sock:/var/run/docker.sock - /mnt/data/docker/traefik/tls:/tls environment: PUID: 1000 PGID: 1000 env_file: - traefik.env ports: - 443:443 command: - --api - --providers.docker=true - --providers.docker.exposedbydefault=false - --entrypoints.https.Address=:443 - --certificatesresolvers.letsencrypt.acme.tlschallenge=true - --certificatesresolvers.letsencrypt.acme.email=${EMAIL} - --certificatesresolvers.letsencrypt.acme.storage=/tls/letsencrypt.json - --certificatesresolvers.ledns.acme.dnschallenge=true - --certificatesresolvers.ledns.acme.dnschallenge.provider=cloudflare - --certificatesresolvers.ledns.acme.email=${EMAIL} - --certificatesresolvers.ledns.acme.storage=/tls/ledns.json labels: traefik.enable: "true" traefik.http.routers.traefik.rule: Host(`traefik.${DOMAIN}`) traefik.http.routers.traefik.entrypoints: https traefik.http.routers.traefik.tls.certresolver: ledns traefik.http.routers.traefik.service: api@internal traefik.http.routers.traefik.middlewares: traefik-ips,traefik-auth traefik.http.middlewares.traefik-ips.ipwhitelist.sourcerange: 127.0.0.1/32,172.16.0.0/12,192.168.1.0/24 traefik.http.middlewares.traefik-auth.basicauth.users: ${USERNAME}:${PASSWORD} ha: image: homeassistant/home-assistant:latest depends_on: - mqtt container_name: ha restart: unless-stopped ports: - 8123:8123 labels: - traefik.enable=true - traefik.backend=ha - traefik.http.routers.ha.rule=Host(`ha.atomaka.com`) - traefik.http.services.ha.loadbalancer.server.url=http://${SERVER_IP}:8123 - traefik.http.services.ha.loadbalancer.server.port=8123 - traefik.http.routers.ha.tls.certresolver=letsencrypt - traefik.port=8123 volumes: - /etc/localtime:/etc/localtime:ro - /mnt/data/docker/ha/config:/config gitea: container_name: gitea image: gitea/gitea:1.8.3 volumes: - /mnt/data/docker/gitea/data:/data environment: - USER_UID=1000 - USER_GID=1000 - DISABLE_REGISTRATION=true ports: - 3000 - "9062:22" labels: - traefik.enable=true - traefik.backend=git - traefik.http.routers.git.rule=Host(`git.${DOMAIN}`) - traefik.http.routers.git.tls.certresolver=letsencrypt - traefik.http.services.git.loadbalancer.server.port=3000 wiki: container_name: wikijs image: linuxserver/wikijs volumes: - /mnt/data/docker/wikijs/data:/data - /mnt/data/docker/wikijs/config:/config - /etc/localtime:/etc/localtime:ro environment: PUID: 1000 PGID: 1000 DB_TYPE: sqlite DB_FILEPATH: /data/database.db labels: - traefik.enable=true - traefik.backend=wiki - traefik.http.routers.wiki.rule=Host(`wiki.${DOMAIN}`) - traefik.http.routers.wiki.tls.certresolver=letsencrypt sonarr: image: linuxserver/sonarr container_name: sonarr restart: always ports: - 8989 environment: PUID: 1000 PGID: 1000 volumes: - /mnt/data/docker/sonarr/config:/config - /mnt/data/downloads:/data - /mnt/data/downloads:/downloads - /mnt/media/series/:/media - /etc/localtime:/etc/localtime:ro labels: - traefik.enable=true - traefik.backend=sonarr - traefik.http.routers.sonarr.rule=Host(`sonarr.${DOMAIN}`) - traefik.http.routers.sonarr.tls.certresolver=ledns - traefik.http.routers.sonarr.middlewares=sonarr@docker - traefik.http.middlewares.sonarr.ipwhitelist.sourcerange=127.0.0.1/32,172.16.0.0/12,192.168.1.0/24 radarr: image: linuxserver/radarr container_name: radarr restart: always ports: - 7878 environment: PUID: 1000 PGID: 1000 volumes: - /mnt/data/docker/radarr/config:/config - /mnt/data/downloads:/data - /mnt/data/downloads:/downloads - /mnt/media/movies/:/media - /mnt/media/movies/:/movies - /etc/localtime:/etc/localtime:ro labels: - traefik.enable=true - traefik.backend=radarr - traefik.http.routers.radarr.rule=Host(`radarr.${DOMAIN}`) - traefik.http.routers.radarr.tls.certresolver=ledns - traefik.http.routers.radarr.middlewares=radarr@docker - traefik.http.middlewares.radarr.ipwhitelist.sourcerange=127.0.0.1/32,172.16.0.0/12,192.168.1.0/24 sabnzbd: image: linuxserver/sabnzbd container_name: sabnzbd restart: always volumes: - /mnt/data/docker/sabnzbd/config:/config - /mnt/data/downloads:/data - /etc/localtime:/etc/localtime:ro environment: PUID: 1000 PGID: 1000 ports: - 9052:8080 labels: - traefik.enable=true - traefik.backend=sabnzbd - traefik.http.routers.sabnzbd.rule=Host(`sabnzbd.${DOMAIN}`) - traefik.http.routers.sabnzbd.tls.certresolver=ledns - traefik.http.routers.sabnzbd.middlewares=sabnzbd@docker - traefik.http.middlewares.sabnzbd.ipwhitelist.sourcerange=127.0.0.1/32,172.16.0.0/12,192.168.1.0/24 organizr: image: lsiocommunity/organizr container_name: organizr restart: always ports: - 80 volumes: - /mnt/data/docker/organizr/config:/config - /etc/localtime:/etc/localtime:ro labels: - traefik.enable=true - traefik.backend=organizr - traefik.http.routers.organizr.rule=Host(`organizr.${DOMAIN}`) - traefik.http.routers.organizr.tls.certresolver=ledns - traefik.http.routers.organizr.middlewares=organizr@docker - traefik.http.middlewares.organizr.ipwhitelist.sourcerange=127.0.0.1/32,172.16.0.0/12,192.168.1.0/24 unifi: image: linuxserver/unifi container_name: unifi restart: always environment: PUID: 1000 PGID: 1000 volumes: - "/mnt/data/docker/unifi/config:/config" ports: - "8080:8080" - "8081:8081" - "8443:8443" - "8843:8843" - "8880:8880" - "6789:6789" - "3478:3478/udp" - "10001:10001/udp" plex: image: linuxserver/plex container_name: plex network_mode: host restart: always environment: VERSION: latest PUID: 1000 PGID: 1000 volumes: - "/mnt/data/docker/plex/config:/config" - "/mnt/media/series:/data/tvshows" - "/mnt/media/movies:/data/movies" - "/etc/localtime:/etc/localtime:ro" plexpy: image: linuxserver/tautulli container_name: plexpy restart: always volumes: - "/mnt/data/docker/plexpy/config:/config" - "/mnt/data/docker/plex/config/Library/Application\ Support/Plex\ Media\ Server/Logs:/logs:ro" - "/etc/localtime:/etc/localtime:ro" environment: PUID: 1000 PGID: 1000 ports: - "9055:8181" duckdns: image: linuxserver/duckdns container_name: duckdns restart: always environment: PUID: 1000 PGID: 1000 env_file: - duckdns.env volumes: - /etc/localtime:/etc/localtime:ro mqtt: image: eclipse-mosquitto container_name: mqtt restart: always ports: - 1883:1883 command: mosquitto -c /mosquitto-no-auth.conf zwavejs2mqtt: container_name: zwavejs2mqtt image: zwavejs/zwavejs2mqtt:latest restart: always tty: true stop_signal: SIGINT env_file: - zwavejs2mqtt.env environment: - TZ=America/New_York devices: - /dev/zwave:/dev/zwave volumes: - /mnt/data/docker/zwavejs2mqtt/store:/usr/src/app/store ports: - '9056:8091' - '9057:3000'