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