summaryrefslogtreecommitdiff
path: root/docker-compose.example.yaml
blob: be3ec0443cfebf0aa5bb7ee18713c11a933707ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
version: "3"

services:
  # <media_service> is used to serve your media to the client devices
  <media_service>:
    image: lscr.io/linuxserver/${MEDIA_SERVICE}
    container_name: ${MEDIA_SERVICE}
    #network_mode: host # plex
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - VERSION=docker
    volumes:
      - ${MEDIA_DIRECTORY}/movies:/data/movies
      - ${MEDIA_DIRECTORY}/tvshows:/data/tvshows
      - ${INSTALL_LOCATION}/config/${MEDIA_SERVICE}:/config
    ports:
      - 8096:8096
    restart: unless-stopped

  # qBitorrent is used to download torrents
  qbittorrent:
    image: lscr.io/linuxserver/qbittorrent
    container_name: qbittorrent
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - WEB_UI_PORT=8080
    volumes:
      - ${MEDIA_DIRECTORY}/downloads:/downloads
      - ${INSTALL_LOCATION}/config/qbittorrent:/config
    restart: unless-stopped
    ports: # qbittorrent
      - 8080:8080 # qbittorrent
    #network_mode: "service:gluetun"

  # Sonarr is used to query, add downloads to the download queue and index TV shows
  # https://sonarr.tv/
  sonarr:
    image: lscr.io/linuxserver/sonarr
    container_name: sonarr
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
    volumes:
      - ${MEDIA_DIRECTORY}/tvshows:/tv
      - ${MEDIA_DIRECTORY}/downloads:/downloads
      - ${INSTALL_LOCATION}/config/sonarr:/config
    ports:
      - 8989:8989
    restart: unless-stopped

  # Radarr is used to query, add downloads to the download queue and index Movies
  # https://radarr.video/
  radarr:
    image: lscr.io/linuxserver/radarr
    container_name: radarr
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
    volumes:
      - ${MEDIA_DIRECTORY}/movies:/movies
      - ${MEDIA_DIRECTORY}/downloads:/downloads
      - ${INSTALL_LOCATION}/config/radarr:/config
    ports:
      - 7878:7878
    restart: unless-stopped

  # Lidarr is used to query, add downloads to the download queue and index Music
  # https://lidarr.audio/
  lidarr:
    image: lscr.io/linuxserver/lidarr
    container_name: lidarr
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
    volumes:
      - ${MEDIA_DIRECTORY}/music:/music
      - ${MEDIA_DIRECTORY}/downloads:/downloads
      - ${INSTALL_LOCATION}/config/lidarr:/config
    ports:
      - 8686:8686
    restart: unless-stopped

  # Readarr is used to query, add downloads to the download queue and index Audio and Ebooks
  # https://readarr.com/
  readarr:
    image: lscr.io/linuxserver/readarr:develop
    container_name: readarr
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
    volumes:
      - ${MEDIA_DIRECTORY}/books:/books
      - ${MEDIA_DIRECTORY}/downloads:/downloads
      - ${INSTALL_LOCATION}/config/readarr:/config
    ports:
      - 8787:8787
    restart: unless-stopped

  # Bazarr is used to download and categorize subtitles
  # https://www.bazarr.media/
  bazarr:
    image: lscr.io/linuxserver/bazarr
    container_name: bazarr
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
    volumes:
      - ${MEDIA_DIRECTORY}/movies:/movies
      - ${MEDIA_DIRECTORY}/tvshows:/tv
      - ${INSTALL_LOCATION}/config/bazarr:/config
    ports:
      - 6767:6767
    restart: unless-stopped

  # Prowlarr is our torrent indexer/searcher. Sonarr/Radarr use Prowlarr as a source
  # https://prowlarr.com/
  prowlarr:
    image: lscr.io/linuxserver/prowlarr
    container_name: prowlarr
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
    volumes:
      - ${INSTALL_LOCATION}/config/prowlarr:/config
    ports:
      - 9696:9696
    restart: unless-stopped

  # Gluetun is our VPN, so you can download torrents safely
  gluetun:
    image: qmcgaw/gluetun:v3.34.1
    container_name: gluetun
    cap_add:
      - NET_ADMIN
    devices:
      - /dev/net/tun:/dev/net/tun
    ports:
      - 8888:8888/tcp # HTTP proxy
      - 8388:8388/tcp # Shadowsocks
      - 8388:8388/udp # Shadowsocks
      #- 8080:8080/tcp # gluetun
    volumes:
      - ${INSTALL_LOCATION}/config/gluetun:/config
    environment:
      - VPN_SERVICE_PROVIDER=${VPN_SERVICE}
      - VPN_TYPE=openvpn
      - OPENVPN_USER=${VPN_USER}
      - OPENVPN_PASSWORD=${VPN_PASSWORD}
      - OPENVPN_CIPHERS=AES-256-GCM
    restart: unless-stopped

  # Portainer helps debugging and monitors the containers
  portainer:
    image: portainer/portainer-ce
    container_name: portainer
    ports:
      - 9000:9000
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ${INSTALL_LOCATION}/config/portainer:/data
    restart: unless-stopped

  # Watchtower is going to keep our instances updated
  watchtower:
    image: containrrr/watchtower
    container_name: watchtower
    environment:
      - WATCHTOWER_CLEANUP=true
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    restart: unless-stopped