/
/
/
Ansible role that provisions my storage server.
1=========================================================
2STORAGE SERVICES ACCESS SUMMARY
3=========================================================
4Generated: {{ ansible_date_time.iso8601 }}
5Server: {{ inventory_hostname }} ({{ ansible_default_ipv4.address }})
6Storage Path: {{ storage_base_path }}
7Docker Path: {{ storage_docker_dir }}
8
9=========================================================
10SERVICE ACCESS URLS
11=========================================================
12
13{% if jellyfin_enabled %}
14JELLYFIN MEDIA SERVER
15URL: http://{{ ansible_default_ipv4.address }}:{{ jellyfin_host_port }}
16Config: {{ jellyfin_config_dir }}
17Media: {{ jellyfin_media_dir }}
18
19{% endif %}
20{% if arr_stack_enabled %}
21MEDIA AUTOMATION (ARR STACK)
22{% if sonarr_enabled %}
23Sonarr (TV Shows): http://{{ ansible_default_ipv4.address }}:{{ sonarr_host_port }}
24{% endif %}
25{% if radarr_enabled %}
26Radarr (Movies): http://{{ ansible_default_ipv4.address }}:{{ radarr_host_port }}
27{% endif %}
28{% if prowlarr_enabled %}
29Prowlarr (Indexers): http://{{ ansible_default_ipv4.address }}:{{ prowlarr_host_port }}
30{% endif %}
31{% if lazylibrarian_enabled %}
32LazyLibrarian (Books): http://{{ ansible_default_ipv4.address }}:{{ lazylibrarian_host_port }}
33{% endif %}
34{% if lidarr_enabled %}
35Lidarr (Music): http://{{ ansible_default_ipv4.address }}:{{ lidarr_host_port }}
36{% endif %}
37{% if bazarr_enabled %}
38Bazarr (Subtitles): http://{{ ansible_default_ipv4.address }}:{{ bazarr_host_port }}
39{% endif %}
40{% if jellyseer_enabled %}
41Jellyseer (Requests): http://{{ ansible_default_ipv4.address }}:{{ jellyseer_host_port }}
42{% endif %}
43{% if flaresolverr_enabled %}
44Flaresolverr (Cloudflare): http://{{ ansible_default_ipv4.address }}:{{ flaresolverr_host_port }}
45{% endif %}
46{% if qbittorrent_enabled %}
47qBittorrent: http://{{ ansible_default_ipv4.address }}:{{ qbittorrent_host_port }}
48{% endif %}
49{% if cleanuparr_enabled %}
50Cleanuparr: http://{{ ansible_default_ipv4.address }}:{{ cleanuparr_host_port }}
51{% endif %}
52
53VPN Status: {{ 'Enabled (Gluetun)' if gluetun_enabled else 'Disabled' }}
54Downloads: {{ arr_downloads_dir }}
55Config: {{ arr_config_dir }}
56
57{% endif %}
58{% if calibre_enabled %}
59EBOOK MANAGEMENT
60{% if calibre_server_enabled %}
61Calibre Server: http://{{ ansible_default_ipv4.address }}:{{ calibre_desktop_gui_host_port }}
62{% endif %}
63{% if calibre_web_enabled %}
64Calibre-Web: http://{{ ansible_default_ipv4.address }}:{{ calibre_web_host_port }}
65{% endif %}
66Library: {{ calibre_library_dir }}
67Config: {{ calibre_config_dir }}
68
69{% endif %}
70{% if navidrome_enabled %}
71NAVIDROME
72URL: http://{{ ansible_default_ipv4.address }}:{{ navidrome_host_port }}
73Config: {{ navidrome_config_dir }}
74Music: {{ navidrome_music_dir }}
75
76{% endif %}
77{% if nextcloud_enabled %}
78NEXTCLOUD
79URL: http://{{ ansible_default_ipv4.address }}:{{ nextcloud_host_port }}
80Config: {{ nextcloud_config_dir }}
81Data: {{ nextcloud_data_dir }}
82
83{% endif %}
84{% if restic_backup_server_enabled %}
85BACKUP SERVER
86Restic Server: http://{{ ansible_default_ipv4.address }}:{{ restic_backup_host_port }}
87Repository Path: {{ restic_backup_data_dir }}
88Config: {{ restic_backup_config_dir }}
89
90{% endif %}
91=========================================================
92DIRECTORY STRUCTURE
93=========================================================
94
95Storage Base: {{ storage_base_path }}
96|- media/
97| |- movies/ # Movie files for Radarr/Jellyfin
98| |- shows/ # TV show files for Sonarr/Jellyfin
99| |- books/ # Ebook library for LazyLibrarian/Calibre
100| |- music/ # Music library for Lidarr/Navidrome
101|- downloads/ # Download client destination
102|- backups/ # Restic backup repository data
103{% if nextcloud_enabled %}
104|- nextcloud/ # Nextcloud user data
105{% endif %}
106
107Docker Configs: {{ storage_docker_dir }}
108|- jellyfin/ # Jellyfin configuration
109|- media-automation/ # All Arr services + Gluetun VPN
110|- calibre/ # Calibre Server + Web configs
111|- navidrome/ # Navidrome configuration
112{% if nextcloud_enabled %}
113|- nextcloud/ # Nextcloud + MariaDB + Redis
114{% endif %}
115|- restic-server/ # Backup server configuration
116
117=========================================================
118MAINTENANCE COMMANDS
119=========================================================
120
121Service Logs:
122cd {{ jellyfin_data_dir }} && docker compose logs -f
123cd {{ arr_config_dir }} && docker compose logs -f
124cd {{ calibre_config_dir }} && docker compose logs -f
125cd {{ navidrome_config_dir }} && docker compose logs -f
126{% if nextcloud_enabled %}
127cd {{ nextcloud_config_dir }} && docker compose logs -f
128{% endif %}
129cd {{ restic_backup_config_dir }} && docker compose logs -f
130
131Resource Monitoring:
132docker stats
133df -h {{ storage_base_path }}
134cat /proc/mdstat
135
136=========================================================
137