-
-
Save earendildev/312627d8de7c2b33cd4e16d4be0513d5 to your computer and use it in GitHub Desktop.
Traefik - Portainer - etc. Require to create an environment file to store variables, esp for Ouroboros
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Follow | |
| # https://geek-cookbook.funkypenguin.co.nz | |
| # for an updated version | |
| version: '3.7' | |
| services: | |
| 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\rules.yml:/rules.yml' | |
| env_file: | |
| - .env | |
| restart: unless-stopped | |
| labels: | |
| - com.ouroboros.enable=true | |
| - 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.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 | |
| environment: | |
| - 'CLOUDFLARE_EMAIL=${EMAIL}' | |
| - 'CLOUDFLARE_API_KEY=${API_KEY}' | |
| - com.ouroboros.enable=true | |
| - TZ=${TZ} | |
| 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.file.filename=/rules.yml' | |
| - '--providers.file.watch=true' | |
| - '--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.trustForwardHeader=true | |
| - 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-ce:latest' | |
| container_name: portainer | |
| hostname: portainer | |
| env_file: | |
| - .env | |
| environment: | |
| - com.ouroboros.enable=true | |
| - TZ=${TZ} | |
| 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 | |
| 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.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 | |
| - traefik.http.routers.organizr_https.middlewares=fauth | |
| kitana: | |
| image: pannal/kitana | |
| container_name: kitana | |
| hostname: kitana | |
| restart: unless-stopped | |
| environment: | |
| - 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.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' | |
| 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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment