Skip to content

Instantly share code, notes, and snippets.

@marcopeocchi
Last active January 5, 2024 17:14
Show Gist options
  • Save marcopeocchi/7bdd7b4eec1ff7c05ea4a93ba76178b9 to your computer and use it in GitHub Desktop.
Save marcopeocchi/7bdd7b4eec1ff7c05ea4a93ba76178b9 to your computer and use it in GitHub Desktop.
---
version: "3"
services:
traefik:
image: traefik:v2.10
container_name: traefik
command: --api.insecure=true --providers.docker
restart: always
environment:
- CF_DNS_API_TOKEN=:D
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/marco/.config/traefik:/etc/traefik
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Rome
volumes:
- /home/marco/.config/sonarr:/config
- /mnt/merged/share/anime:/tv
- /mnt/merged/share/torrents:/downloads
labels:
- "traefik.http.routers.sonarr.rule=Host(`sonarr.nelretrobottega.xyz`)"
- "traefik.http.routers.sonarr.entrypoints=https"
- "traefik.http.routers.sonarr.tls=true"
- "traefik.http.routers.sonarr.tls.certresolver=dns"
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Rome
- WEBUI_PORT=8083
ports:
- 6881:6881
- 6881:6881/udp
volumes:
- /home/marco/.config/qbittorrent:/config
- /mnt/merged/share/torrents:/downloads
restart: unless-stopped
labels:
- "traefik.http.routers.qbittorrent.rule=Host(`qbittorrent.nelretrobottega.xyz`)"
- "traefik.http.routers.qbittorrent.entrypoints=https"
- "traefik.http.routers.qbittorrent.tls=true"
- "traefik.http.routers.qbittorrent.tls.certresolver=dns"
- "traefik.http.services.qbittorrent.loadbalancer.server.port=8083"
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
devices:
- "/dev/dri:/dev/dri"
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Rome
- JELLYFIN_PublishedServerUrl=10.0.0.2
volumes:
- /home/marco/.config/jellyfin:/config
- /mnt/merged/share:/data
restart: unless-stopped
labels:
- "traefik.http.routers.jellyfin.rule=Host(`jellyfin.nelretrobottega.xyz`)"
- "traefik.http.routers.jellyfin.entrypoints=https"
- "traefik.http.routers.jellyfin.tls=true"
- "traefik.http.routers.jellyfin.tls.certresolver=dns"
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Rome
volumes:
- /home/marco/.config/prowlarr:/config
restart: unless-stopped
labels:
- "traefik.http.routers.prowlarr.rule=Host(`prowlarr.nelretrobottega.xyz`)"
- "traefik.http.routers.prowlarr.entrypoints=https"
- "traefik.http.routers.prowlarr.tls=true"
- "traefik.http.routers.prowlarr.tls.certresolver=dns"
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
restart: unless-stopped
environment:
ND_SCANSCHEDULE: 6h
volumes:
- /home/marco/.config/navidrome:/data
- /mnt/merged/share/music:/music:ro
labels:
- "traefik.http.routers.navidrome.rule=Host(`navidrome.nelretrobottega.xyz`)"
- "traefik.http.routers.navidrome.entrypoints=https"
- "traefik.http.routers.navidrome.tls=true"
- "traefik.http.routers.navidrome.tls.certresolver=dns"
yt-dlp-webui:
image: ghcr.io/marcopeocchi/yt-dlp-web-ui:latest
container_name: yt-dlp-webui
restart: unless-stopped
volumes:
- /mnt/merged/share/downloads:/downloads
- /home/marco/.config/yt-dlp-webui:/config
labels:
- "traefik.http.routers.yt-dlp-webui.rule=Host(`ytdlp.nelretrobottega.xyz`)"
- "traefik.http.routers.yt-dlp-webui.entrypoints=https"
- "traefik.http.routers.yt-dlp-webui.tls=true"
- "traefik.http.routers.yt-dlp-webui.tls.certresolver=dns"
minecraft:
image: itzg/minecraft-server
container_name: minecraft
restart: unless-stopped
stdin_open: true
ports:
- "25565:25565"
environment:
EULA: "TRUE"
MEMORY: "2G"
ONLINE_MODE: false
SERVER_NAME: "Nahida ha minecraft installato nell'Akasha"
MOTD: "Minecraft nell'Akasha??"
TYPE: "FABRIC"
VERSION: "1.20.1"
MAX_PLAYERS: 2
USE_SIMD_FLAGS: true
volumes:
- /home/marco/.data/minecraft:/data
grafana:
image: grafana/grafana
container_name: grafana
restart: unless-stopped
labels:
- "traefik.http.routers.grafana.rule=Host(`grafana.nelretrobottega.xyz`)"
- "traefik.http.routers.grafana.entrypoints=https"
- "traefik.http.routers.grafana.tls=true"
- "traefik.http.routers.grafana.tls.certresolver=dns"
prometheus:
image: prom/prometheus
container_name: prometheus
restart: unless-stopped
volumes:
- /home/marco/.config/prometheus.yml:/etc/prometheus/prometheus.yml
node_exporter:
image: quay.io/prometheus/node-exporter:latest
container_name: node_exporter
restart: unless-stopped
plex:
image: lscr.io/linuxserver/plex:latest
container_name: plex
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Rome
- VERSION=docker
volumes:
- /mnt/merged/share:/tv
- /home/marco/.config/plex:/config
ports:
- 1900:1900/udp
- 5353:5353/udp
- 8324:8324
- 32410:32410/udp
- 32412:32412/udp
- 32413:32413/udp
- 32414:32414/udp
- 32469:32469
- 32400:32400
labels:
- "traefik.http.routers.plex.rule=Host(`plex.nelretrobottega.xyz`)"
- "traefik.http.routers.plex.entrypoints=https"
- "traefik.http.routers.plex.tls=true"
- "traefik.http.routers.plex.tls.certresolver=dns"
- "traefik.http.services.plex.loadbalancer.server.port=32400"
kavita:
image: jvmilazz0/kavita:latest
container_name: kavita
volumes:
- /mnt/merged/share/manga:/manga
- /mnt/merged/share/lightnovels:/books
- /home/marco/.config/kavita:/kavita/config
environment:
- TZ=Europe/Rome
restart: unless-stopped
labels:
- "traefik.http.routers.kavita.rule=Host(`kavita.nelretrobottega.xyz`)"
- "traefik.http.routers.kavita.entrypoints=https"
- "traefik.http.routers.kavita.tls=true"
- "traefik.http.routers.kavita.tls.certresolver=dns"
homepage:
image: ghcr.io/gethomepage/homepage:latest
container_name: homepage
volumes:
- /home/marco/.config/homepage:/app/config
- /var/run/docker.sock:/var/run/docker.sock
environment:
PUID: 1000
PGID: 1000
labels:
- "traefik.http.routers.homepage.rule=Host(`cazzeggio.nelretrobottega.xyz`)"
- "traefik.http.routers.homepage.entrypoints=https"
- "traefik.http.routers.homepage.tls=true"
- "traefik.http.routers.homepage.tls.certresolver=dns"
# Homepage
---
- Arr stack:
- Sonarr:
icon: sonarr.png
href: https://sonarr.nelretrobottega.xyz
description: Anime/Series TV tracker
widget:
type: sonarr
url: https://sonarr.nelretrobottega.xyz
key: ***
- Prowlarr:
icon: prowlarr.png
href: https://prowlarr.nelretrobottega.xyz
description: Torrent indexer
widget:
type: prowlarr
url: https://prowlarr.nelretrobottega.xyz
key: ***
- Media:
- Plex:
icon: plex.png
href: https://plex.nelretrobottega.xyz
description: Anime and Animation movies
widget:
type: plex
url: https://plex.nelretrobottega.xyz
key: ***
- Jellyfin:
icon: jellyfin.png
href: https://jellyfin.nelretrobottega.xyz
description: Tutto
widget:
type: jellyfin
url: https://jellyfin.nelretrobottega.xyz
key: ***
enableBlocks: true
enableNowPlaying: true
- Navidrome:
icon: navidrome.png
href: https://navidrome.nelretrobottega.xyz
description: Music streaming service
- Downloaders:
- qBittorrent:
icon: qbittorrent.png
href: https://qbittorrent.nelretrobottega.xyz
description: Bittorrent downloader
widget:
type: qbittorrent
url: https://qbittorrent.nelretrobottega.xyz
username: admin
password: sborrettopetrolio
- yt-dlp-webui:
icon: go.png
href: https://ytdlp.nelretrobottega.xyz
description: The best media downloader 😎
- System:
- Grafana:
icon: grafana.png
href: https://grafana.nelretrobottega.xyz
description: Observability
- Traefik:
icon: traefik.png
href: http://10.0.0.2:8080
description: Cloud-Native reverse proxy
- Adguard:
icon: adguard-home.png
href: http://10.0.0.10
description: DNS level Ad-Block
widget:
type: adguard
url: http://10.0.0.10
username: ***
password: ***
- Games:
- Minecraft:
icon: minecraft.png
description: Fabric server
widget:
type: minecraft
url: udp://minecraft:25565
# Homepage
---
title: Akasha
background:
image: https://w.wallhaven.cc/full/o3/wallhaven-o3km89.png
opacity: 40
cardBlur: md
layout:
System:
style: row
columns: 4
global:
sendAnonymousUsage: false
api:
dashboard: true
insecure: true
entryPoints:
http:
address: :80
http:
redirections:
entryPoint:
to: https
scheme: https
https:
address: :443
certificatesResolvers:
dns:
acme:
email: "marco.piovanello@gmail.com"
storage: "acme.json"
dnsChallenge:
provider: cloudflare
delayBeforeCheck: 30
providers:
docker:
exposedByDefault: true
@marcopeocchi
Copy link
Author

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment