Last active
January 28, 2024 13:52
-
-
Save IosifZ/f85ce274e02692bea100aa0f75e422e9 to your computer and use it in GitHub Desktop.
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
version: '3.7' | |
services: | |
traefik_v2.0: | |
image: 'traefik:2.0' | |
container_name: traefik_v2.0 | |
hostname: traefik_v2.0 | |
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" | |
environment: | |
- "CLOUDFLARE_EMAIL=${EMAIL}" | |
- "CLOUDFLARE_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.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' | |
# - '--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 | |
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' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment