/
/
/
This repo is destined for my server automations and setup.
1---
2# Storage Servers Group Variables
3# Applied to all servers in the storage_servers group
4
5# ==============================================================================
6# STORAGE DEFAULTS
7# ==============================================================================
8storage_enabled: true
9backup_enabled: true
10
11# ==============================================================================
12# RAID CONFIGURATION
13# ==============================================================================
14storage_raid_arrays:
15 - name: "md0"
16 device: "/dev/md0"
17 mount_point: "/mnt/rstorage"
18 filesystem: "ext4"
19
20# ==============================================================================
21# COMMON STORAGE CONFIGURATION
22# ==============================================================================
23# Standard storage paths
24storage_base_path: "/mnt/rstorage"
25storage_docker_dir: "/docker"
26
27# User/Group defaults (ansible:users for group sharing)
28storage_uid: 1000
29storage_gid: 100
30
31# ==============================================================================
32# DEFAULT SERVICE ENABLEMENT
33# ==============================================================================
34# Enable all services by default (disable in host_vars if not needed)
35jellyfin_enabled: true
36arr_stack_enabled: true
37arr_vpn_enabled: true
38calibre_enabled: true
39restic_backup_server_enabled: true
40
41# Individual Arr services
42sonarr_enabled: true
43radarr_enabled: true
44prowlarr_enabled: true
45readarr_enabled: true
46gluetun_enabled: "{{ arr_vpn_enabled }}"
47
48# ==============================================================================
49# PERFORMANCE DEFAULTS
50# ==============================================================================
51# Conservative defaults - override based on hardware capacity
52default_memory_limit: "2g"
53default_cpu_limit: "2"
54
55# Jellyfin gets more resources (media transcoding intensive)
56jellyfin_memory_limit: "4g"
57jellyfin_cpu_limit: "4"
58
59# Arr stack typically lightweight
60arr_memory_limit: "1g"
61arr_cpu_limit: "1"
62
63# ==============================================================================
64# NETWORK CONFIGURATION
65# ==============================================================================
66storage_docker_network: "storage-network"
67
68# Health check settings
69health_check_enabled: true
70health_check_interval: "30s"
71health_check_timeout: "10s"
72health_check_retries: 3
73
74# ==============================================================================
75# BACKUP CONFIGURATION
76# ==============================================================================
77# System-level backup settings
78backup_retention_days: 90
79backup_schedule: "0 2 * * *" # 2 AM daily
80backup_path: "{{ storage_base_path }}/system-backups"
81
82# Service configuration backup
83backup_jellyfin_config: true
84backup_arr_configs: true
85backup_calibre_library: true
86
87# ==============================================================================
88# VPN DEFAULTS
89# ==============================================================================
90# Default VPN settings (credentials must be in vault)
91vpn_server_countries: "Netherlands,Switzerland"
92vpn_server_regions: "Europe"
93
94# ==============================================================================
95# SECURITY SETTINGS
96# ==============================================================================
97# System optimization for storage servers
98system_swappiness: 1 # Minimize swap usage
99
100# ==============================================================================
101# PORT ASSIGNMENTS
102# ==============================================================================
103# Standard ports - change in host_vars if conflicts exist
104jellyfin_host_port: 8096
105
106sonarr_host_port: 8989
107radarr_host_port: 7878
108prowlarr_host_port: 9696
109lazylibrarian_host_port: 5299
110
111restic_backup_host_port: 8000
112
113# ==============================================================================
114# DIRECTORY STRUCTURE
115# ==============================================================================
116# These will be created automatically
117media_directories:
118 - "{{ storage_base_path }}/media"
119 - "{{ storage_base_path }}/media/movies"
120 - "{{ storage_base_path }}/media/shows"
121 - "{{ storage_base_path }}/media/books"
122 - "{{ storage_base_path }}/downloads"
123 - "{{ storage_base_path }}/backups"
124
125# ==============================================================================
126# USAGE NOTES
127# ==============================================================================
128# This file provides sensible defaults for all storage servers.
129#
130# To customize individual servers:
131# 1. Copy host_vars/storage.yml.example to host_vars/[hostname].yml
132# 2. Override any settings specific to that server
133# 3. Configure vault variables for VPN and authentication
134#
135# To deploy storage services:
136# ansible-playbook -i inventory/hosts storage.yml --limit storage_servers
137#
138# Or use the main playbook:
139# ansible-playbook -i inventory/hosts site.yml --limit storage_servers --tags "core,storage"
140