/
/
/
Ansible role that provisions my storage server.
1---
2# Storage Services Variables
3# Internal role variables and constants
4
5# ==============================================================================
6# SERVICE VERSIONS (PINNED FOR STABILITY)
7# ==============================================================================
8jellyfin_version: "latest"
9sonarr_version: "latest"
10radarr_version: "latest"
11prowlarr_version: "latest"
12readarr_version: "nightly"
13gluetun_version: "latest"
14calibre_version: "latest"
15calibre_web_version: "latest"
16restic_version: "latest"
17
18# ==============================================================================
19# DOCKER IMAGE REGISTRY
20# ==============================================================================
21docker_registry: "docker.io"
22jellyfin_image: "{{ docker_registry }}/jellyfin/jellyfin"
23sonarr_image: "{{ docker_registry }}/linuxserver/sonarr"
24radarr_image: "{{ docker_registry }}/linuxserver/radarr"
25prowlarr_image: "{{ docker_registry }}/linuxserver/prowlarr"
26readarr_image: "{{ docker_registry }}/linuxserver/readarr"
27gluetun_image: "{{ docker_registry }}/qmcgaw/gluetun"
28calibre_image: "{{ docker_registry }}/linuxserver/calibre"
29calibre_web_image: "{{ docker_registry }}/linuxserver/calibre-web"
30restic_image: "{{ docker_registry }}/restic/rest-server"
31
32# ==============================================================================
33# INTERNAL SERVICE DEPENDENCIES
34# ==============================================================================
35service_dependencies:
36 jellyfin: []
37 arr_stack:
38 - gluetun
39 calibre_stack: []
40 restic_server: []
41
42# ==============================================================================
43# VOLUME MOUNT PATTERNS
44# ==============================================================================
45common_volume_mounts:
46 config: "{{ storage_docker_dir }}/%SERVICE%/config:/config"
47 downloads: "{{ arr_downloads_dir }}:/downloads"
48 media: "{{ storage_base_path }}/media:/media"
49 books: "{{ storage_base_path }}/media/books:/books"
50
51# ==============================================================================
52# NETWORK CONFIGURATIONS
53# ==============================================================================
54internal_networks:
55 - name: "{{ storage_docker_network }}"
56 driver: bridge
57 internal: false
58
59# ==============================================================================
60# HEALTH CHECK PATTERNS
61# ==============================================================================
62health_check_patterns:
63 http:
64 test: ["CMD", "curl", "-f", "http://localhost:%PORT%/health"]
65 interval: "{{ health_check_interval }}"
66 timeout: "{{ health_check_timeout }}"
67 retries: "{{ health_check_retries }}"
68
69 tcp:
70 test: ["CMD", "nc", "-z", "localhost", "%PORT%"]
71 interval: "{{ health_check_interval }}"
72 timeout: "{{ health_check_timeout }}"
73 retries: "{{ health_check_retries }}"
74
75# ==============================================================================
76# ENVIRONMENT TEMPLATE DEFAULTS
77# ==============================================================================
78common_environment:
79 PUID: "{{ storage_uid }}"
80 PGID: "{{ storage_gid }}"
81 TZ: "{{ storage_timezone }}"
82 UMASK_SET: "022"