Skip to content

Instantly share code, notes, and snippets.

@mildfuzz
Created March 15, 2025 11:19
Show Gist options
  • Select an option

  • Save mildfuzz/3ecb6f3c8f2d24c3fc1897c5b632ca22 to your computer and use it in GitHub Desktop.

Select an option

Save mildfuzz/3ecb6f3c8f2d24c3fc1897c5b632ca22 to your computer and use it in GitHub Desktop.
docker compose
name: compose
services:
bazarr:
container_name: bazarr
environment:
PGID: "1000"
PUID: "1000"
TZ: Europe/London
hostname: media-server
image: lscr.io/linuxserver/bazarr:latest
networks:
default: null
ports:
- mode: ingress
target: 6767
published: "6767"
protocol: tcp
restart: unless-stopped
volumes:
- type: bind
source: /etc/localtime
target: /etc/localtime
read_only: true
bind:
create_host_path: true
- type: bind
source: /mnt/appconfig/appdata/bazarr
target: /config
bind:
create_host_path: true
- type: bind
source: /mnt/storage
target: /storage
bind:
create_host_path: true
calibre:
container_name: calibre
environment:
CALIBRE_USE_DARK_PALETTE: "1"
CLI_ARGS: ""
GUAC_PASS: ""
GUAC_USER: ""
PGID: "1000"
PUID: "1000"
TZ: Europe/London
hostname: media-server
image: lscr.io/linuxserver/calibre:latest
networks:
default: null
ports:
- mode: ingress
target: 8080
published: "8080"
protocol: tcp
- mode: ingress
target: 8081
published: "8081"
protocol: tcp
restart: unless-stopped
security_opt:
- seccomp:unconfined
volumes:
- type: bind
source: /etc/localtime
target: /etc/localtime
read_only: true
bind:
create_host_path: true
- type: bind
source: /mnt/appconfig/appdata/calibre
target: /config
bind:
create_host_path: true
- type: bind
source: /mnt/storage
target: /storage
bind:
create_host_path: true
calibreweb:
container_name: calibreweb
environment:
PGID: "1000"
PUID: "1000"
TZ: Europe/London
hostname: media-server
image: lscr.io/linuxserver/calibre-web:latest
networks:
default: null
ports:
- mode: ingress
target: 8083
published: "8083"
protocol: tcp
restart: unless-stopped
volumes:
- type: bind
source: /etc/localtime
target: /etc/localtime
read_only: true
bind:
create_host_path: true
- type: bind
source: /mnt/appconfig/appdata/calibreweb
target: /config
bind:
create_host_path: true
- type: bind
source: /mnt/storage
target: /storage
bind:
create_host_path: true
emby:
container_name: emby
environment:
PGID: "1000"
PUID: "1000"
TZ: Europe/London
hostname: media-server
image: lscr.io/linuxserver/emby:latest
networks:
default: null
ports:
- mode: ingress
target: 8096
published: "8097"
protocol: tcp
- mode: ingress
target: 8920
published: "8920"
protocol: tcp
restart: unless-stopped
volumes:
- type: bind
source: /etc/localtime
target: /etc/localtime
read_only: true
bind:
create_host_path: true
- type: bind
source: /mnt/appconfig/appdata/emby
target: /config
bind:
create_host_path: true
- type: bind
source: /mnt/storage
target: /storage
bind:
create_host_path: true
- type: bind
source: /tmp
target: /transcode
bind:
create_host_path: true
fail2ban:
cap_add:
- NET_ADMIN
- NET_RAW
container_name: fail2ban
environment:
PGID: "1000"
PUID: "1000"
TZ: Europe/London
image: lscr.io/linuxserver/fail2ban:latest
network_mode: host
restart: unless-stopped
volumes:
- type: bind
source: /etc/localtime
target: /etc/localtime
read_only: true
bind:
create_host_path: true
- type: bind
source: /var/log
target: /var/log
read_only: true
bind:
create_host_path: true
- type: bind
source: /mnt/appconfig/appdata/fail2ban
target: /config
bind:
create_host_path: true
- type: bind
source: /mnt/storage
target: /storage
bind:
create_host_path: true
flaresolverr:
container_name: flaresolverr
environment:
CAPTCHA_SOLVER: none
LOG_HTML: "false"
LOG_LEVEL: info
PORT: "8191"
TZ: Europe/London
hostname: media-server
image: ghcr.io/flaresolverr/flaresolverr:latest
networks:
default: null
ports:
- mode: ingress
target: 8191
published: "8191"
protocol: tcp
restart: unless-stopped
volumes:
- type: bind
source: /etc/localtime
target: /etc/localtime
read_only: true
bind:
create_host_path: true
- type: bind
source: /mnt/storage
target: /storage
bind:
create_host_path: true
jellyseerr:
container_name: jellyseerr
environment:
PGID: "1000"
PUID: "1000"
TZ: Europe/London
hostname: media-server
image: fallenbagel/jellyseerr:latest
networks:
default: null
ports:
- mode: ingress
target: 5055
published: "5055"
protocol: tcp
restart: unless-stopped
volumes:
- type: bind
source: /etc/localtime
target: /etc/localtime
read_only: true
bind:
create_host_path: true
- type: bind
source: /mnt/appconfig/appdata/jellyseerr
target: /app/config
bind:
create_host_path: true
- type: bind
source: /mnt/storage
target: /storage
bind:
create_host_path: true
portainer:
command:
- -H
- unix:///var/run/docker.sock
container_name: portainer
environment:
TZ: Europe/London
hostname: media-server
image: portainer/portainer-ce:latest
networks:
default: null
ports:
- mode: ingress
target: 9000
published: "9000"
protocol: tcp
restart: unless-stopped
volumes:
- type: bind
source: /etc/localtime
target: /etc/localtime
read_only: true
bind:
create_host_path: true
- type: bind
source: /mnt/appconfig/appdata/portainer
target: /data
bind:
create_host_path: true
- type: bind
source: /mnt/storage
target: /storage
bind:
create_host_path: true
- type: bind
source: /var/run/docker.sock
target: /var/run/docker.sock
bind:
create_host_path: true
prowlarr:
container_name: prowlarr
environment:
PGID: "1000"
PUID: "1000"
TZ: Europe/London
hostname: media-server
image: lscr.io/linuxserver/prowlarr:latest
networks:
default: null
ports:
- mode: ingress
target: 9696
published: "9696"
protocol: tcp
restart: unless-stopped
volumes:
- type: bind
source: /etc/localtime
target: /etc/localtime
read_only: true
bind:
create_host_path: true
- type: bind
source: /mnt/appconfig/appdata/prowlarr
target: /config
bind:
create_host_path: true
- type: bind
source: /mnt/storage
target: /storage
bind:
create_host_path: true
radarr:
container_name: radarr
environment:
PGID: "1000"
PUID: "1000"
TZ: Europe/London
hostname: media-server
image: lscr.io/linuxserver/radarr:latest
networks:
default: null
ports:
- mode: ingress
target: 7878
published: "7878"
protocol: tcp
restart: unless-stopped
volumes:
- type: bind
source: /etc/localtime
target: /etc/localtime
read_only: true
bind:
create_host_path: true
- type: bind
source: /mnt/appconfig/appdata/radarr
target: /config
bind:
create_host_path: true
- type: bind
source: /mnt/storage
target: /storage
bind:
create_host_path: true
readarr:
container_name: readarr
environment:
PGID: "1000"
PUID: "1000"
TZ: Europe/London
hostname: media-server
image: lscr.io/linuxserver/readarr:develop
networks:
default: null
ports:
- mode: ingress
target: 8787
published: "8787"
protocol: tcp
restart: unless-stopped
volumes:
- type: bind
source: /etc/localtime
target: /etc/localtime
read_only: true
bind:
create_host_path: true
- type: bind
source: /mnt/appconfig/appdata/readarr
target: /config
bind:
create_host_path: true
- type: bind
source: /mnt/storage
target: /storage
bind:
create_host_path: true
sabnzbd:
container_name: sabnzbd
environment:
PGID: "1000"
PUID: "1000"
TZ: Europe/London
hostname: media-server
image: lscr.io/linuxserver/sabnzbd:latest
networks:
default: null
ports:
- mode: ingress
target: 8080
published: "7226"
protocol: tcp
restart: unless-stopped
volumes:
- type: bind
source: /etc/localtime
target: /etc/localtime
read_only: true
bind:
create_host_path: true
- type: bind
source: /mnt/appconfig/appdata/sabnzbd
target: /config
bind:
create_host_path: true
- type: bind
source: /mnt/storage
target: /storage
bind:
create_host_path: true
sonarr:
container_name: sonarr
environment:
PGID: "1000"
PUID: "1000"
TZ: Europe/London
hostname: media-server
image: lscr.io/linuxserver/sonarr:latest
networks:
default: null
ports:
- mode: ingress
target: 8989
published: "8989"
protocol: tcp
restart: unless-stopped
volumes:
- type: bind
source: /etc/localtime
target: /etc/localtime
read_only: true
bind:
create_host_path: true
- type: bind
source: /mnt/appconfig/appdata/sonarr
target: /config
bind:
create_host_path: true
- type: bind
source: /mnt/storage
target: /storage
bind:
create_host_path: true
watchtower:
container_name: watchtower
environment:
REPO_PASS: ""
REPO_USER: ""
TZ: Europe/London
WATCHTOWER_CLEANUP: "true"
WATCHTOWER_INCLUDE_STOPPED: "false"
WATCHTOWER_MONITOR_ONLY: "false"
WATCHTOWER_NOTIFICATION_TEMPLATE: '{{range .}}{{.Message}}{{println}}{{end}}'
WATCHTOWER_NOTIFICATION_URL: ""
WATCHTOWER_NOTIFICATIONS: shoutrrr
WATCHTOWER_NOTIFICATIONS_LEVEL: info
WATCHTOWER_SCHEDULE: 0 0 4 * * *
WATCHTOWER_TIMEOUT: 10s
hostname: media-server
image: ghcr.io/containrrr/watchtower:latest
networks:
default: null
restart: unless-stopped
volumes:
- type: bind
source: /etc/localtime
target: /etc/localtime
read_only: true
bind:
create_host_path: true
- type: bind
source: /mnt/storage
target: /storage
bind:
create_host_path: true
- type: bind
source: /var/run/docker.sock
target: /var/run/docker.sock
bind:
create_host_path: true
networks:
default:
name: compose_default
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment