storage
Ansible role that provisions my storage server.
4.7 KB•J2
arr-stack-compose.yml.j2
4.7 KB • 213 lines • plaintext
1# Arr Stack with Gluetun VPN Docker Compose Configuration
2# Generated by Ansible - DO NOT EDIT MANUALLY
3
4
5services:
6 gluetun:
7 image: {{ gluetun_image }}:{{ gluetun_version }}
8 container_name: gluetun
9 restart: unless-stopped
10
11 # VPN Configuration
12 env_file:
13 - .env
14
15 # Capabilities for VPN
16 cap_add:
17 - NET_ADMIN
18
19 # Port Mapping for all Arr services
20 ports:
21 - "{{ sonarr_host_port }}:{{ sonarr_port }}"
22 - "{{ radarr_host_port }}:{{ radarr_port }}"
23 - "{{ prowlarr_host_port }}:{{ prowlarr_port }}"
24 - "{{ lazylibrarian_host_port }}:{{ lazylibrarian_port }}"
25 - "{{ jellyseer_host_port }}:{{ jellyseer_port }}"
26 - "{{ flaresolverr_host_port }}:{{ flaresolverr_port }}"
27 - "{{ qbittorrent_host_port }}:{{ qbittorrent_port }}"
28
29 # Volume Mounts
30 volumes:
31 - {{ gluetun_config_dir }}:/gluetun
32
33 # Network (isolated arr network)
34 networks:
35 - {{ arr_docker_network }}
36
37 # Health Check
38 healthcheck:
39 test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://www.google.com"]
40 interval: 30s
41 timeout: 10s
42 retries: 3
43 start_period: 60s
44
45{% if sonarr_enabled %}
46 sonarr:
47 image: {{ sonarr_image }}:{{ sonarr_version }}
48 container_name: sonarr
49 restart: unless-stopped
50 depends_on:
51 gluetun:
52 condition: service_healthy
53
54 # Environment Configuration
55 env_file:
56 - .env
57
58 # Use Gluetun network stack
59 network_mode: "service:gluetun"
60
61 # Volume Mounts
62 volumes:
63 - {{ sonarr_config_dir }}:/config
64 - {{ sonarr_tv_dir }}:/tv
65 - {{ arr_downloads_dir }}:/downloads
66
67{% endif %}
68
69{% if radarr_enabled %}
70 radarr:
71 image: {{ radarr_image }}:{{ radarr_version }}
72 container_name: radarr
73 restart: unless-stopped
74 depends_on:
75 gluetun:
76 condition: service_healthy
77
78 # Environment Configuration
79 env_file:
80 - .env
81
82 # Use Gluetun network stack
83 network_mode: "service:gluetun"
84
85 # Volume Mounts
86 volumes:
87 - {{ radarr_config_dir }}:/config
88 - {{ radarr_movies_dir }}:/movies
89 - {{ arr_downloads_dir }}:/downloads
90
91{% endif %}
92
93{% if prowlarr_enabled %}
94 prowlarr:
95 image: {{ prowlarr_image }}:{{ prowlarr_version }}
96 container_name: prowlarr
97 restart: unless-stopped
98 depends_on:
99 gluetun:
100 condition: service_healthy
101
102 # Environment Configuration
103 env_file:
104 - .env
105
106 # Use Gluetun network stack
107 network_mode: "service:gluetun"
108
109 # Volume Mounts
110 volumes:
111 - {{ prowlarr_config_dir }}:/config
112
113{% endif %}
114
115{% if lazylibrarian_enabled %}
116 lazylibrarian:
117 image: linuxserver/lazylibrarian:latest
118 container_name: lazylibrarian
119 restart: unless-stopped
120 depends_on:
121 gluetun:
122 condition: service_healthy
123
124 # Environment Configuration
125 env_file:
126 - .env
127
128 # Use Gluetun network stack
129 network_mode: "service:gluetun"
130
131 # Volume Mounts
132 volumes:
133 - {{ lazylibrarian_config_dir }}:/config
134 - {{ lazylibrarian_books_dir }}:/books
135 - {{ arr_downloads_dir }}:/downloads
136
137{% endif %}
138
139{% if jellyseer_enabled %}
140 jellyseer:
141 image: {{ jellyseer_image }}:{{ jellyseer_version }}
142 container_name: jellyseer
143 restart: unless-stopped
144
145 # Dependencies
146 depends_on:
147 gluetun:
148 condition: service_healthy
149
150 # Environment Configuration
151 env_file:
152 - .env
153
154 # Use Gluetun network stack
155 network_mode: "service:gluetun"
156
157 # Volume Mounts
158 volumes:
159 - {{ jellyseer_config_dir }}:/config
160
161{% endif %}
162
163{% if flaresolverr_enabled %}
164 flaresolverr:
165 image: {{ flaresolverr_image }}:{{ flaresolverr_version }}
166 container_name: flaresolverr
167 restart: unless-stopped
168 depends_on:
169 gluetun:
170 condition: service_healthy
171
172 # Environment Configuration
173 env_file:
174 - .env
175
176 # Use Gluetun network stack
177 network_mode: "service:gluetun"
178
179 # Volume Mounts
180 volumes:
181 - {{ flaresolverr_config_dir }}:/app/config
182
183{% endif %}
184
185{% if qbittorrent_enabled %}
186 qbittorrent:
187 image: {{ qbittorrent_image }}:{{ qbittorrent_version }}
188 container_name: qbittorrent
189 restart: unless-stopped
190 depends_on:
191 gluetun:
192 condition: service_healthy
193
194 # Environment Configuration
195 env_file:
196 - .env
197
198 # Use Gluetun network stack
199 network_mode: "service:gluetun"
200
201 # Volume Mounts
202 volumes:
203 - {{ qbittorrent_config_dir }}:/config
204 - {{ qbittorrent_downloads_dir }}:/downloads
205
206{% endif %}
207
208networks:
209 {{ storage_docker_network }}:
210 external: true
211 {{ arr_docker_network }}:
212 external: true
213