Skip to content

Instantly share code, notes, and snippets.

@IosifZ
Last active January 28, 2024 13:52

Revisions

  1. IosifZ revised this gist Jul 20, 2020. 1 changed file with 253 additions and 10 deletions.
    263 changes: 253 additions & 10 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -25,13 +25,11 @@ services:
    - 'traefik.http.routers.redirs.rule=hostregexp(`{host:.+}`)'
    - traefik.http.routers.redirs.entrypoints=web
    - traefik.http.routers.redirs.middlewares=redirect-to-https
    - 'traefik.https.middlewares.fauth.forwardauth.address="http://fauth:4181" '
    - traefik.https.middlewares.fauth.forwardauth.authResponseHeaders=X-Forwarded-User
    environment:
    - 'CLOUDFLARE_EMAIL=${EMAIL}'
    - 'CLOUDFLARE_API_KEY=${API_KEY}'
    - com.ouroboros.enable=true
    - TZ=Europe/Bucharest
    - TZ=${TZ}
    command:
    - '--log.level=DEBUG'
    - '--log.format=json'
    @@ -65,14 +63,14 @@ services:
    - 'PROVIDERS_GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}'
    - 'SECRET=${OAUTH_SECRET}'
    - INSECURE_COOKIE=false
    - WHITELIST=${EMAIL}
    - 'WHITELIST=${EMAIL}'
    labels:
    - com.ouroboros.enable=true
    - traefik.enable=true
    # - 'traefik.http.middlewares.fauth.forwardauth.address=http://fauth:4181'
    # - traefik.http.middlewares.fauth.forwardauth.authResponseHeaders=X-Forwarded-User
    - traefik.http.middlewares.fauth.forwardauth.trustForwardHeader=true
    - traefik.http.services.fauth.loadbalancer.server.port=4181
    - traefik.http.services.fauth.loadbalancer.server.port=4181
    - traefik.http.middlewares.fauth.forwardauth.address=http://fauth:4181
    - traefik.http.middlewares.fauth.forwardauth.authResponseHeaders=X-Forwarded-User
    portainer:
    image: 'portainer/portainer:latest'
    container_name: portainer
    @@ -81,7 +79,7 @@ services:
    - .env
    environment:
    - com.ouroboros.enable=true
    - TZ=Europe/Bucharest
    - TZ=${TZ}
    volumes:
    - '.\Portainer:/data'
    - '/var/run/docker.sock:/var/run/docker.sock'
    @@ -97,7 +95,7 @@ services:
    - traefik.http.routers.portainer_https.tls=true
    - traefik.http.routers.portainer_https.tls.certresolver=basic
    - traefik.http.services.portainer.loadbalancer.server.port=9000
    - traefik.http.routers.portainer_https.middlewares=fauth
    - traefik.http.routers.portainer_https.middlewares=fauth
    restart: unless-stopped
    organizr:
    image: 'linuxserver/organizr:latest'
    @@ -147,4 +145,249 @@ services:
    - traefik.http.routers.kitana_https.tls.certresolver=basic
    - traefik.http.services.kitana.loadbalancer.server.port=31337
    - traefik.http.routers.kitana_https.middlewares=fauth
    command: '-B 0.0.0.0:31337 -P'
    command: '-B 0.0.0.0:31337 -P'
    bazarr:
    image: 'linuxserver/bazarr:latest'
    container_name: bazarr
    hostname: bazarr
    volumes:
    - '.\bazarr\config:/config'
    - 'F:\Download\TvSeries\:/series/'
    - 'F:\Download\Action:/action/'
    ports:
    - '6767:6767'
    environment:
    - TZ=Europe/Bucharest
    restart: unless-stopped
    env_file:
    - .env
    labels:
    - com.ouroboros.enable=true
    - traefik.enable=true
    - traefik.http.routers.bazarr.entrypoints=web
    - 'traefik.http.routers.bazarr.rule=Host(`bazarr.${ZONE}`)'
    - traefik.http.routers.bazarr_https.entrypoints=web-secure
    - 'traefik.http.routers.bazarr_https.rule=Host(`bazarr.${ZONE}`)'
    - traefik.http.routers.bazarr_https.tls=true
    - traefik.http.routers.bazarr_https.tls.certresolver=basic
    - traefik.http.services.bazarr.loadbalancer.server.port=6767
    influxdb-telegraf:
    image: 'influxdb:latest'
    container_name: influxdb-telegraf
    hostname: influxdb-telegraf
    volumes:
    - '.\influxdb-telegraf:/var/lib/influxdb'
    ports:
    - '8086:8086'
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    - traefik.enable=true
    - traefik.http.routers.influxdb-telegraf.entrypoints=web
    - traefik.http.routers.influxdb-telegraf.rule=Host(`influxdb-telegraf.localhost`)
    - traefik.http.services.influxdb-telegraf.loadbalancer.server.port=8086
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    - INFLUXDB_DATA_QUERY_LOG_EANBLED=false
    - INFLUXDB_REPORTING_DISABLED=true
    - INFLUXDB_LOGGING_FORMAT=json
    - INFLUXDB_LOGGING_SUPPRESS_LOGO=true
    - INFLUXDB_HTTP_LOG_ENABLED=false
    grafana:
    image: 'grafana/grafana:latest'
    container_name: grafana
    hostname: grafana
    ports:
    - '3000:3000'
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    volumes:
    - '.\grafana:/var/lib/grafana'
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    - traefik.enable=true
    - traefik.http.routers.grafana.entrypoints=web
    - 'traefik.http.routers.grafana.rule=Host(`grafana.${ZONE}`)'
    - traefik.http.routers.grafana_https.entrypoints=web-secure
    - 'traefik.http.routers.grafana_https.rule=Host(`grafana.${ZONE}`)'
    - traefik.http.routers.grafana_https.tls=true
    - traefik.http.routers.grafana_https.tls.certresolver=basic
    - traefik.http.services.grafana.loadbalancer.server.port=3000
    - traefik.http.routers.grafana_https.middlewares=fauth
    chronograf:
    image: 'chronograf:latest'
    container_name: chronograf
    hostname: chronograf
    ports:
    - '8888:8888'
    volumes:
    - '.\chonograf:/var/lib/chronograf'
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    - traefik.enable=true
    - traefik.http.routers.chronograf.entrypoints=web
    - traefik.http.routers.chronograf.rule=Host(`chronograf.localhost`)
    - traefik.http.services.chronograf.loadbalancer.server.port=8888
    tautulli:
    image: 'linuxserver/tautulli:latest'
    container_name: tautulli
    hostname: tautulli
    volumes:
    - '.\tautulli\config:/config'
    - '.\tautulli\config\logs:/logs'
    - 'C:\Users\iosif\AppData\Local\Plex Media Server\Logs:/plex-logs/'
    ports:
    - '8181:8181'
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    - traefik.enable=true
    - traefik.http.routers.tautulli.entrypoints=web
    - 'traefik.http.routers.tautulli.rule=Host(`tautulli.${ZONE}`)'
    - traefik.http.routers.tautulli_https.entrypoints=web-secure
    - 'traefik.http.routers.tautulli_https.rule=Host(`tautulli.${ZONE}`)'
    - traefik.http.routers.tautulli_https.tls=true
    - traefik.http.routers.tautulli_https.tls.certresolver=basic
    - traefik.http.services.tautulli.loadbalancer.server.port=8181
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    cloudflare-ddns:
    image: 'oznu/cloudflare-ddns:latest'
    container_name: cloudflare-ddns
    hostname: cloudflare-ddns
    env_file:
    - .env
    environment:
    - 'EMAIL=${EMAIL}'
    - 'API_KEY=${API_KEY}'
    - 'ZONE=${ZONE}'
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    ombi:
    image: 'linuxserver/ombi:latest'
    container_name: ombi
    hostname: ombi
    ports:
    - '3579:3579'
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    - traefik.enable=true
    # - traefik.http.routers.ombi.entrypoints=web
    # - 'traefik.http.routers.ombi.rule=Host(`ombi.${ZONE}`)'
    - traefik.http.routers.ombi_https.entrypoints=web-secure
    - 'traefik.http.routers.ombi_https.rule=Host(`ombi.${ZONE}`)'
    - traefik.http.routers.ombi_https.tls=true
    - traefik.http.routers.ombi_https.tls.certresolver=basic
    - traefik.http.services.ombi.loadbalancer.server.port=3579
    - traefik.http.routers.ombi_https.middlewares=fauth
    volumes:
    - '.\ombi\config:/config'
    heimdall:
    image: 'linuxserver/heimdall:latest'
    container_name: heimdall
    hostname: heimdall
    restart: unless-stopped
    environment:
    - PUID=1000
    - PGID=1000
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    volumes:
    - '.\heimdall:/config'
    ports:
    - '32843:443'
    - '32880:80'
    labels:
    - com.ouroboros.enable=true
    - traefik.enable=true
    - traefik.http.routers.heimdall.entrypoints=web
    - 'traefik.http.routers.heimdall.rule=Host(`heimdall.${ZONE}`)'
    - traefik.http.routers.heimdall_https.entrypoints=web-secure
    - 'traefik.http.routers.heimdall_https.rule=Host(`heimdall.${ZONE}`)'
    - traefik.http.routers.heimdall_https.tls=true
    - traefik.http.routers.heimdall_https.tls.certresolver=basic
    - traefik.http.services.heimdall.loadbalancer.server.port=80
    - traefik.http.routers.heimdall_https.middlewares=fauth
    ouroboros:
    image: 'pyouroboros/ouroboros:latest'
    container_name: ouroboros
    hostname: ouroboros
    restart: unless-stopped
    environment:
    - CLEANUP=true
    - INTERVAL=300
    - LOG_LEVEL=debug
    - SELF_UPDATE=true
    - DOCKER_TLS_VERIFY=false
    - LATEST=true
    - TZ=Europe/Bucharest
    - LABEL_ENABLE=true
    - 'NOTIFIERS="mailto://[email protected]"'
    volumes:
    - '/var/run/docker.sock:/var/run/docker.sock'
    - '.\ouroboros\logs:/var/lib/docker/containers'
    links:
    - 'influxdb-telegraf:influxdb-telegraf'
    piholeinflux:
    image: registry.gitlab.com/janw/pi-hole-influx
    container_name: piholeinflux
    hostname: piholeinflux
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    environment:
    - PIHOLE_INFLUXDB_HOST="influxdb-telegraf"
    - PIHOLE_INFLUXDB_PORT="8086"
    - PIHOLE_INFLUXDB_USERNAME="pihole"
    - PIHOLE_INFLUXDB_PASSWORD="pihole"
    - PIHOLE_INFLUXDB_DATABASE="pihole"
    - 'PIHOLE_INSTANCES="pihole=http://192.168.0.53/admin/api.php"'
    dashmachine:
    image: rmountjoy/dashmachine
    container_name: dashmachine
    hostname: dashmachine
    restart: unless-stopped
    environment:
    - 'TZ=${TZ}'
    labels:
    - com.ouroboros.enable=true
    - traefik.enable=true
    # - traefik.http.routers.dashmachine.entrypoints=web
    # - 'traefik.http.routers.dashmachine.rule=Host(`dash.${ZONE}`)'
    - traefik.http.routers.dashmachine_https.entrypoints=web-secure
    - 'traefik.http.routers.dashmachine_https.rule=Host(`dash.${ZONE}`)'
    - traefik.http.routers.dashmachine_https.tls=true
    - traefik.http.routers.dashmachine_https.tls.certresolver=basic
    - traefik.http.services.dashmachine.loadbalancer.server.port=5000
    - traefik.http.routers.dashmachine_https.middlewares=fauth
    ports:
    - '5000:5000'
    volumes:
    - '.\dashmachine:/dashmachine/dashmachine/user_data'
    volumes:
    letsencrypt: null
  2. IosifZ revised this gist Jul 14, 2020. 1 changed file with 22 additions and 0 deletions.
    22 changes: 22 additions & 0 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -51,6 +51,28 @@ services:
    - '--certificatesresolvers.basic.acme.tlschallenge=true'
    - '--certificatesresolvers.basic.acme.email=${EMAIL}'
    - '--certificatesresolvers.basic.acme.storage=/letsencrypt/acme.json'
    fauth:
    image: thomseddon/traefik-forward-auth
    container_name: fauth
    hostname: fauth
    restart: unless-stopped
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - LOG_LEVEL=debug
    - 'PROVIDERS_GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}'
    - 'PROVIDERS_GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}'
    - 'SECRET=${OAUTH_SECRET}'
    - INSECURE_COOKIE=false
    - WHITELIST=${EMAIL}
    labels:
    - com.ouroboros.enable=true
    - traefik.enable=true
    # - 'traefik.http.middlewares.fauth.forwardauth.address=http://fauth:4181'
    # - traefik.http.middlewares.fauth.forwardauth.authResponseHeaders=X-Forwarded-User
    - traefik.http.middlewares.fauth.forwardauth.trustForwardHeader=true
    - traefik.http.services.fauth.loadbalancer.server.port=4181
    portainer:
    image: 'portainer/portainer:latest'
    container_name: portainer
  3. IosifZ revised this gist Jul 14, 2020. 1 changed file with 48 additions and 31 deletions.
    79 changes: 48 additions & 31 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -21,15 +21,12 @@ services:
    - traefik.http.routers.traefik.entrypoints=web
    - traefik.http.routers.traefik.rule=Host(`traefik.localhost`)
    - traefik.http.services.traefik.loadbalancer.server.port=8080
    - traefik.http.middlewares.testHeader.headers.framedeny=true
    - traefik.http.middlewares.testHeader.headers.sslredirect=true
    - traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
    - 'traefik.http.routers.redirs.rule=hostregexp(`{host:.+}`)'
    - traefik.http.routers.redirs.entrypoints=web
    - traefik.http.routers.redirs.middlewares=redirect-to-https
    - traefik.http.middlewares.sso.forwardauth.address="http://fauth:4181"
    - traefik.http.middlewares.sso.forwardauth.trustForwardHeader=true
    - traefik.http.middlewares.sso.forwardauth.authResponseHeaders=X-Auth-User, X-Secret
    - 'traefik.https.middlewares.fauth.forwardauth.address="http://fauth:4181" '
    - traefik.https.middlewares.fauth.forwardauth.authResponseHeaders=X-Forwarded-User
    environment:
    - 'CLOUDFLARE_EMAIL=${EMAIL}'
    - 'CLOUDFLARE_API_KEY=${API_KEY}'
    @@ -54,6 +51,32 @@ services:
    - '--certificatesresolvers.basic.acme.tlschallenge=true'
    - '--certificatesresolvers.basic.acme.email=${EMAIL}'
    - '--certificatesresolvers.basic.acme.storage=/letsencrypt/acme.json'
    portainer:
    image: 'portainer/portainer:latest'
    container_name: portainer
    hostname: portainer
    env_file:
    - .env
    environment:
    - com.ouroboros.enable=true
    - TZ=Europe/Bucharest
    volumes:
    - '.\Portainer:/data'
    - '/var/run/docker.sock:/var/run/docker.sock'
    ports:
    - '9000:9000'
    labels:
    - com.ouroboros.enable=true
    - traefik.enable=true
    - traefik.http.routers.portainer.entrypoints=web
    - 'traefik.http.routers.portainer.rule=Host(`portainer.${ZONE}`)'
    - traefik.http.routers.portainer_https.entrypoints=web-secure
    - 'traefik.http.routers.portainer_https.rule=Host(`portainer.${ZONE}`)'
    - traefik.http.routers.portainer_https.tls=true
    - traefik.http.routers.portainer_https.tls.certresolver=basic
    - traefik.http.services.portainer.loadbalancer.server.port=9000
    - traefik.http.routers.portainer_https.middlewares=fauth
    restart: unless-stopped
    organizr:
    image: 'linuxserver/organizr:latest'
    container_name: organizr
    @@ -78,34 +101,28 @@ services:
    - traefik.http.routers.organizr_https.tls=true
    - traefik.http.routers.organizr_https.tls.certresolver=basic
    - traefik.http.services.organizr.loadbalancer.server.port=80
    fauth:
    image: thomseddon/traefik-forward-auth
    container_name: fauth
    hostname: fauth
    - traefik.http.routers.organizr_https.middlewares=fauth
    kitana:
    image: pannal/kitana
    container_name: kitana
    hostname: kitana
    restart: unless-stopped
    volumes:
    - '.\fauth\forward.ini:/forward.ini'
    env_file:
    - .env
    environment:
    - LOG_LEVEL=debug
    - PROVIDERS_GOOGLE_CLIENT_ID=$GOOGLE_CLIENT_ID
    - PROVIDERS_GOOGLE_CLIENT_SECRET=$GOOGLE_CLIENT_SECRET
    - SECRET=$OAUTH_SECRET
    - INSECURE_COOKIE=true
    - DOMAIN=$ZONE
    - AUTH_HOST=auth.$ZONE
    - cookie-domain="example.com"
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    volumes:
    - '.\kitana:/app/data'
    ports:
    - '31337:31337'
    labels:
    - com.ouroboros.enable=true
    - traefik.enable=true
    - traefik.http.routers.fauth.entrypoints=web
    - 'traefik.http.routers.fauth.rule=Host(`oauth.${ZONE}`)'
    - traefik.http.routers.fauth_https.entrypoints=web-secure
    - 'traefik.http.routers.fauth_https.rule=Host(`oauth.${ZONE}`)'
    - traefik.http.routers.fauth_https.tls=true
    - traefik.http.routers.fauth_https.tls.certresolver=basic
    - traefik.http.services.fauth.loadbalancer.server.port=4181
    - traefik.http.routers.fauth.tls.middlewares=sso
    volumes:
    letsencrypt: null
    - traefik.http.routers.kitana.entrypoints=web
    - 'traefik.http.routers.kitana.rule=Host(`kitana.${ZONE}`)'
    - traefik.http.routers.kitana_https.entrypoints=web-secure
    - 'traefik.http.routers.kitana_https.rule=Host(`kitana.${ZONE}`)'
    - traefik.http.routers.kitana_https.tls=true
    - traefik.http.routers.kitana_https.tls.certresolver=basic
    - traefik.http.services.kitana.loadbalancer.server.port=31337
    - traefik.http.routers.kitana_https.middlewares=fauth
    command: '-B 0.0.0.0:31337 -P'
  4. IosifZ revised this gist Apr 24, 2020. 1 changed file with 54 additions and 420 deletions.
    474 changes: 54 additions & 420 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -1,47 +1,40 @@
    version: '3.7'
    services:
    traefik_v2.0:
    image: 'traefik:2.0'
    container_name: traefik_v2.0
    hostname: traefik_v2.0
    image: 'traefik:2.2'
    container_name: traefik_v2
    hostname: traefik_v2
    ports:
    - '443:443'
    - '80:80'
    - '8080:8080'
    volumes:
    - '/var/run/docker.sock:/var/run/docker.sock'
    - 'letsencrypt:/letsencrypt'
    # - '.\traefik_v2\traefik.yml:/etc/traefik/traefik.yml'
    - '.\traefik_v2\rules.yml:/rules.yml'
    env_file:
    - .env
    restart: unless-stopped
    # domainname: '${ZONE}'
    labels:
    - com.ouroboros.enable=true
    - "traefik.enable=true"
    - "traefik.http.routers.traefik.entrypoints=web"
    - "traefik.http.routers.traefik.rule=Host(`traefik.localhost`)"
    # - "traefik.http.routers.traefik_https.entrypoints=web-secure"
    # - "traefik.http.routers.traefik_https.rule=Host(`traefik.localhost`)"
    # - "traefik.http.routers.traefik_https.tls.certresolver=basic"
    # - "traefik.http.routers.traefik_https.service=api@internal"
    # - "traefik.http.routers.traefik_https.tls.domains[0].main=*.${ZONE}"
    # - "traefik.http.routers.traefik_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.traefik.loadbalancer.server.port=8080"
    - "traefik.http.middlewares.testHeader.headers.framedeny=true"
    - "traefik.http.middlewares.testHeader.headers.sslredirect=true"
    # middleware redirect
    - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
    # global redirect to https
    - "traefik.http.routers.redirs.rule=hostregexp(`{host:.+}`)"
    - "traefik.http.routers.redirs.entrypoints=web"
    - "traefik.http.routers.redirs.middlewares=redirect-to-https"
    - traefik.enable=true
    - traefik.http.routers.traefik.entrypoints=web
    - traefik.http.routers.traefik.rule=Host(`traefik.localhost`)
    - traefik.http.services.traefik.loadbalancer.server.port=8080
    - traefik.http.middlewares.testHeader.headers.framedeny=true
    - traefik.http.middlewares.testHeader.headers.sslredirect=true
    - traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
    - 'traefik.http.routers.redirs.rule=hostregexp(`{host:.+}`)'
    - traefik.http.routers.redirs.entrypoints=web
    - traefik.http.routers.redirs.middlewares=redirect-to-https
    - traefik.http.middlewares.sso.forwardauth.address="http://fauth:4181"
    - traefik.http.middlewares.sso.forwardauth.trustForwardHeader=true
    - traefik.http.middlewares.sso.forwardauth.authResponseHeaders=X-Auth-User, X-Secret
    environment:
    - "CLOUDFLARE_EMAIL=${EMAIL}"
    - "CLOUDFLARE_API_KEY=${API_KEY}"
    - "com.ouroboros.enable=true"
    - "TZ=Europe/Bucharest"
    - 'CLOUDFLARE_EMAIL=${EMAIL}'
    - 'CLOUDFLARE_API_KEY=${API_KEY}'
    - com.ouroboros.enable=true
    - TZ=Europe/Bucharest
    command:
    - '--log.level=DEBUG'
    - '--log.format=json'
    @@ -61,240 +54,6 @@ services:
    - '--certificatesresolvers.basic.acme.tlschallenge=true'
    - '--certificatesresolvers.basic.acme.email=${EMAIL}'
    - '--certificatesresolvers.basic.acme.storage=/letsencrypt/acme.json'
    # - '--certificatesresolvers.basic.acme.dnschallenge=true'
    # - '--certificatesresolvers.basic.acme.dnschallenge.provider=cloudflare'
    # - '--certificatesresolvers.basic.acme.dnsChallenge.resolvers=1.1.1.1'
    # - '--certificatesresolvers.basic.acme.dnsChallenge.delayBeforeCheck=0'
    # - '--certificatesresolvers.basic.acme.dnsChallenge.disablepropagationcheck=true'
    # - '--certificatesResolvers.basic.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory'
    bazarr:
    image: 'linuxserver/bazarr:latest'
    container_name: bazarr
    hostname: bazarr
    volumes:
    - '.\bazarr\config:/config'
    - 'F:\Download\TvSeries\:/series/'
    - 'F:\Download\Action:/action/'
    ports:
    - '6767:6767'
    environment:
    - TZ=Europe/Bucharest
    restart: unless-stopped
    env_file:
    - .env
    labels:
    - com.ouroboros.enable=true
    # - traefik.frontend.passHostHeader=true
    # - traefik.port=6767
    - "traefik.enable=true"
    - "traefik.http.routers.bazarr.entrypoints=web"
    - "traefik.http.routers.bazarr.rule=Host(`bazarr.${ZONE}`)"
    - "traefik.http.routers.bazarr_https.entrypoints=web-secure"
    - "traefik.http.routers.bazarr_https.rule=Host(`bazarr.${ZONE}`)"
    - "traefik.http.routers.bazarr_https.tls=true"
    - "traefik.http.routers.bazarr_https.tls.certresolver=basic"
    # - "traefik.http.routers.bazarr_https.tls.domains[0].main=*.${ZONE}"
    # - "traefik.http.routers.bazarr_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.bazarr.loadbalancer.server.port=6767"
    influxdb-telegraf:
    image: 'influxdb:latest'
    container_name: influxdb-telegraf
    hostname: influxdb-telegraf
    volumes:
    - '.\influxdb-telegraf:/var/lib/influxdb'
    ports:
    - '8086:8086'
    restart: unless-stopped
    labels:
    # - 'traefik.frontend.rule=Host:influxdb-telegraf.localhost'
    # - traefik.backend=influxdb-telegraf
    - com.ouroboros.enable=true
    - "traefik.enable=true"
    - "traefik.http.routers.influxdb-telegraf.entrypoints=web"
    - "traefik.http.routers.influxdb-telegraf.rule=Host(`influxdb-telegraf.localhost`)"
    - "traefik.http.services.influxdb-telegraf.loadbalancer.server.port=8086"
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    - INFLUXDB_DATA_QUERY_LOG_EANBLED=false
    - INFLUXDB_REPORTING_DISABLED=true
    - INFLUXDB_LOGGING_FORMAT=json
    - INFLUXDB_LOGGING_SUPPRESS_LOGO=true
    - INFLUXDB_HTTP_LOG_ENABLED=false
    grafana:
    image: 'grafana/grafana:latest'
    container_name: grafana
    hostname: grafana
    ports:
    - '3000:3000'
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    volumes:
    - '.\grafana:/var/lib/grafana'
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    # - 'traefik.frontend.rule=Host:grafana.${ZONE}'
    # - traefik.enable=true
    # - traefik.port=3000
    # - traefik.backend=grafana
    - "traefik.enable=true"
    - "traefik.http.routers.grafana.entrypoints=web"
    - "traefik.http.routers.grafana.rule=Host(`grafana.${ZONE}`)"
    - "traefik.http.routers.grafana_https.entrypoints=web-secure"
    - "traefik.http.routers.grafana_https.rule=Host(`grafana.${ZONE}`)"
    - "traefik.http.routers.grafana_https.tls=true"
    - "traefik.http.routers.grafana_https.tls.certresolver=basic"
    # - "traefik.http.routers.grafana_https.tls.domains[0].main=*.${ZONE}"
    # - "traefik.http.routers.grafana_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.grafana.loadbalancer.server.port=3000"
    chronograf:
    image: 'chronograf:latest'
    container_name: chronograf
    hostname: chronograf
    ports:
    - '8888:8888'
    volumes:
    - '.\chronograf:/var/lib/chronograf'
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    # - 'traefik.frontend.rule=Host:chronograf.localhost'
    # - traefik.backend=chronograf
    - "traefik.enable=true"
    - "traefik.http.routers.chronograf.entrypoints=web"
    - "traefik.http.routers.chronograf.rule=Host(`chronograf.localhost`)"
    - "traefik.http.services.chronograf.loadbalancer.server.port=8888"
    tautulli:
    image: 'linuxserver/tautulli:latest'
    container_name: tautulli
    hostname: tautulli
    volumes:
    - '.\tautulli\config:/config'
    - '.\tautulli\config\logs:/logs'
    - 'C:\Users\iosif\AppData\Local\Plex Media Server\Logs:/plex-logs/'
    ports:
    - '8181:8181'
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    # - traefik.frontend.passHostHeader=true
    - "traefik.enable=true"
    - "traefik.http.routers.tautulli_https.entrypoints=web-secure"
    - "traefik.http.routers.tautulli_https.rule=Host(`tautulli.${ZONE}`)"
    - "traefik.http.routers.tautulli_https.tls=true"
    - "traefik.http.routers.tautulli_https.tls.certresolver=basic"
    # - "traefik.http.routers.tautulli_https.tls.domains[0].main=*.${ZONE}"
    # - "traefik.http.routers.tautulli_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.tautulli.loadbalancer.server.port=8181"
    # - "traefik.http.services.tautulli.loadbalancer.passhostheader=true"
    env_file:
    - .env
    environment:
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    cloudflare-ddns:
    image: 'oznu/cloudflare-ddns:latest'
    container_name: cloudflare-ddns
    hostname: cloudflare-ddns
    env_file:
    - .env
    environment:
    - 'EMAIL=${EMAIL}'
    - 'API_KEY=${API_KEY}'
    - 'ZONE=${ZONE}'
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    ombi:
    image: 'linuxserver/ombi:latest'
    container_name: ombi
    hostname: ombi
    ports:
    - '3579:3579'
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    # - 'traefik.frontend.rule=Host:ombi.${ZONE}'
    # - traefik.frontend.passHostHeader=true
    # - traefik.enable=true
    # - traefik.port=3579
    # - traefik.backend=ombi
    - "traefik.enable=true"
    - "traefik.http.routers.ombi.entrypoints=web"
    - "traefik.http.routers.ombi.rule=Host(`ombi.${ZONE}`)"
    - "traefik.http.routers.ombi_https.entrypoints=web-secure"
    - "traefik.http.routers.ombi_https.rule=Host(`ombi.${ZONE}`)"
    - "traefik.http.routers.ombi_https.tls=true"
    - "traefik.http.routers.ombi_https.tls.certresolver=basic"
    # - "traefik.http.routers.ombi_https.tls.domains[0].main=*.${ZONE}"
    # - "traefik.http.routers.ombi_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.ombi.loadbalancer.server.port=3579"
    # - "traefik.http.services.ombi.loadbalancer.passhostheader=true"
    volumes:
    - '.\ombi\config:/config'
    portainer:
    image: 'portainer/portainer:latest'
    container_name: portainer
    hostname: portainer
    env_file:
    - .env
    environment:
    - com.ouroboros.enable=true
    - TZ=Europe/Bucharest
    volumes:
    - '.\Portainer:/data'
    - '/var/run/docker.sock:/var/run/docker.sock'
    ports:
    - '9000:9000'
    labels:
    - com.ouroboros.enable=true
    # - 'traefik.frontend.rule=Host:portainer.localhost'
    # - traefik.backend=portainer
    - "traefik.enable=true"
    - "traefik.http.routers.portainer.entrypoints=web"
    - "traefik.http.routers.portainer.rule=Host(`portainer.localhost`)"
    - "traefik.http.services.portainer.loadbalancer.server.port=9000"
    restart: unless-stopped
    logarr:
    image: 'monitorr/logarr:latest'
    container_name: logarr
    hostname: logarr
    environment:
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    restart: unless-stopped
    volumes:
    - '.\logarr\config:/config'
    - 'C:\ProgramData\Sonarr\logs:/sonarr/'
    - 'C:\ProgramData\Radarr\logs:/radarr/'
    ports:
    - '32773:80'
    labels:
    - com.ouroboros.enable=true
    # - 'traefik.frontend.rule=Host:logarr.localhost'
    # - traefik.backend=logarr
    - "traefik.enable=true"
    - "traefik.http.routers.logarr.entrypoints=web"
    - "traefik.http.routers.logarr.rule=Host(`logarr.localhost`)"
    - "traefik.http.services.logarr.loadbalancer.server.port=80"
    organizr:
    image: 'linuxserver/organizr:latest'
    container_name: organizr
    @@ -310,168 +69,43 @@ services:
    ports:
    - '9983:80'
    labels:
    - com.ouroboros.enable=true
    # - 'traefik.frontend.rule=Host:organizr.${ZONE}'
    # - traefik.backend=organizr
    - "traefik.enable=true"
    - "traefik.http.routers.organizr.entrypoints=web"
    - "traefik.http.routers.organizr.rule=Host(`organizr.${ZONE}`)"
    - "traefik.http.routers.organizr_https.entrypoints=web-secure"
    - "traefik.http.routers.organizr_https.rule=Host(`organizr.${ZONE}`)"
    - "traefik.http.routers.organizr_https.tls=true"
    - "traefik.http.routers.organizr_https.tls.certresolver=basic"
    # - "traefik.http.routers.organizr_https.tls.domains[0].main=*.${ZONE}"
    # - "traefik.http.routers.organizr_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.organizr.loadbalancer.server.port=80"
    heimdall:
    image: 'linuxserver/heimdall:latest'
    container_name: heimdall
    hostname: heimdall
    restart: unless-stopped
    environment:
    - PUID=1000
    - PGID=1000
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    volumes:
    - '.\heimdall:/config'
    ports:
    - '32843:443'
    - '32880:80'
    labels:
    - com.ouroboros.enable=true
    # - 'traefik.frontend.rule=Host:heimdall.${ZONE}'
    # - traefik.enable=true
    # - traefik.backend=heimdall
    - "traefik.enable=true"
    - "traefik.http.routers.heimdall.entrypoints=web"
    - "traefik.http.routers.heimdall.rule=Host(`heimdall.${ZONE}`)"
    - "traefik.http.routers.heimdall_https.entrypoints=web-secure"
    - "traefik.http.routers.heimdall_https.rule=Host(`heimdall.${ZONE}`)"
    - "traefik.http.routers.heimdall_https.tls=true"
    - "traefik.http.routers.heimdall_https.tls.certresolver=basic"
    # - "traefik.http.routers.heimdall_https.tls.domains[0].main=*.${ZONE}"
    # - "traefik.http.routers.heimdall_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.heimdall.loadbalancer.server.port=80"
    ouroboros:
    image: 'pyouroboros/ouroboros:latest'
    container_name: ouroboros
    hostname: ouroboros
    - traefik.enable=true
    - traefik.http.routers.organizr.entrypoints=web
    - 'traefik.http.routers.organizr.rule=Host(`organizr.${ZONE}`)'
    - traefik.http.routers.organizr_https.entrypoints=web-secure
    - 'traefik.http.routers.organizr_https.rule=Host(`organizr.${ZONE}`)'
    - traefik.http.routers.organizr_https.tls=true
    - traefik.http.routers.organizr_https.tls.certresolver=basic
    - traefik.http.services.organizr.loadbalancer.server.port=80
    fauth:
    image: thomseddon/traefik-forward-auth
    container_name: fauth
    hostname: fauth
    restart: unless-stopped
    environment:
    - CLEANUP=true
    - INTERVAL=300
    - LOG_LEVEL=debug
    - SELF_UPDATE=true
    - DOCKER_TLS_VERIFY=false
    - LATEST=true
    - TZ=Europe/Bucharest
    - LABEL_ENABLE=true
    - 'NOTIFIERS="mailto://iosif.zamfirescu:[email protected]"'
    # - DATA_EXPORT=influxdb
    # - INFLUX_URL=influxdb-telegraf
    # - INFLUX_PORT=8086
    # - INFLUX_USERNAME=ouroboros
    # - INFLUX_PASSWORD=ouroboros
    # - INFLUX_DATABASE=ouroboros
    # - INFLUX_SSL=false
    # - INFLUX_VERIFY_SSL=false
    volumes:
    - '/var/run/docker.sock:/var/run/docker.sock'
    - '.\ouroboros\logs:/var/lib/docker/containers'
    links:
    - 'influxdb-telegraf:influxdb-telegraf'
    piholeinflux:
    image: registry.gitlab.com/janw/pi-hole-influx
    container_name: piholeinflux
    hostname: piholeinflux
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    environment:
    - PIHOLE_INFLUXDB_HOST="influxdb-telegraf"
    - PIHOLE_INFLUXDB_PORT="8086"
    - PIHOLE_INFLUXDB_USERNAME="pihole"
    - PIHOLE_INFLUXDB_PASSWORD="pihole"
    - PIHOLE_INFLUXDB_DATABASE="pihole"
    - 'PIHOLE_INSTANCES="pihole=http://192.168.0.53/admin/api.php"'
    filebeat:
    image: 'docker.elastic.co/beats/filebeat:${ELK_VERSION}'
    container_name: filebeat
    hostname: filebeat
    restart: unless-stopped
    user: root
    volumes:
    - '.\filebeat\filebeat.yml:/usr/share/filebeat/filebeat.yml'
    - '/var/lib/docker/:/var/lib/docker'
    - '/var/run/docker.sock:/var/run/docker.sock'
    - '.:/logs/'
    command: '--strict.perms=false'
    elasticsearch:
    image: 'docker.elastic.co/elasticsearch/elasticsearch:${ELK_VERSION}'
    container_name: elasticsearch
    hostname: elasticsearch
    - '.\fauth\forward.ini:/forward.ini'
    env_file:
    - .env
    environment:
    - discovery.type=single-node
    - xpack.security.enabled=false
    - ELASTIC_PASSWORD=changeme
    restart: unless-stopped
    volumes:
    - '.\elasticsearch\data\:/usr/share/elasticsearch/data'
    ports:
    - '9200:9200'
    - '9300:9300'
    kibana:
    image: 'docker.elastic.co/kibana/kibana:${ELK_VERSION}'
    container_name: kibana
    hostname: kibana
    restart: unless-stopped
    - LOG_LEVEL=debug
    - PROVIDERS_GOOGLE_CLIENT_ID=$GOOGLE_CLIENT_ID
    - PROVIDERS_GOOGLE_CLIENT_SECRET=$GOOGLE_CLIENT_SECRET
    - SECRET=$OAUTH_SECRET
    - INSECURE_COOKIE=true
    - DOMAIN=$ZONE
    - AUTH_HOST=auth.$ZONE
    - cookie-domain="example.com"
    labels:
    # - 'traefik.frontend.rule=Host:kibana.localhost'
    # - traefik.backend=kibana
    - "traefik.enable=true"
    - "traefik.http.routers.kibana.entrypoints=web"
    - "traefik.http.routers.kibana.rule=Host(`kibana.localhost`)"
    ports:
    - '5601:5601'
    links:
    - 'elasticsearch:elasticsearch'
    - com.ouroboros.enable=true
    - traefik.enable=true
    - traefik.http.routers.fauth.entrypoints=web
    - 'traefik.http.routers.fauth.rule=Host(`oauth.${ZONE}`)'
    - traefik.http.routers.fauth_https.entrypoints=web-secure
    - 'traefik.http.routers.fauth_https.rule=Host(`oauth.${ZONE}`)'
    - traefik.http.routers.fauth_https.tls=true
    - traefik.http.routers.fauth_https.tls.certresolver=basic
    - traefik.http.services.fauth.loadbalancer.server.port=4181
    - traefik.http.routers.fauth.tls.middlewares=sso
    volumes:
    letsencrypt:
    # traefik:
    # image: 'traefik:v1.7'
    # container_name: traefik
    # hostname: traefik
    # ports:
    # - '80:80'
    # - '8080:8080'
    # - '443:443'
    # volumes:
    # - '.\traefik:/etc/traefik'
    # - '/var/run/docker.sock:/var/run/docker.sock'
    # - '.\traefik\rules.toml:/etc/traefik/rules.toml'
    # env_file:
    # - .env
    # restart: unless-stopped
    # domainname: '${ZONE}'
    # environment:
    # - 'CF_API_EMAIL=${EMAIL}'
    # - 'CF_API_KEY=${API_KEY}'
    # - com.ouroboros.enable=true
    # - TZ=Europe/Bucharest
    # labels:
    # - traefik.enable=true
    # - traefik.backend=traefik
    # - traefik.port=8080
    # - traefik.frontend.headers.SSLRedirect=true
    # - traefik.frontend.headers.STSSeconds=315360000
    # - traefik.frontend.headers.browserXSSFilter=true
    # - traefik.frontend.headers.contentTypeNosniff=true
    # - traefik.frontend.headers.forceSTSHeader=true
    # - traefik.frontend.headers.SSLHost=example.com
    # - traefik.frontend.headers.STSIncludeSubdomains=true
    # - traefik.frontend.headers.STSPreload=true
    # - traefik.frontend.headers.frameDeny=true
    # - traefik.frontend.passHostHeader=true
    # - 'traefik.frontend.rule=Host:traefik.localhost'
    # command: '--acme.storage=/acme.json'
    letsencrypt: null
  5. IosifZ revised this gist Nov 11, 2019. 1 changed file with 420 additions and 15 deletions.
    435 changes: 420 additions & 15 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -10,24 +10,24 @@ services:
    - '8080:8080'
    volumes:
    - '/var/run/docker.sock:/var/run/docker.sock'
    - './letsencrypt:/letsencrypt'
    - 'letsencrypt:/letsencrypt'
    # - '.\traefik_v2\traefik.yml:/etc/traefik/traefik.yml'
    - '.\traefik_v2\rules.yml:/rules.yml'
    env_file:
    - .env
    restart: unless-stopped
    domainname: '${ZONE}'
    # domainname: '${ZONE}'
    labels:
    - com.ouroboros.enable=true
    - "traefik.enable=true"
    - "traefik.http.routers.traefik.entrypoints=web"
    - "traefik.http.routers.traefik.rule=Host(`traefik.localhost`)"
    - "traefik.http.routers.traefik_https.entrypoints=web-secure"
    - "traefik.http.routers.traefik_https.rule=Host(`traefik.localhost`)"
    - "traefik.http.routers.traefik_https.tls.certresolver=basic"
    # - "traefik.http.routers.traefik_https.entrypoints=web-secure"
    # - "traefik.http.routers.traefik_https.rule=Host(`traefik.localhost`)"
    # - "traefik.http.routers.traefik_https.tls.certresolver=basic"
    # - "traefik.http.routers.traefik_https.service=api@internal"
    - "traefik.http.routers.traefik_https.tls.domains[0].main=*.${ZONE}"
    - "traefik.http.routers.traefik_https.tls.domains[0].sans=${ZONE}"
    # - "traefik.http.routers.traefik_https.tls.domains[0].main=*.${ZONE}"
    # - "traefik.http.routers.traefik_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.traefik.loadbalancer.server.port=8080"
    - "traefik.http.middlewares.testHeader.headers.framedeny=true"
    - "traefik.http.middlewares.testHeader.headers.sslredirect=true"
    @@ -56,17 +56,422 @@ services:
    - '--ping'
    - '--providers.docker.exposedByDefault=false'
    - '--providers.docker.watch=true'
    # - '--providers.docker.tls.insecureSkipVerify=true'
    - '--providers.file.filename=/rules.yml'
    - '--providers.file.watch=true'
    - '--certificatesresolvers.basic.acme.storage=/acme.json'
    - '--certificatesresolvers.basic.acme.tlschallenge=true'
    - '--certificatesresolvers.basic.acme.email=${EMAIL}'
    - '--certificatesresolvers.basic.acme.storage=/letsencrypt/acme.json'
    # - '--certificatesresolvers.basic.acme.dnschallenge=true'
    # - '--certificatesresolvers.basic.acme.dnschallenge.provider=cloudflare'
    # - '--certificatesresolvers.basic.acme.email=${EMAIL}'
    # - '--certificatesresolvers.basic.acme.dnschallenge.provider=cloudflare'
    # - '--certificatesresolvers.basic.acme.dnsChallenge.resolvers=1.1.1.1'
    # - '--certificatesresolvers.basic.acme.dnsChallenge.delayBeforeCheck=0'
    # - '--certificatesresolvers.basic.acme.dnsChallenge.disablepropagationcheck=true'
    # - '--certificatesresolvers.basic.acme.storage=/letsencrypt/acme.json'
    - '--certificatesresolvers.basic.acme.tlschallenge=true'
    - '--certificatesresolvers.basic.acme.email=${EMAIL}'
    # - '--certificatesResolvers.basic.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory'
    # - '--certificatesResolvers.basic.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory'
    bazarr:
    image: 'linuxserver/bazarr:latest'
    container_name: bazarr
    hostname: bazarr
    volumes:
    - '.\bazarr\config:/config'
    - 'F:\Download\TvSeries\:/series/'
    - 'F:\Download\Action:/action/'
    ports:
    - '6767:6767'
    environment:
    - TZ=Europe/Bucharest
    restart: unless-stopped
    env_file:
    - .env
    labels:
    - com.ouroboros.enable=true
    # - traefik.frontend.passHostHeader=true
    # - traefik.port=6767
    - "traefik.enable=true"
    - "traefik.http.routers.bazarr.entrypoints=web"
    - "traefik.http.routers.bazarr.rule=Host(`bazarr.${ZONE}`)"
    - "traefik.http.routers.bazarr_https.entrypoints=web-secure"
    - "traefik.http.routers.bazarr_https.rule=Host(`bazarr.${ZONE}`)"
    - "traefik.http.routers.bazarr_https.tls=true"
    - "traefik.http.routers.bazarr_https.tls.certresolver=basic"
    # - "traefik.http.routers.bazarr_https.tls.domains[0].main=*.${ZONE}"
    # - "traefik.http.routers.bazarr_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.bazarr.loadbalancer.server.port=6767"
    influxdb-telegraf:
    image: 'influxdb:latest'
    container_name: influxdb-telegraf
    hostname: influxdb-telegraf
    volumes:
    - '.\influxdb-telegraf:/var/lib/influxdb'
    ports:
    - '8086:8086'
    restart: unless-stopped
    labels:
    # - 'traefik.frontend.rule=Host:influxdb-telegraf.localhost'
    # - traefik.backend=influxdb-telegraf
    - com.ouroboros.enable=true
    - "traefik.enable=true"
    - "traefik.http.routers.influxdb-telegraf.entrypoints=web"
    - "traefik.http.routers.influxdb-telegraf.rule=Host(`influxdb-telegraf.localhost`)"
    - "traefik.http.services.influxdb-telegraf.loadbalancer.server.port=8086"
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    - INFLUXDB_DATA_QUERY_LOG_EANBLED=false
    - INFLUXDB_REPORTING_DISABLED=true
    - INFLUXDB_LOGGING_FORMAT=json
    - INFLUXDB_LOGGING_SUPPRESS_LOGO=true
    - INFLUXDB_HTTP_LOG_ENABLED=false
    grafana:
    image: 'grafana/grafana:latest'
    container_name: grafana
    hostname: grafana
    ports:
    - '3000:3000'
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    volumes:
    - '.\grafana:/var/lib/grafana'
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    # - 'traefik.frontend.rule=Host:grafana.${ZONE}'
    # - traefik.enable=true
    # - traefik.port=3000
    # - traefik.backend=grafana
    - "traefik.enable=true"
    - "traefik.http.routers.grafana.entrypoints=web"
    - "traefik.http.routers.grafana.rule=Host(`grafana.${ZONE}`)"
    - "traefik.http.routers.grafana_https.entrypoints=web-secure"
    - "traefik.http.routers.grafana_https.rule=Host(`grafana.${ZONE}`)"
    - "traefik.http.routers.grafana_https.tls=true"
    - "traefik.http.routers.grafana_https.tls.certresolver=basic"
    # - "traefik.http.routers.grafana_https.tls.domains[0].main=*.${ZONE}"
    # - "traefik.http.routers.grafana_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.grafana.loadbalancer.server.port=3000"
    chronograf:
    image: 'chronograf:latest'
    container_name: chronograf
    hostname: chronograf
    ports:
    - '8888:8888'
    volumes:
    - '.\chronograf:/var/lib/chronograf'
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    # - 'traefik.frontend.rule=Host:chronograf.localhost'
    # - traefik.backend=chronograf
    - "traefik.enable=true"
    - "traefik.http.routers.chronograf.entrypoints=web"
    - "traefik.http.routers.chronograf.rule=Host(`chronograf.localhost`)"
    - "traefik.http.services.chronograf.loadbalancer.server.port=8888"
    tautulli:
    image: 'linuxserver/tautulli:latest'
    container_name: tautulli
    hostname: tautulli
    volumes:
    - '.\tautulli\config:/config'
    - '.\tautulli\config\logs:/logs'
    - 'C:\Users\iosif\AppData\Local\Plex Media Server\Logs:/plex-logs/'
    ports:
    - '8181:8181'
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    # - traefik.frontend.passHostHeader=true
    - "traefik.enable=true"
    - "traefik.http.routers.tautulli_https.entrypoints=web-secure"
    - "traefik.http.routers.tautulli_https.rule=Host(`tautulli.${ZONE}`)"
    - "traefik.http.routers.tautulli_https.tls=true"
    - "traefik.http.routers.tautulli_https.tls.certresolver=basic"
    # - "traefik.http.routers.tautulli_https.tls.domains[0].main=*.${ZONE}"
    # - "traefik.http.routers.tautulli_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.tautulli.loadbalancer.server.port=8181"
    # - "traefik.http.services.tautulli.loadbalancer.passhostheader=true"
    env_file:
    - .env
    environment:
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    cloudflare-ddns:
    image: 'oznu/cloudflare-ddns:latest'
    container_name: cloudflare-ddns
    hostname: cloudflare-ddns
    env_file:
    - .env
    environment:
    - 'EMAIL=${EMAIL}'
    - 'API_KEY=${API_KEY}'
    - 'ZONE=${ZONE}'
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    ombi:
    image: 'linuxserver/ombi:latest'
    container_name: ombi
    hostname: ombi
    ports:
    - '3579:3579'
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    # - 'traefik.frontend.rule=Host:ombi.${ZONE}'
    # - traefik.frontend.passHostHeader=true
    # - traefik.enable=true
    # - traefik.port=3579
    # - traefik.backend=ombi
    - "traefik.enable=true"
    - "traefik.http.routers.ombi.entrypoints=web"
    - "traefik.http.routers.ombi.rule=Host(`ombi.${ZONE}`)"
    - "traefik.http.routers.ombi_https.entrypoints=web-secure"
    - "traefik.http.routers.ombi_https.rule=Host(`ombi.${ZONE}`)"
    - "traefik.http.routers.ombi_https.tls=true"
    - "traefik.http.routers.ombi_https.tls.certresolver=basic"
    # - "traefik.http.routers.ombi_https.tls.domains[0].main=*.${ZONE}"
    # - "traefik.http.routers.ombi_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.ombi.loadbalancer.server.port=3579"
    # - "traefik.http.services.ombi.loadbalancer.passhostheader=true"
    volumes:
    - '.\ombi\config:/config'
    portainer:
    image: 'portainer/portainer:latest'
    container_name: portainer
    hostname: portainer
    env_file:
    - .env
    environment:
    - com.ouroboros.enable=true
    - TZ=Europe/Bucharest
    volumes:
    - '.\Portainer:/data'
    - '/var/run/docker.sock:/var/run/docker.sock'
    ports:
    - '9000:9000'
    labels:
    - com.ouroboros.enable=true
    # - 'traefik.frontend.rule=Host:portainer.localhost'
    # - traefik.backend=portainer
    - "traefik.enable=true"
    - "traefik.http.routers.portainer.entrypoints=web"
    - "traefik.http.routers.portainer.rule=Host(`portainer.localhost`)"
    - "traefik.http.services.portainer.loadbalancer.server.port=9000"
    restart: unless-stopped
    logarr:
    image: 'monitorr/logarr:latest'
    container_name: logarr
    hostname: logarr
    environment:
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    restart: unless-stopped
    volumes:
    - '.\logarr\config:/config'
    - 'C:\ProgramData\Sonarr\logs:/sonarr/'
    - 'C:\ProgramData\Radarr\logs:/radarr/'
    ports:
    - '32773:80'
    labels:
    - com.ouroboros.enable=true
    # - 'traefik.frontend.rule=Host:logarr.localhost'
    # - traefik.backend=logarr
    - "traefik.enable=true"
    - "traefik.http.routers.logarr.entrypoints=web"
    - "traefik.http.routers.logarr.rule=Host(`logarr.localhost`)"
    - "traefik.http.services.logarr.loadbalancer.server.port=80"
    organizr:
    image: 'linuxserver/organizr:latest'
    container_name: organizr
    hostname: organizr
    environment:
    - PUID=1000
    - PGID=1000
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    restart: unless-stopped
    volumes:
    - '.\organizr:/config'
    ports:
    - '9983:80'
    labels:
    - com.ouroboros.enable=true
    # - 'traefik.frontend.rule=Host:organizr.${ZONE}'
    # - traefik.backend=organizr
    - "traefik.enable=true"
    - "traefik.http.routers.organizr.entrypoints=web"
    - "traefik.http.routers.organizr.rule=Host(`organizr.${ZONE}`)"
    - "traefik.http.routers.organizr_https.entrypoints=web-secure"
    - "traefik.http.routers.organizr_https.rule=Host(`organizr.${ZONE}`)"
    - "traefik.http.routers.organizr_https.tls=true"
    - "traefik.http.routers.organizr_https.tls.certresolver=basic"
    # - "traefik.http.routers.organizr_https.tls.domains[0].main=*.${ZONE}"
    # - "traefik.http.routers.organizr_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.organizr.loadbalancer.server.port=80"
    heimdall:
    image: 'linuxserver/heimdall:latest'
    container_name: heimdall
    hostname: heimdall
    restart: unless-stopped
    environment:
    - PUID=1000
    - PGID=1000
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    volumes:
    - '.\heimdall:/config'
    ports:
    - '32843:443'
    - '32880:80'
    labels:
    - com.ouroboros.enable=true
    # - 'traefik.frontend.rule=Host:heimdall.${ZONE}'
    # - traefik.enable=true
    # - traefik.backend=heimdall
    - "traefik.enable=true"
    - "traefik.http.routers.heimdall.entrypoints=web"
    - "traefik.http.routers.heimdall.rule=Host(`heimdall.${ZONE}`)"
    - "traefik.http.routers.heimdall_https.entrypoints=web-secure"
    - "traefik.http.routers.heimdall_https.rule=Host(`heimdall.${ZONE}`)"
    - "traefik.http.routers.heimdall_https.tls=true"
    - "traefik.http.routers.heimdall_https.tls.certresolver=basic"
    # - "traefik.http.routers.heimdall_https.tls.domains[0].main=*.${ZONE}"
    # - "traefik.http.routers.heimdall_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.heimdall.loadbalancer.server.port=80"
    ouroboros:
    image: 'pyouroboros/ouroboros:latest'
    container_name: ouroboros
    hostname: ouroboros
    restart: unless-stopped
    environment:
    - CLEANUP=true
    - INTERVAL=300
    - LOG_LEVEL=debug
    - SELF_UPDATE=true
    - DOCKER_TLS_VERIFY=false
    - LATEST=true
    - TZ=Europe/Bucharest
    - LABEL_ENABLE=true
    - 'NOTIFIERS="mailto://iosif.zamfirescu:[email protected]"'
    # - DATA_EXPORT=influxdb
    # - INFLUX_URL=influxdb-telegraf
    # - INFLUX_PORT=8086
    # - INFLUX_USERNAME=ouroboros
    # - INFLUX_PASSWORD=ouroboros
    # - INFLUX_DATABASE=ouroboros
    # - INFLUX_SSL=false
    # - INFLUX_VERIFY_SSL=false
    volumes:
    - '/var/run/docker.sock:/var/run/docker.sock'
    - '.\ouroboros\logs:/var/lib/docker/containers'
    links:
    - 'influxdb-telegraf:influxdb-telegraf'
    piholeinflux:
    image: registry.gitlab.com/janw/pi-hole-influx
    container_name: piholeinflux
    hostname: piholeinflux
    restart: unless-stopped
    labels:
    - com.ouroboros.enable=true
    environment:
    - PIHOLE_INFLUXDB_HOST="influxdb-telegraf"
    - PIHOLE_INFLUXDB_PORT="8086"
    - PIHOLE_INFLUXDB_USERNAME="pihole"
    - PIHOLE_INFLUXDB_PASSWORD="pihole"
    - PIHOLE_INFLUXDB_DATABASE="pihole"
    - 'PIHOLE_INSTANCES="pihole=http://192.168.0.53/admin/api.php"'
    filebeat:
    image: 'docker.elastic.co/beats/filebeat:${ELK_VERSION}'
    container_name: filebeat
    hostname: filebeat
    restart: unless-stopped
    user: root
    volumes:
    - '.\filebeat\filebeat.yml:/usr/share/filebeat/filebeat.yml'
    - '/var/lib/docker/:/var/lib/docker'
    - '/var/run/docker.sock:/var/run/docker.sock'
    - '.:/logs/'
    command: '--strict.perms=false'
    elasticsearch:
    image: 'docker.elastic.co/elasticsearch/elasticsearch:${ELK_VERSION}'
    container_name: elasticsearch
    hostname: elasticsearch
    environment:
    - discovery.type=single-node
    - xpack.security.enabled=false
    - ELASTIC_PASSWORD=changeme
    restart: unless-stopped
    volumes:
    - '.\elasticsearch\data\:/usr/share/elasticsearch/data'
    ports:
    - '9200:9200'
    - '9300:9300'
    kibana:
    image: 'docker.elastic.co/kibana/kibana:${ELK_VERSION}'
    container_name: kibana
    hostname: kibana
    restart: unless-stopped
    labels:
    # - 'traefik.frontend.rule=Host:kibana.localhost'
    # - traefik.backend=kibana
    - "traefik.enable=true"
    - "traefik.http.routers.kibana.entrypoints=web"
    - "traefik.http.routers.kibana.rule=Host(`kibana.localhost`)"
    ports:
    - '5601:5601'
    links:
    - 'elasticsearch:elasticsearch'
    volumes:
    letsencrypt:
    # traefik:
    # image: 'traefik:v1.7'
    # container_name: traefik
    # hostname: traefik
    # ports:
    # - '80:80'
    # - '8080:8080'
    # - '443:443'
    # volumes:
    # - '.\traefik:/etc/traefik'
    # - '/var/run/docker.sock:/var/run/docker.sock'
    # - '.\traefik\rules.toml:/etc/traefik/rules.toml'
    # env_file:
    # - .env
    # restart: unless-stopped
    # domainname: '${ZONE}'
    # environment:
    # - 'CF_API_EMAIL=${EMAIL}'
    # - 'CF_API_KEY=${API_KEY}'
    # - com.ouroboros.enable=true
    # - TZ=Europe/Bucharest
    # labels:
    # - traefik.enable=true
    # - traefik.backend=traefik
    # - traefik.port=8080
    # - traefik.frontend.headers.SSLRedirect=true
    # - traefik.frontend.headers.STSSeconds=315360000
    # - traefik.frontend.headers.browserXSSFilter=true
    # - traefik.frontend.headers.contentTypeNosniff=true
    # - traefik.frontend.headers.forceSTSHeader=true
    # - traefik.frontend.headers.SSLHost=example.com
    # - traefik.frontend.headers.STSIncludeSubdomains=true
    # - traefik.frontend.headers.STSPreload=true
    # - traefik.frontend.headers.frameDeny=true
    # - traefik.frontend.passHostHeader=true
    # - 'traefik.frontend.rule=Host:traefik.localhost'
    # command: '--acme.storage=/acme.json'
  6. IosifZ revised this gist Oct 29, 2019. 1 changed file with 1 addition and 3 deletions.
    4 changes: 1 addition & 3 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -24,7 +24,6 @@ services:
    - "traefik.http.routers.traefik.rule=Host(`traefik.localhost`)"
    - "traefik.http.routers.traefik_https.entrypoints=web-secure"
    - "traefik.http.routers.traefik_https.rule=Host(`traefik.localhost`)"
    # - "traefik.http.routers.traefik_https.tls=true"
    - "traefik.http.routers.traefik_https.tls.certresolver=basic"
    # - "traefik.http.routers.traefik_https.service=api@internal"
    - "traefik.http.routers.traefik_https.tls.domains[0].main=*.${ZONE}"
    @@ -57,10 +56,9 @@ services:
    - '--ping'
    - '--providers.docker.exposedByDefault=false'
    - '--providers.docker.watch=true'
    - '--providers.docker.swarmMode=false'
    # - '--providers.docker.tls.insecureSkipVerify=true'
    - '--providers.file.filename=/rules.yml'
    - '--providers.file.watch=true'
    # - '--providers.docker.tls.insecureSkipVerify=true'
    - '--certificatesresolvers.basic.acme.storage=/acme.json'
    # - '--certificatesresolvers.basic.acme.dnschallenge=true'
    # - '--certificatesresolvers.basic.acme.dnschallenge.provider=cloudflare'
  7. IosifZ revised this gist Oct 29, 2019. 1 changed file with 2 additions and 29 deletions.
    31 changes: 2 additions & 29 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -24,7 +24,7 @@ services:
    - "traefik.http.routers.traefik.rule=Host(`traefik.localhost`)"
    - "traefik.http.routers.traefik_https.entrypoints=web-secure"
    - "traefik.http.routers.traefik_https.rule=Host(`traefik.localhost`)"
    - "traefik.http.routers.traefik_https.tls=true"
    # - "traefik.http.routers.traefik_https.tls=true"
    - "traefik.http.routers.traefik_https.tls.certresolver=basic"
    # - "traefik.http.routers.traefik_https.service=api@internal"
    - "traefik.http.routers.traefik_https.tls.domains[0].main=*.${ZONE}"
    @@ -71,31 +71,4 @@ services:
    # - '--certificatesresolvers.basic.acme.storage=/letsencrypt/acme.json'
    - '--certificatesresolvers.basic.acme.tlschallenge=true'
    - '--certificatesresolvers.basic.acme.email=${EMAIL}'
    - '--certificatesResolvers.basic.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory'
    bazarr:
    image: 'linuxserver/bazarr:latest'
    container_name: bazarr
    hostname: bazarr
    volumes:
    - '.\bazarr\config:/config'
    ports:
    - '6767:6767'
    environment:
    - TZ=Europe/Bucharest
    restart: unless-stopped
    env_file:
    - .env
    labels:
    - com.ouroboros.enable=true
    # - traefik.frontend.passHostHeader=true
    # - traefik.port=6767
    - "traefik.enable=true"
    - "traefik.http.routers.bazarr.entrypoints=web"
    - "traefik.http.routers.bazarr.rule=Host(`bazarr.${ZONE}`)"
    - "traefik.http.routers.bazarr_https.entrypoints=web-secure"
    - "traefik.http.routers.bazarr_https.rule=Host(`bazarr.${ZONE}`)"
    - "traefik.http.routers.bazarr_https.tls=true"
    - "traefik.http.routers.bazarr_https.tls.certresolver=basic"
    # - "traefik.http.routers.bazarr_https.tls.domains[0].main=*.${ZONE}"
    # - "traefik.http.routers.bazarr_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.bazarr.loadbalancer.server.port=6767"
    # - '--certificatesResolvers.basic.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory'
  8. IosifZ revised this gist Oct 28, 2019. 1 changed file with 37 additions and 7 deletions.
    44 changes: 37 additions & 7 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -62,10 +62,40 @@ services:
    - '--providers.file.watch=true'
    # - '--providers.docker.tls.insecureSkipVerify=true'
    - '--certificatesresolvers.basic.acme.storage=/acme.json'
    - '--certificatesresolvers.basic.acme.dnschallenge=true'
    - '--certificatesresolvers.basic.acme.dnschallenge.provider=cloudflare'
    - '--certificatesresolvers.basic.acme.email=${EMAIL}'
    - '--certificatesresolvers.basic.acme.dnsChallenge.resolvers=1.1.1.1'
    - '--certificatesresolvers.basic.acme.dnsChallenge.delayBeforeCheck=0'
    - '--certificatesresolvers.basic.acme.dnsChallenge.disablepropagationcheck=true'
    # - '--certificatesresolvers.basic.acme.storage=/letsencrypt/acme.json'
    # - '--certificatesresolvers.basic.acme.dnschallenge=true'
    # - '--certificatesresolvers.basic.acme.dnschallenge.provider=cloudflare'
    # - '--certificatesresolvers.basic.acme.email=${EMAIL}'
    # - '--certificatesresolvers.basic.acme.dnsChallenge.resolvers=1.1.1.1'
    # - '--certificatesresolvers.basic.acme.dnsChallenge.delayBeforeCheck=0'
    # - '--certificatesresolvers.basic.acme.dnsChallenge.disablepropagationcheck=true'
    # - '--certificatesresolvers.basic.acme.storage=/letsencrypt/acme.json'
    - '--certificatesresolvers.basic.acme.tlschallenge=true'
    - '--certificatesresolvers.basic.acme.email=${EMAIL}'
    - '--certificatesResolvers.basic.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory'
    bazarr:
    image: 'linuxserver/bazarr:latest'
    container_name: bazarr
    hostname: bazarr
    volumes:
    - '.\bazarr\config:/config'
    ports:
    - '6767:6767'
    environment:
    - TZ=Europe/Bucharest
    restart: unless-stopped
    env_file:
    - .env
    labels:
    - com.ouroboros.enable=true
    # - traefik.frontend.passHostHeader=true
    # - traefik.port=6767
    - "traefik.enable=true"
    - "traefik.http.routers.bazarr.entrypoints=web"
    - "traefik.http.routers.bazarr.rule=Host(`bazarr.${ZONE}`)"
    - "traefik.http.routers.bazarr_https.entrypoints=web-secure"
    - "traefik.http.routers.bazarr_https.rule=Host(`bazarr.${ZONE}`)"
    - "traefik.http.routers.bazarr_https.tls=true"
    - "traefik.http.routers.bazarr_https.tls.certresolver=basic"
    # - "traefik.http.routers.bazarr_https.tls.domains[0].main=*.${ZONE}"
    # - "traefik.http.routers.bazarr_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.bazarr.loadbalancer.server.port=6767"
  9. IosifZ revised this gist Oct 18, 2019. 1 changed file with 12 additions and 361 deletions.
    373 changes: 12 additions & 361 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -1,32 +1,5 @@
    version: '3.7'
    services:
    bazarr:
    image: 'linuxserver/bazarr:latest'
    container_name: bazarr
    hostname: bazarr
    volumes:
    - '.\bazarr\config:/config'
    ports:
    - '6767:6767'
    environment:
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    restart: unless-stopped
    env_file:
    - .env
    labels:
    # - traefik.frontend.passHostHeader=true
    # - traefik.port=6767
    - "traefik.enable=true"
    - "traefik.http.routers.bazarr.entrypoints=web"
    - "traefik.http.routers.bazarr.rule=Host(`bazarr.${ZONE}`)"
    - "traefik.http.routers.bazarr_https.entrypoints=web-secure"
    - "traefik.http.routers.bazarr_https.rule=Host(`bazarr.${ZONE}`)"
    - "traefik.http.routers.bazarr_https.tls=true"
    - "traefik.http.routers.bazarr_https.tls.certresolver=basic"
    - "traefik.http.routers.bazarr_https.tls.domains[0].main=*.${ZONE}"
    - "traefik.http.routers.bazarr_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.bazarr.loadbalancer.server.port=6767"
    traefik_v2.0:
    image: 'traefik:2.0'
    container_name: traefik_v2.0
    @@ -37,13 +10,15 @@ services:
    - '8080:8080'
    volumes:
    - '/var/run/docker.sock:/var/run/docker.sock'
    # - '.\traefik_2.0.1\traefik.yml:/etc/traefik/traefik.yml'
    - '.\traefik_2.0.1\rules.yml:/rules.yml'
    - './letsencrypt:/letsencrypt'
    # - '.\traefik_v2\traefik.yml:/etc/traefik/traefik.yml'
    - '.\traefik_v2\rules.yml:/rules.yml'
    env_file:
    - .env
    restart: unless-stopped
    domainname: '${ZONE}'
    labels:
    - com.ouroboros.enable=true
    - "traefik.enable=true"
    - "traefik.http.routers.traefik.entrypoints=web"
    - "traefik.http.routers.traefik.rule=Host(`traefik.localhost`)"
    @@ -64,10 +39,10 @@ services:
    - "traefik.http.routers.redirs.entrypoints=web"
    - "traefik.http.routers.redirs.middlewares=redirect-to-https"
    environment:
    - CF_API_EMAIL=${EMAIL}
    - CF_API_KEY=${API_KEY}
    - com.ouroboros.enable=true
    - TZ=Europe/Bucharest
    - "CLOUDFLARE_EMAIL=${EMAIL}"
    - "CLOUDFLARE_API_KEY=${API_KEY}"
    - "com.ouroboros.enable=true"
    - "TZ=Europe/Bucharest"
    command:
    - '--log.level=DEBUG'
    - '--log.format=json'
    @@ -85,336 +60,12 @@ services:
    - '--providers.docker.swarmMode=false'
    - '--providers.file.filename=/rules.yml'
    - '--providers.file.watch=true'
    # - '--serversTransport.insecureSkipVerify=true'
    # - '--providers.docker.tls.insecureSkipVerify=true'
    - '--certificatesresolvers.basic.acme.email=${EMAIL}'
    - '--certificatesresolvers.basic.acme.storage=/acme.json'
    - '--certificatesresolvers.basic.acme.dnschallenge=true'
    - '--certificatesresolvers.basic.acme.dnschallenge.provider=cloudflare'
    - '--certificatesresolvers.basic.acme.email=${EMAIL}'
    - '--certificatesresolvers.basic.acme.dnsChallenge.resolvers=1.1.1.1'
    - '--certificatesresolvers.basic.acme.dnsChallenge.delayBeforeCheck=0'
    influxdb-telegraf:
    image: 'influxdb:latest'
    container_name: influxdb-telegraf
    hostname: influxdb-telegraf
    volumes:
    - '.\influxdb-telegraf:/var/lib/influxdb'
    ports:
    - '8086:8086'
    restart: unless-stopped
    labels:
    - 'traefik.frontend.rule=Host:influxdb-telegraf.localhost'
    - traefik.backend=influxdb-telegraf
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    - INFLUXDB_DATA_QUERY_LOG_EANBLED=false
    - INFLUXDB_REPORTING_DISABLED=true
    - INFLUXDB_LOGGING_FORMAT=json
    - INFLUXDB_LOGGING_SUPPRESS_LOGO=true
    - INFLUXDB_HTTP_LOG_ENABLED=false
    grafana:
    image: 'grafana/grafana:latest'
    container_name: grafana
    hostname: grafana
    ports:
    - '3000:3000'
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    volumes:
    - '.\grafana:/var/lib/grafana'
    restart: unless-stopped
    labels:
    # - 'traefik.frontend.rule=Host:grafana.${ZONE}'
    # - traefik.enable=true
    # - traefik.port=3000
    # - traefik.backend=grafana
    - "traefik.enable=true"
    - "traefik.http.routers.grafana.entrypoints=web"
    - "traefik.http.routers.grafana.rule=Host(`grafana.${ZONE}`)"
    - "traefik.http.routers.grafana_https.entrypoints=web-secure"
    - "traefik.http.routers.grafana_https.rule=Host(`grafana.${ZONE}`)"
    - "traefik.http.routers.grafana_https.tls=true"
    - "traefik.http.routers.grafana_https.tls.certresolver=basic"
    - "traefik.http.routers.grafana_https.tls.domains[0].main=${ZONE}"
    - "traefik.http.routers.grafana_https.tls.domains[0].sans=*.${ZONE}"
    - "traefik.http.services.grafana.loadbalancer.server.port=3000"
    chronograf:
    image: 'chronograf:latest'
    container_name: chronograf
    hostname: chronograf
    ports:
    - '8888:8888'
    volumes:
    - '.\chronograf:/var/lib/chronograf'
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    restart: unless-stopped
    labels:
    # - 'traefik.frontend.rule=Host:chronograf.localhost'
    # - traefik.backend=chronograf
    - "traefik.enable=true"
    - "traefik.http.routers.chronograf.entrypoints=web"
    - "traefik.http.routers.chronograf.rule=Host(`chronograf.localhost`)"
    - "traefik.http.routers.chronograf_https.entrypoints=web-secure"
    - "traefik.http.routers.chronograf_https.rule=Host(`chronograf.localhost`)"
    - "traefik.http.services.chronograf.loadbalancer.server.port=8888"
    tautulli:
    image: 'linuxserver/tautulli:latest'
    container_name: tautulli
    hostname: tautulli
    volumes:
    - '.\tautulli\config:/config'
    - '.\tautulli\config\logs:/logs'
    - 'C:\Users\iosif\AppData\Local\Plex Media Server\Logs:/plex-logs/'
    ports:
    - '8181:8181'
    restart: unless-stopped
    labels:
    # - traefik.frontend.passHostHeader=true
    - "traefik.enable=true"
    - "traefik.http.routers.tautulli_https.entrypoints=web-secure"
    - "traefik.http.routers.tautulli_https.rule=Host(`tautulli.${ZONE}`)"
    - "traefik.http.routers.tautulli_https.tls=true"
    - "traefik.http.routers.tautulli_https.tls.certresolver=basic"
    - "traefik.http.routers.tautulli_https.tls.domains[0].main=${ZONE}"
    - "traefik.http.routers.tautulli_https.tls.domains[0].sans=*.${ZONE}"
    - "traefik.http.services.tautulli.loadbalancer.server.port=8181"
    - "traefik.http.services.tautulli.loadbalancer.passhostheader=true"
    env_file:
    - .env
    environment:
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    cloudflare-ddns:
    image: 'oznu/cloudflare-ddns:latest'
    container_name: cloudflare-ddns
    hostname: cloudflare-ddns
    env_file:
    - .env
    environment:
    - 'EMAIL=${EMAIL}'
    - 'API_KEY=${API_KEY}'
    - 'ZONE=${ZONE}'
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    restart: unless-stopped
    ombi:
    image: 'linuxserver/ombi:latest'
    container_name: ombi
    hostname: ombi
    ports:
    - '3579:3579'
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    restart: unless-stopped
    labels:
    # - 'traefik.frontend.rule=Host:ombi.${ZONE}'
    # - traefik.frontend.passHostHeader=true
    # - traefik.enable=true
    # - traefik.port=3579
    # - traefik.backend=ombi
    - "traefik.enable=true"
    - "traefik.http.routers.ombi.entrypoints=web"
    - "traefik.http.routers.ombi.rule=Host(`ombi.${ZONE}`)"
    - "traefik.http.routers.ombi_https.entrypoints=web-secure"
    - "traefik.http.routers.ombi_https.rule=Host(`ombi.${ZONE}`)"
    - "traefik.http.routers.ombi_https.tls=true"
    - "traefik.http.routers.ombi_https.tls.certresolver=basic"
    - "traefik.http.routers.ombi_https.tls.domains[0].main=${ZONE}"
    - "traefik.http.routers.ombi_https.tls.domains[0].sans=*.${ZONE}"
    - "traefik.http.services.ombi.loadbalancer.server.port=3579"
    # - "traefik.http.services.ombi.loadbalancer.passhostheader=true"
    volumes:
    - '.\ombi\config:/config'
    portainer:
    image: 'portainer/portainer:latest'
    container_name: portainer
    hostname: portainer
    env_file:
    - .env
    environment:
    - com.ouroboros.enable=true
    - TZ=Europe/Bucharest
    volumes:
    - '.\Portainer:/data'
    - '/var/run/docker.sock:/var/run/docker.sock'
    ports:
    - '9000:9000'
    labels:
    # - 'traefik.frontend.rule=Host:portainer.localhost'
    # - traefik.backend=portainer
    - "traefik.enable=true"
    - "traefik.http.routers.portainer.entrypoints=web"
    - "traefik.http.routers.portainer.rule=Host(`portainer.localhost`)"
    - "traefik.http.routers.portainer_https.entrypoints=web-secure"
    - "traefik.http.routers.portainer_https.rule=Host(`portainer.localhost`)"
    - "traefik.http.services.portainer.loadbalancer.server.port=9000"
    restart: unless-stopped
    logarr:
    image: 'monitorr/logarr:latest'
    container_name: logarr
    hostname: logarr
    environment:
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    restart: unless-stopped
    volumes:
    - '.\logarr\config:/config'
    - 'C:\ProgramData\Sonarr\logs:/sonarr/'
    - 'C:\ProgramData\Radarr\logs:/radarr/'
    ports:
    - '32773:80'
    labels:
    # - 'traefik.frontend.rule=Host:logarr.localhost'
    # - traefik.backend=logarr
    - "traefik.enable=true"
    - "traefik.http.routers.logarr.entrypoints=web"
    - "traefik.http.routers.logarr.rule=Host(`logarr.localhost`)"
    - "traefik.http.routers.logarr_https.entrypoints=web-secure"
    - "traefik.http.routers.logarr_https.rule=Host(`logarr.localhost`)"
    - "traefik.http.services.logarr.loadbalancer.server.port=80"
    organizr:
    image: 'lsiocommunity/organizr:latest'
    container_name: organizr
    hostname: organizr
    environment:
    - PUID=1000
    - PGID=1000
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    restart: unless-stopped
    volumes:
    - '.\organizr:/config'
    ports:
    - '9983:80'
    labels:
    # - 'traefik.frontend.rule=Host:organizr.${ZONE}'
    # - traefik.backend=organizr
    - "traefik.enable=true"
    - "traefik.http.routers.organizr.entrypoints=web"
    - "traefik.http.routers.organizr.rule=Host(`organizr.${ZONE}`)"
    - "traefik.http.routers.organizr_https.entrypoints=web-secure"
    - "traefik.http.routers.organizr_https.rule=Host(`organizr.${ZONE}`)"
    - "traefik.http.routers.organizr_https.tls=true"
    - "traefik.http.routers.organizr_https.tls.certresolver=basic"
    - "traefik.http.routers.organizr_https.tls.domains[0].main=${ZONE}"
    - "traefik.http.routers.organizr_https.tls.domains[0].sans=*.${ZONE}"
    - "traefik.http.services.organizr.loadbalancer.server.port=80"
    heimdall:
    image: 'linuxserver/heimdall:latest'
    container_name: heimdall
    hostname: heimdall
    restart: unless-stopped
    environment:
    - PUID=1000
    - PGID=1000
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    volumes:
    - '.\heimdall:/config'
    ports:
    - '32843:443'
    - '32880:80'
    labels:
    # - 'traefik.frontend.rule=Host:heimdall.${ZONE}'
    # - traefik.enable=true
    # - traefik.backend=heimdall
    - "traefik.enable=true"
    - "traefik.http.routers.heimdall.entrypoints=web"
    - "traefik.http.routers.heimdall.rule=Host(`heimdall.${ZONE}`)"
    - "traefik.http.routers.heimdall_https.entrypoints=web-secure"
    - "traefik.http.routers.heimdall_https.rule=Host(`heimdall.${ZONE}`)"
    - "traefik.http.routers.heimdall_https.tls=true"
    - "traefik.http.routers.heimdall_https.tls.certresolver=basic"
    - "traefik.http.routers.heimdall_https.tls.domains[0].main=${ZONE}"
    - "traefik.http.routers.heimdall_https.tls.domains[0].sans=*.${ZONE}"
    - "traefik.http.services.heimdall.loadbalancer.server.port=80"
    ouroboros:
    image: 'pyouroboros/ouroboros:latest'
    container_name: ouroboros
    hostname: ouroboros
    restart: unless-stopped
    environment:
    - CLEANUP=true
    - INTERVAL=300
    - LOG_LEVEL=info
    - SELF_UPDATE=true
    - DOCKER_TLS_VERIFY=false
    - LATEST=true
    - TZ=Europe/Bucharest
    - LABEL_ENABLE=true
    - DATA_EXPORT=influxdb
    - INFLUX_URL=influxdb-telegraf
    - INFLUX_PORT=8086
    - INFLUX_USERNAME=ouroboros
    - INFLUX_PASSWORD=ouroboros
    - INFLUX_DATABASE=ouroboros
    - INFLUX_SSL=false
    - INFLUX_VERIFY_SSL=false
    volumes:
    - '/var/run/docker.sock:/var/run/docker.sock'
    - '.\ouroboros\logs:/var/lib/docker/containers'
    links:
    - 'influxdb-telegraf:influxdb-telegraf'
    piholeinflux:
    image: registry.gitlab.com/janw/pi-hole-influx
    container_name: piholeinflux
    hostname: piholeinflux
    restart: unless-stopped
    environment:
    - PIHOLE_INFLUXDB_HOST="influxdb-telegraf"
    - PIHOLE_INFLUXDB_PORT="8086"
    - PIHOLE_INFLUXDB_USERNAME="pihole"
    - PIHOLE_INFLUXDB_PASSWORD="pihole"
    - PIHOLE_INFLUXDB_DATABASE="pihole"
    - 'PIHOLE_INSTANCES="pihole=http://192.168.0.53/admin/api.php"'

    # traefik:
    # image: 'traefik:v1.7'
    # container_name: traefik
    # hostname: traefik
    # ports:
    # - '80:80'
    # - '8080:8080'
    # - '443:443'
    # volumes:
    # - '.\traefik:/etc/traefik'
    # - '/var/run/docker.sock:/var/run/docker.sock'
    # - '.\traefik\rules.toml:/etc/traefik/rules.toml'
    # env_file:
    # - .env
    # restart: unless-stopped
    # domainname: '${ZONE}'
    # environment:
    # - 'CF_API_EMAIL=${EMAIL}'
    # - 'CF_API_KEY=${API_KEY}'
    # - com.ouroboros.enable=true
    # - TZ=Europe/Bucharest
    # labels:
    # - traefik.enable=true
    # - traefik.backend=traefik
    # - traefik.port=8080
    # - traefik.frontend.headers.SSLRedirect=true
    # - traefik.frontend.headers.STSSeconds=315360000
    # - traefik.frontend.headers.browserXSSFilter=true
    # - traefik.frontend.headers.contentTypeNosniff=true
    # - traefik.frontend.headers.forceSTSHeader=true
    # - traefik.frontend.headers.SSLHost=example.com
    # - traefik.frontend.headers.STSIncludeSubdomains=true
    # - traefik.frontend.headers.STSPreload=true
    # - traefik.frontend.headers.frameDeny=true
    # - traefik.frontend.passHostHeader=true
    # - 'traefik.frontend.rule=Host:traefik.localhost'
    # command: '--acme.storage=/acme.json'
    - '--certificatesresolvers.basic.acme.dnsChallenge.delayBeforeCheck=0'
    - '--certificatesresolvers.basic.acme.dnsChallenge.disablepropagationcheck=true'
    # - '--certificatesresolvers.basic.acme.storage=/letsencrypt/acme.json'
  10. IosifZ revised this gist Oct 14, 2019. 1 changed file with 345 additions and 16 deletions.
    361 changes: 345 additions & 16 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -18,19 +18,19 @@ services:
    # - traefik.frontend.passHostHeader=true
    # - traefik.port=6767
    - "traefik.enable=true"
    # - "traefik.http.routers.bazarr.entrypoints=web"
    # - "traefik.http.routers.bazarr.rule=Host(`bazarr.${ZONE}`)"
    - "traefik.http.routers.bazarr.entrypoints=web"
    - "traefik.http.routers.bazarr.rule=Host(`bazarr.${ZONE}`)"
    - "traefik.http.routers.bazarr_https.entrypoints=web-secure"
    - "traefik.http.routers.bazarr_https.rule=Host(`bazarr.${ZONE}`)"
    - "traefik.http.routers.bazarr_https.tls=true"
    - "traefik.http.routers.bazarr_https.tls.certresolver=basic"
    - "traefik.http.routers.bazarr_https.tls.domains[0].main=${ZONE}"
    - "traefik.http.routers.bazarr_https.tls.domains[0].sans=*.${ZONE}"
    - "traefik.http.routers.bazarr_https.tls.domains[0].main=*.${ZONE}"
    - "traefik.http.routers.bazarr_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.bazarr.loadbalancer.server.port=6767"
    traefik_2.0.1:
    traefik_v2.0:
    image: 'traefik:2.0'
    container_name: traefik_2.0
    hostname: traefik_2.0
    container_name: traefik_v2.0
    hostname: traefik_v2.0
    ports:
    - '443:443'
    - '80:80'
    @@ -52,17 +52,20 @@ services:
    - "traefik.http.routers.traefik_https.tls=true"
    - "traefik.http.routers.traefik_https.tls.certresolver=basic"
    # - "traefik.http.routers.traefik_https.service=api@internal"
    - "traefik.http.routers.traefik_https.tls.domains[0].main=${ZONE}"
    - "traefik.http.routers.traefik_https.tls.domains[0].sans=*.${ZONE}"
    - "traefik.http.routers.traefik.middlewares=https_redirect"
    - "traefik.http.middlewares.https_redirect.redirectscheme.scheme=https"
    - "traefik.http.middlewares.https_redirect.redirectscheme.permanent=true"
    - "traefik.http.services.traefik.loadbalancer.server.port=8080"
    - "traefik.http.routers.traefik_https.tls.domains[0].main=*.${ZONE}"
    - "traefik.http.routers.traefik_https.tls.domains[0].sans=${ZONE}"
    - "traefik.http.services.traefik.loadbalancer.server.port=8080"
    - "traefik.http.middlewares.testHeader.headers.framedeny=true"
    - "traefik.http.middlewares.testHeader.headers.sslredirect=true"
    # middleware redirect
    - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
    # global redirect to https
    - "traefik.http.routers.redirs.rule=hostregexp(`{host:.+}`)"
    - "traefik.http.routers.redirs.entrypoints=web"
    - "traefik.http.routers.redirs.middlewares=redirect-to-https"
    environment:
    - 'CF_API_EMAIL=${EMAIL}'
    - 'CF_API_KEY=${API_KEY}'
    - CF_API_EMAIL=${EMAIL}
    - CF_API_KEY=${API_KEY}
    - com.ouroboros.enable=true
    - TZ=Europe/Bucharest
    command:
    @@ -88,4 +91,330 @@ services:
    - '--certificatesresolvers.basic.acme.storage=/acme.json'
    - '--certificatesresolvers.basic.acme.dnschallenge=true'
    - '--certificatesresolvers.basic.acme.dnschallenge.provider=cloudflare'
    - '--certificatesresolvers.basic.acme.dnsChallenge.resolvers=1.1.1.1:53,8.8.8.8:53'
    - '--certificatesresolvers.basic.acme.dnsChallenge.resolvers=1.1.1.1'
    - '--certificatesresolvers.basic.acme.dnsChallenge.delayBeforeCheck=0'
    influxdb-telegraf:
    image: 'influxdb:latest'
    container_name: influxdb-telegraf
    hostname: influxdb-telegraf
    volumes:
    - '.\influxdb-telegraf:/var/lib/influxdb'
    ports:
    - '8086:8086'
    restart: unless-stopped
    labels:
    - 'traefik.frontend.rule=Host:influxdb-telegraf.localhost'
    - traefik.backend=influxdb-telegraf
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    - INFLUXDB_DATA_QUERY_LOG_EANBLED=false
    - INFLUXDB_REPORTING_DISABLED=true
    - INFLUXDB_LOGGING_FORMAT=json
    - INFLUXDB_LOGGING_SUPPRESS_LOGO=true
    - INFLUXDB_HTTP_LOG_ENABLED=false
    grafana:
    image: 'grafana/grafana:latest'
    container_name: grafana
    hostname: grafana
    ports:
    - '3000:3000'
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    volumes:
    - '.\grafana:/var/lib/grafana'
    restart: unless-stopped
    labels:
    # - 'traefik.frontend.rule=Host:grafana.${ZONE}'
    # - traefik.enable=true
    # - traefik.port=3000
    # - traefik.backend=grafana
    - "traefik.enable=true"
    - "traefik.http.routers.grafana.entrypoints=web"
    - "traefik.http.routers.grafana.rule=Host(`grafana.${ZONE}`)"
    - "traefik.http.routers.grafana_https.entrypoints=web-secure"
    - "traefik.http.routers.grafana_https.rule=Host(`grafana.${ZONE}`)"
    - "traefik.http.routers.grafana_https.tls=true"
    - "traefik.http.routers.grafana_https.tls.certresolver=basic"
    - "traefik.http.routers.grafana_https.tls.domains[0].main=${ZONE}"
    - "traefik.http.routers.grafana_https.tls.domains[0].sans=*.${ZONE}"
    - "traefik.http.services.grafana.loadbalancer.server.port=3000"
    chronograf:
    image: 'chronograf:latest'
    container_name: chronograf
    hostname: chronograf
    ports:
    - '8888:8888'
    volumes:
    - '.\chronograf:/var/lib/chronograf'
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    restart: unless-stopped
    labels:
    # - 'traefik.frontend.rule=Host:chronograf.localhost'
    # - traefik.backend=chronograf
    - "traefik.enable=true"
    - "traefik.http.routers.chronograf.entrypoints=web"
    - "traefik.http.routers.chronograf.rule=Host(`chronograf.localhost`)"
    - "traefik.http.routers.chronograf_https.entrypoints=web-secure"
    - "traefik.http.routers.chronograf_https.rule=Host(`chronograf.localhost`)"
    - "traefik.http.services.chronograf.loadbalancer.server.port=8888"
    tautulli:
    image: 'linuxserver/tautulli:latest'
    container_name: tautulli
    hostname: tautulli
    volumes:
    - '.\tautulli\config:/config'
    - '.\tautulli\config\logs:/logs'
    - 'C:\Users\iosif\AppData\Local\Plex Media Server\Logs:/plex-logs/'
    ports:
    - '8181:8181'
    restart: unless-stopped
    labels:
    # - traefik.frontend.passHostHeader=true
    - "traefik.enable=true"
    - "traefik.http.routers.tautulli_https.entrypoints=web-secure"
    - "traefik.http.routers.tautulli_https.rule=Host(`tautulli.${ZONE}`)"
    - "traefik.http.routers.tautulli_https.tls=true"
    - "traefik.http.routers.tautulli_https.tls.certresolver=basic"
    - "traefik.http.routers.tautulli_https.tls.domains[0].main=${ZONE}"
    - "traefik.http.routers.tautulli_https.tls.domains[0].sans=*.${ZONE}"
    - "traefik.http.services.tautulli.loadbalancer.server.port=8181"
    - "traefik.http.services.tautulli.loadbalancer.passhostheader=true"
    env_file:
    - .env
    environment:
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    cloudflare-ddns:
    image: 'oznu/cloudflare-ddns:latest'
    container_name: cloudflare-ddns
    hostname: cloudflare-ddns
    env_file:
    - .env
    environment:
    - 'EMAIL=${EMAIL}'
    - 'API_KEY=${API_KEY}'
    - 'ZONE=${ZONE}'
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    restart: unless-stopped
    ombi:
    image: 'linuxserver/ombi:latest'
    container_name: ombi
    hostname: ombi
    ports:
    - '3579:3579'
    env_file:
    - .env
    environment:
    - 'TZ=${TZ}'
    - com.ouroboros.enable=true
    restart: unless-stopped
    labels:
    # - 'traefik.frontend.rule=Host:ombi.${ZONE}'
    # - traefik.frontend.passHostHeader=true
    # - traefik.enable=true
    # - traefik.port=3579
    # - traefik.backend=ombi
    - "traefik.enable=true"
    - "traefik.http.routers.ombi.entrypoints=web"
    - "traefik.http.routers.ombi.rule=Host(`ombi.${ZONE}`)"
    - "traefik.http.routers.ombi_https.entrypoints=web-secure"
    - "traefik.http.routers.ombi_https.rule=Host(`ombi.${ZONE}`)"
    - "traefik.http.routers.ombi_https.tls=true"
    - "traefik.http.routers.ombi_https.tls.certresolver=basic"
    - "traefik.http.routers.ombi_https.tls.domains[0].main=${ZONE}"
    - "traefik.http.routers.ombi_https.tls.domains[0].sans=*.${ZONE}"
    - "traefik.http.services.ombi.loadbalancer.server.port=3579"
    # - "traefik.http.services.ombi.loadbalancer.passhostheader=true"
    volumes:
    - '.\ombi\config:/config'
    portainer:
    image: 'portainer/portainer:latest'
    container_name: portainer
    hostname: portainer
    env_file:
    - .env
    environment:
    - com.ouroboros.enable=true
    - TZ=Europe/Bucharest
    volumes:
    - '.\Portainer:/data'
    - '/var/run/docker.sock:/var/run/docker.sock'
    ports:
    - '9000:9000'
    labels:
    # - 'traefik.frontend.rule=Host:portainer.localhost'
    # - traefik.backend=portainer
    - "traefik.enable=true"
    - "traefik.http.routers.portainer.entrypoints=web"
    - "traefik.http.routers.portainer.rule=Host(`portainer.localhost`)"
    - "traefik.http.routers.portainer_https.entrypoints=web-secure"
    - "traefik.http.routers.portainer_https.rule=Host(`portainer.localhost`)"
    - "traefik.http.services.portainer.loadbalancer.server.port=9000"
    restart: unless-stopped
    logarr:
    image: 'monitorr/logarr:latest'
    container_name: logarr
    hostname: logarr
    environment:
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    restart: unless-stopped
    volumes:
    - '.\logarr\config:/config'
    - 'C:\ProgramData\Sonarr\logs:/sonarr/'
    - 'C:\ProgramData\Radarr\logs:/radarr/'
    ports:
    - '32773:80'
    labels:
    # - 'traefik.frontend.rule=Host:logarr.localhost'
    # - traefik.backend=logarr
    - "traefik.enable=true"
    - "traefik.http.routers.logarr.entrypoints=web"
    - "traefik.http.routers.logarr.rule=Host(`logarr.localhost`)"
    - "traefik.http.routers.logarr_https.entrypoints=web-secure"
    - "traefik.http.routers.logarr_https.rule=Host(`logarr.localhost`)"
    - "traefik.http.services.logarr.loadbalancer.server.port=80"
    organizr:
    image: 'lsiocommunity/organizr:latest'
    container_name: organizr
    hostname: organizr
    environment:
    - PUID=1000
    - PGID=1000
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    restart: unless-stopped
    volumes:
    - '.\organizr:/config'
    ports:
    - '9983:80'
    labels:
    # - 'traefik.frontend.rule=Host:organizr.${ZONE}'
    # - traefik.backend=organizr
    - "traefik.enable=true"
    - "traefik.http.routers.organizr.entrypoints=web"
    - "traefik.http.routers.organizr.rule=Host(`organizr.${ZONE}`)"
    - "traefik.http.routers.organizr_https.entrypoints=web-secure"
    - "traefik.http.routers.organizr_https.rule=Host(`organizr.${ZONE}`)"
    - "traefik.http.routers.organizr_https.tls=true"
    - "traefik.http.routers.organizr_https.tls.certresolver=basic"
    - "traefik.http.routers.organizr_https.tls.domains[0].main=${ZONE}"
    - "traefik.http.routers.organizr_https.tls.domains[0].sans=*.${ZONE}"
    - "traefik.http.services.organizr.loadbalancer.server.port=80"
    heimdall:
    image: 'linuxserver/heimdall:latest'
    container_name: heimdall
    hostname: heimdall
    restart: unless-stopped
    environment:
    - PUID=1000
    - PGID=1000
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    volumes:
    - '.\heimdall:/config'
    ports:
    - '32843:443'
    - '32880:80'
    labels:
    # - 'traefik.frontend.rule=Host:heimdall.${ZONE}'
    # - traefik.enable=true
    # - traefik.backend=heimdall
    - "traefik.enable=true"
    - "traefik.http.routers.heimdall.entrypoints=web"
    - "traefik.http.routers.heimdall.rule=Host(`heimdall.${ZONE}`)"
    - "traefik.http.routers.heimdall_https.entrypoints=web-secure"
    - "traefik.http.routers.heimdall_https.rule=Host(`heimdall.${ZONE}`)"
    - "traefik.http.routers.heimdall_https.tls=true"
    - "traefik.http.routers.heimdall_https.tls.certresolver=basic"
    - "traefik.http.routers.heimdall_https.tls.domains[0].main=${ZONE}"
    - "traefik.http.routers.heimdall_https.tls.domains[0].sans=*.${ZONE}"
    - "traefik.http.services.heimdall.loadbalancer.server.port=80"
    ouroboros:
    image: 'pyouroboros/ouroboros:latest'
    container_name: ouroboros
    hostname: ouroboros
    restart: unless-stopped
    environment:
    - CLEANUP=true
    - INTERVAL=300
    - LOG_LEVEL=info
    - SELF_UPDATE=true
    - DOCKER_TLS_VERIFY=false
    - LATEST=true
    - TZ=Europe/Bucharest
    - LABEL_ENABLE=true
    - DATA_EXPORT=influxdb
    - INFLUX_URL=influxdb-telegraf
    - INFLUX_PORT=8086
    - INFLUX_USERNAME=ouroboros
    - INFLUX_PASSWORD=ouroboros
    - INFLUX_DATABASE=ouroboros
    - INFLUX_SSL=false
    - INFLUX_VERIFY_SSL=false
    volumes:
    - '/var/run/docker.sock:/var/run/docker.sock'
    - '.\ouroboros\logs:/var/lib/docker/containers'
    links:
    - 'influxdb-telegraf:influxdb-telegraf'
    piholeinflux:
    image: registry.gitlab.com/janw/pi-hole-influx
    container_name: piholeinflux
    hostname: piholeinflux
    restart: unless-stopped
    environment:
    - PIHOLE_INFLUXDB_HOST="influxdb-telegraf"
    - PIHOLE_INFLUXDB_PORT="8086"
    - PIHOLE_INFLUXDB_USERNAME="pihole"
    - PIHOLE_INFLUXDB_PASSWORD="pihole"
    - PIHOLE_INFLUXDB_DATABASE="pihole"
    - 'PIHOLE_INSTANCES="pihole=http://192.168.0.53/admin/api.php"'

    # traefik:
    # image: 'traefik:v1.7'
    # container_name: traefik
    # hostname: traefik
    # ports:
    # - '80:80'
    # - '8080:8080'
    # - '443:443'
    # volumes:
    # - '.\traefik:/etc/traefik'
    # - '/var/run/docker.sock:/var/run/docker.sock'
    # - '.\traefik\rules.toml:/etc/traefik/rules.toml'
    # env_file:
    # - .env
    # restart: unless-stopped
    # domainname: '${ZONE}'
    # environment:
    # - 'CF_API_EMAIL=${EMAIL}'
    # - 'CF_API_KEY=${API_KEY}'
    # - com.ouroboros.enable=true
    # - TZ=Europe/Bucharest
    # labels:
    # - traefik.enable=true
    # - traefik.backend=traefik
    # - traefik.port=8080
    # - traefik.frontend.headers.SSLRedirect=true
    # - traefik.frontend.headers.STSSeconds=315360000
    # - traefik.frontend.headers.browserXSSFilter=true
    # - traefik.frontend.headers.contentTypeNosniff=true
    # - traefik.frontend.headers.forceSTSHeader=true
    # - traefik.frontend.headers.SSLHost=example.com
    # - traefik.frontend.headers.STSIncludeSubdomains=true
    # - traefik.frontend.headers.STSPreload=true
    # - traefik.frontend.headers.frameDeny=true
    # - traefik.frontend.passHostHeader=true
    # - 'traefik.frontend.rule=Host:traefik.localhost'
    # command: '--acme.storage=/acme.json'
  11. IosifZ revised this gist Oct 10, 2019. 1 changed file with 4 additions and 4 deletions.
    8 changes: 4 additions & 4 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -81,11 +81,11 @@ services:
    - '--providers.docker.watch=true'
    - '--providers.docker.swarmMode=false'
    - '--providers.file.filename=/rules.yml'
    - '--serversTransport.insecureSkipVerify=true'
    - '--providers.file.watch=true'
    # - '--serversTransport.insecureSkipVerify=true'
    # - '--providers.docker.tls.insecureSkipVerify=true'
    - '--certificatesresolvers.basic.acme.email=${EMAIL}'
    - '--certificatesresolvers.basic.acme.storage=/acme.json'
    - '--certificatesresolvers.basic.acme.dnschallenge=true'
    - '--certificatesresolvers.basic.acme.dnschallenge.provider=cloudflare'
    # - '--certificatesresolvers.basic.acme.dnsChallenge.delayBeforeCheck=60'
    - '--certificatesresolvers.basic.acme.dnsChallenge.resolvers=1.1.1.1:53,8.8.8.8:53'
    # - '--certificatesResolvers.basic.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory'
    - '--certificatesresolvers.basic.acme.dnsChallenge.resolvers=1.1.1.1:53,8.8.8.8:53'
  12. IosifZ revised this gist Oct 9, 2019. 1 changed file with 11 additions and 7 deletions.
    18 changes: 11 additions & 7 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -19,13 +19,13 @@ services:
    # - traefik.port=6767
    - "traefik.enable=true"
    # - "traefik.http.routers.bazarr.entrypoints=web"
    # - "traefik.http.routers.bazarr.rule=Host(`bazarr.DOMAIN.com`)"
    # - "traefik.http.routers.bazarr.rule=Host(`bazarr.${ZONE}`)"
    - "traefik.http.routers.bazarr_https.entrypoints=web-secure"
    - "traefik.http.routers.bazarr_https.rule=Host(`bazarr.DOMAIN.com`)"
    - "traefik.http.routers.bazarr_https.rule=Host(`bazarr.${ZONE}`)"
    - "traefik.http.routers.bazarr_https.tls=true"
    - "traefik.http.routers.bazarr_https.tls.certresolver=basic"
    - "traefik.http.routers.bazarr_https.tls.domains[0].main=DOMAIN.com"
    - "traefik.http.routers.bazarr_https.tls.domains[0].sans=*.DOMAIN.com"
    - "traefik.http.routers.bazarr_https.tls.domains[0].main=${ZONE}"
    - "traefik.http.routers.bazarr_https.tls.domains[0].sans=*.${ZONE}"
    - "traefik.http.services.bazarr.loadbalancer.server.port=6767"
    traefik_2.0.1:
    image: 'traefik:2.0'
    @@ -38,6 +38,7 @@ services:
    volumes:
    - '/var/run/docker.sock:/var/run/docker.sock'
    # - '.\traefik_2.0.1\traefik.yml:/etc/traefik/traefik.yml'
    - '.\traefik_2.0.1\rules.yml:/rules.yml'
    env_file:
    - .env
    restart: unless-stopped
    @@ -51,12 +52,14 @@ services:
    - "traefik.http.routers.traefik_https.tls=true"
    - "traefik.http.routers.traefik_https.tls.certresolver=basic"
    # - "traefik.http.routers.traefik_https.service=api@internal"
    - "traefik.http.routers.traefik_https.tls.domains[0].main=DOMAIN.com"
    - "traefik.http.routers.traefik_https.tls.domains[0].sans=*.DOMAIN.com"
    - "traefik.http.routers.traefik_https.tls.domains[0].main=${ZONE}"
    - "traefik.http.routers.traefik_https.tls.domains[0].sans=*.${ZONE}"
    - "traefik.http.routers.traefik.middlewares=https_redirect"
    - "traefik.http.middlewares.https_redirect.redirectscheme.scheme=https"
    - "traefik.http.middlewares.https_redirect.redirectscheme.permanent=true"
    - "traefik.http.services.traefik.loadbalancer.server.port=8080"
    - "traefik.http.middlewares.testHeader.headers.framedeny=true"
    - "traefik.http.middlewares.testHeader.headers.sslredirect=true"
    environment:
    - 'CF_API_EMAIL=${EMAIL}'
    - 'CF_API_KEY=${API_KEY}'
    @@ -77,8 +80,9 @@ services:
    - '--providers.docker.exposedByDefault=false'
    - '--providers.docker.watch=true'
    - '--providers.docker.swarmMode=false'
    - '--providers.file.filename=/rules.yml'
    - '--serversTransport.insecureSkipVerify=true'
    - '--certificatesresolvers.basic.acme.email=EMAIL@gmail.com'
    - '--certificatesresolvers.basic.acme.email=${EMAIL}'
    - '--certificatesresolvers.basic.acme.storage=/acme.json'
    - '--certificatesresolvers.basic.acme.dnschallenge=true'
    - '--certificatesresolvers.basic.acme.dnschallenge.provider=cloudflare'
  13. IosifZ revised this gist Oct 8, 2019. 1 changed file with 3 additions and 2 deletions.
    5 changes: 3 additions & 2 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -25,7 +25,7 @@ services:
    - "traefik.http.routers.bazarr_https.tls=true"
    - "traefik.http.routers.bazarr_https.tls.certresolver=basic"
    - "traefik.http.routers.bazarr_https.tls.domains[0].main=DOMAIN.com"
    - "traefik.http.routers.bazarr_https.tls.domains[0].sans=*.DOMAIN.com"
    - "traefik.http.routers.bazarr_https.tls.domains[0].sans=*.DOMAIN.com"
    - "traefik.http.services.bazarr.loadbalancer.server.port=6767"
    traefik_2.0.1:
    image: 'traefik:2.0'
    @@ -77,10 +77,11 @@ services:
    - '--providers.docker.exposedByDefault=false'
    - '--providers.docker.watch=true'
    - '--providers.docker.swarmMode=false'
    - '--serversTransport.insecureSkipVerify=true'
    - '[email protected]'
    - '--certificatesresolvers.basic.acme.storage=/acme.json'
    - '--certificatesresolvers.basic.acme.dnschallenge=true'
    - '--certificatesresolvers.basic.acme.dnschallenge.provider=cloudflare'
    - '--certificatesresolvers.basic.acme.dnsChallenge.delayBeforeCheck=60'
    # - '--certificatesresolvers.basic.acme.dnsChallenge.delayBeforeCheck=60'
    - '--certificatesresolvers.basic.acme.dnsChallenge.resolvers=1.1.1.1:53,8.8.8.8:53'
    # - '--certificatesResolvers.basic.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory'
  14. IosifZ revised this gist Oct 7, 2019. 1 changed file with 4 additions and 4 deletions.
    8 changes: 4 additions & 4 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -80,7 +80,7 @@ services:
    - '[email protected]'
    - '--certificatesresolvers.basic.acme.storage=/acme.json'
    - '--certificatesresolvers.basic.acme.dnschallenge=true'
    # - '--certificatesresolvers.basic.acme.dnschallenge.provider=cloudflare'
    # - '--certificatesresolvers.basic.acme.dnsChallenge.delayBeforeCheck=60'
    # - '--certificatesresolvers.basic.acme.dnsChallenge.resolvers=1.1.1.1:53,8.8.8.8:53'
    - '--certificatesResolvers.basic.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory'
    - '--certificatesresolvers.basic.acme.dnschallenge.provider=cloudflare'
    - '--certificatesresolvers.basic.acme.dnsChallenge.delayBeforeCheck=60'
    - '--certificatesresolvers.basic.acme.dnsChallenge.resolvers=1.1.1.1:53,8.8.8.8:53'
    # - '--certificatesResolvers.basic.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory'
  15. IosifZ revised this gist Oct 7, 2019. 1 changed file with 8 additions and 8 deletions.
    16 changes: 8 additions & 8 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -18,16 +18,15 @@ services:
    # - traefik.frontend.passHostHeader=true
    # - traefik.port=6767
    - "traefik.enable=true"
    - "traefik.http.routers.bazarr.entrypoints=web"
    - "traefik.http.routers.bazarr.rule=Host(`bazarr.DOMAIN.com`)"
    # - "traefik.http.routers.bazarr.entrypoints=web"
    # - "traefik.http.routers.bazarr.rule=Host(`bazarr.DOMAIN.com`)"
    - "traefik.http.routers.bazarr_https.entrypoints=web-secure"
    - "traefik.http.routers.bazarr_https.rule=Host(`bazarr.DOMAIN.com`)"
    - "traefik.http.routers.bazarr_https.tls=true"
    - "traefik.http.routers.bazarr_https.tls.certresolver=basic"
    - "traefik.http.routers.bazarr.tls.domains[0].main=DOMAIN.com"
    - "traefik.http.routers.bazarr.tls.domains[0].sans=*.DOMAIN.com"
    - "traefik.http.routers.bazarr.entrypoints=web-secure"
    - "traefik.http.services.bazarr.loadbalancer.server.port=6767"
    - "traefik.http.routers.bazarr_https.tls.domains[0].main=DOMAIN.com"
    - "traefik.http.routers.bazarr_https.tls.domains[0].sans=*.DOMAIN.com"
    - "traefik.http.services.bazarr.loadbalancer.server.port=6767"
    traefik_2.0.1:
    image: 'traefik:2.0'
    container_name: traefik_2.0
    @@ -57,6 +56,7 @@ services:
    - "traefik.http.routers.traefik.middlewares=https_redirect"
    - "traefik.http.middlewares.https_redirect.redirectscheme.scheme=https"
    - "traefik.http.middlewares.https_redirect.redirectscheme.permanent=true"
    - "traefik.http.services.traefik.loadbalancer.server.port=8080"
    environment:
    - 'CF_API_EMAIL=${EMAIL}'
    - 'CF_API_KEY=${API_KEY}'
    @@ -80,7 +80,7 @@ services:
    - '[email protected]'
    - '--certificatesresolvers.basic.acme.storage=/acme.json'
    - '--certificatesresolvers.basic.acme.dnschallenge=true'
    - '--certificatesresolvers.basic.acme.dnschallenge.provider=cloudflare'
    # - '--certificatesresolvers.basic.acme.dnschallenge.provider=cloudflare'
    # - '--certificatesresolvers.basic.acme.dnsChallenge.delayBeforeCheck=60'
    - '--certificatesresolvers.basic.acme.dnsChallenge.resolvers=1.1.1.1:53,8.8.8.8:53'
    # - '--certificatesresolvers.basic.acme.dnsChallenge.resolvers=1.1.1.1:53,8.8.8.8:53'
    - '--certificatesResolvers.basic.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory'
  16. IosifZ revised this gist Oct 4, 2019. 1 changed file with 6 additions and 4 deletions.
    10 changes: 6 additions & 4 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -18,10 +18,12 @@ services:
    # - traefik.frontend.passHostHeader=true
    # - traefik.port=6767
    - "traefik.enable=true"
    - "traefik.http.routers.bazarr.entrypoints=web"
    - "traefik.http.routers.bazarr.rule=Host(`bazarr.DOMAIN.com`)"
    - "traefik.http.routers.bazarr.entrypoints=web"
    - "traefik.http.routers.bazarr.tls=true"
    - "traefik.http.routers.bazarr.tls.certresolver=basic"
    - "traefik.http.routers.bazarr_https.entrypoints=web-secure"
    - "traefik.http.routers.bazarr_https.rule=Host(`bazarr.DOMAIN.com`)"
    - "traefik.http.routers.bazarr_https.tls=true"
    - "traefik.http.routers.bazarr_https.tls.certresolver=basic"
    - "traefik.http.routers.bazarr.tls.domains[0].main=DOMAIN.com"
    - "traefik.http.routers.bazarr.tls.domains[0].sans=*.DOMAIN.com"
    - "traefik.http.routers.bazarr.entrypoints=web-secure"
    @@ -44,8 +46,8 @@ services:
    labels:
    - "traefik.enable=true"
    - "traefik.http.routers.traefik.entrypoints=web"
    - "traefik.http.routers.traefik_https.entrypoints=web-secure"
    - "traefik.http.routers.traefik.rule=Host(`traefik.localhost`)"
    - "traefik.http.routers.traefik_https.entrypoints=web-secure"
    - "traefik.http.routers.traefik_https.rule=Host(`traefik.localhost`)"
    - "traefik.http.routers.traefik_https.tls=true"
    - "traefik.http.routers.traefik_https.tls.certresolver=basic"
  17. IosifZ revised this gist Oct 4, 2019. 1 changed file with 15 additions and 9 deletions.
    24 changes: 15 additions & 9 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,6 @@
    bazarr:
    version: '3.7'
    services:
    bazarr:
    image: 'linuxserver/bazarr:latest'
    container_name: bazarr
    hostname: bazarr
    @@ -41,15 +43,18 @@ bazarr:
    domainname: '${ZONE}'
    labels:
    - "traefik.enable=true"
    - "traefik.http.routers.traefik.rule=Host(`traefik.localhost`)"
    - "traefik.http.routers.traefik.tls=true"
    - "traefik.http.routers.traefik.tls.certresolver=basic"
    - "traefik.http.routers.traefik.entrypoints=web"
    - "traefik.http.routers.traefik_https.entrypoints=web-secure"
    - "traefik.http.routers.traefik.rule=Host(`traefik.localhost`)"
    - "traefik.http.routers.traefik_https.rule=Host(`traefik.localhost`)"
    - "traefik.http.routers.traefik_https.tls=true"
    - "traefik.http.routers.traefik_https.tls.certresolver=basic"
    # - "traefik.http.routers.traefik_https.service=api@internal"
    - "traefik.http.routers.traefik.tls.domains[0].main=DOMAIN.com"
    - "traefik.http.routers.traefik.tls.domains[0].sans=*.DOMAIN.com"
    - "traefik.http.routers.http_traefik.middlewares=https_redirect"
    - "traefik.http.routers.traefik_https.tls.domains[0].main=DOMAIN.com"
    - "traefik.http.routers.traefik_https.tls.domains[0].sans=*.DOMAIN.com"
    - "traefik.http.routers.traefik.middlewares=https_redirect"
    - "traefik.http.middlewares.https_redirect.redirectscheme.scheme=https"
    - "traefik.http.middlewares.https_redirect.redirectscheme.permanent=true"
    - "traefik.http.middlewares.https_redirect.redirectscheme.permanent=true"
    environment:
    - 'CF_API_EMAIL=${EMAIL}'
    - 'CF_API_KEY=${API_KEY}'
    @@ -75,4 +80,5 @@ bazarr:
    - '--certificatesresolvers.basic.acme.dnschallenge=true'
    - '--certificatesresolvers.basic.acme.dnschallenge.provider=cloudflare'
    # - '--certificatesresolvers.basic.acme.dnsChallenge.delayBeforeCheck=60'
    - '--certificatesresolvers.basic.acme.dnsChallenge.resolvers=1.1.1.1:53,8.8.8.8:53'
    - '--certificatesresolvers.basic.acme.dnsChallenge.resolvers=1.1.1.1:53,8.8.8.8:53'
    - '--certificatesResolvers.basic.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory'
  18. IosifZ created this gist Oct 3, 2019.
    78 changes: 78 additions & 0 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,78 @@
    bazarr:
    image: 'linuxserver/bazarr:latest'
    container_name: bazarr
    hostname: bazarr
    volumes:
    - '.\bazarr\config:/config'
    ports:
    - '6767:6767'
    environment:
    - TZ=Europe/Bucharest
    - com.ouroboros.enable=true
    restart: unless-stopped
    env_file:
    - .env
    labels:
    # - traefik.frontend.passHostHeader=true
    # - traefik.port=6767
    - "traefik.enable=true"
    - "traefik.http.routers.bazarr.rule=Host(`bazarr.DOMAIN.com`)"
    - "traefik.http.routers.bazarr.entrypoints=web"
    - "traefik.http.routers.bazarr.tls=true"
    - "traefik.http.routers.bazarr.tls.certresolver=basic"
    - "traefik.http.routers.bazarr.tls.domains[0].main=DOMAIN.com"
    - "traefik.http.routers.bazarr.tls.domains[0].sans=*.DOMAIN.com"
    - "traefik.http.routers.bazarr.entrypoints=web-secure"
    - "traefik.http.services.bazarr.loadbalancer.server.port=6767"
    traefik_2.0.1:
    image: 'traefik:2.0'
    container_name: traefik_2.0
    hostname: traefik_2.0
    ports:
    - '443:443'
    - '80:80'
    - '8080:8080'
    volumes:
    - '/var/run/docker.sock:/var/run/docker.sock'
    # - '.\traefik_2.0.1\traefik.yml:/etc/traefik/traefik.yml'
    env_file:
    - .env
    restart: unless-stopped
    domainname: '${ZONE}'
    labels:
    - "traefik.enable=true"
    - "traefik.http.routers.traefik.rule=Host(`traefik.localhost`)"
    - "traefik.http.routers.traefik.tls=true"
    - "traefik.http.routers.traefik.tls.certresolver=basic"
    # - "traefik.http.routers.traefik_https.service=api@internal"
    - "traefik.http.routers.traefik.tls.domains[0].main=DOMAIN.com"
    - "traefik.http.routers.traefik.tls.domains[0].sans=*.DOMAIN.com"
    - "traefik.http.routers.http_traefik.middlewares=https_redirect"
    - "traefik.http.middlewares.https_redirect.redirectscheme.scheme=https"
    - "traefik.http.middlewares.https_redirect.redirectscheme.permanent=true"
    environment:
    - 'CF_API_EMAIL=${EMAIL}'
    - 'CF_API_KEY=${API_KEY}'
    - com.ouroboros.enable=true
    - TZ=Europe/Bucharest
    command:
    - '--log.level=DEBUG'
    - '--log.format=json'
    - '--global.checkNewVersion=true'
    - '--global.sendAnonymousUsage=false'
    - '--entryPoints.web.address=:80'
    - '--entryPoints.web-secure.address=:443'
    - '--api'
    - '--api.debug'
    - '--api.insecure'
    - '--api.dashboard'
    - '--ping'
    - '--providers.docker.exposedByDefault=false'
    - '--providers.docker.watch=true'
    - '--providers.docker.swarmMode=false'
    - '[email protected]'
    - '--certificatesresolvers.basic.acme.storage=/acme.json'
    - '--certificatesresolvers.basic.acme.dnschallenge=true'
    - '--certificatesresolvers.basic.acme.dnschallenge.provider=cloudflare'
    # - '--certificatesresolvers.basic.acme.dnsChallenge.delayBeforeCheck=60'
    - '--certificatesresolvers.basic.acme.dnsChallenge.resolvers=1.1.1.1:53,8.8.8.8:53'