added
scripts/saltbox-defaults-linter.py
+ #!/usr/bin/env python3+ """+ Saltbox Role Defaults Linter+ Enforces Saltbox formatting rules for role defaults/main.yml files+ + Rules:+ 1. Operator Alignment: | and + operators must align with first character after "{{+ - Standard: All operators align with base position (first char after "{{ )+ - Exception: When 'else' is followed by content on a new line that continues,+ subsequent operators within that else branch align with content after 'else '+ - Context resets when if/else blocks close (marked by )) or )))+ + 2. If/Else Alignment: if and else keywords must align vertically within {{ }} brackets+ """+ + import re+ import sys+ from pathlib import Path+ from typing import List+ + + class LintError:+ """Represents a single linting error"""+ + def __init__(self, file: str, line: int, message: str):+ self.file = file+ self.line = line+ self.message = message+ + def to_github_annotation(self) -> str:+ """Format error as GitHub Actions annotation"""+ return f"::error file={self.file},line={self.line}::{self.message}"+ + def __str__(self) -> str:+ return f"{self.file}:{self.line} - {self.message}"+ + + class DefaultsLinter:+ """Lints a single defaults/main.yml file"""+ + def __init__(self, file_path: Path):+ self.file_path = file_path+ self.lines = file_path.read_text().splitlines()+ self.errors: List[LintError] = []+ + def check_operator_alignment(self):+ """+ Rule 1: Check | and + operators align with first character after '{{ '+ + Standard alignment - all operators at base position:+ sonarr_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='sonarr')+ | combine(lookup('role_var', '_docker_envs_custom', role='sonarr')) }}"+ ^ Aligns with 'l' in lookup (position after "{{ )+ + Multiple operators - all at same base position:+ wikijs_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='wikijs')+ + lookup('role_var', '_docker_networks_custom', role='wikijs') }}"+ ^ All + align with 'd' in docker_networks_common+ + Exception - else with continuing content creates new context:+ dozzle_role_docker_commands: "{{ lookup('role_var', '_docker_commands_agent', role='dozzle')+ + lookup('role_var', '_docker_commands_default', role='dozzle')+ if lookup('role_var', '_agent_mode', role='dozzle')+ else lookup('role_var', '_docker_commands_default', role='dozzle')+ + lookup('role_var', '_docker_commands_custom', role='dozzle') }}"+ ^ This + aligns with 'l' in lookup after 'else ', not with base+ + Inline if/else (no context change):+ traefik_role_docker_labels: "{{ docker_labels_saltbox+ | combine((lookup('role_var', '_docker_labels_http', role='traefik')+ if traefik_http+ else lookup('role_var', '_docker_labels_dns', role='traefik')))+ | combine(lookup('role_var', '_docker_labels_custom', role='traefik')) }}"+ ^ All | remain at base position - inline if/else doesn't change context+ """+ i = 0+ while i < len(self.lines):+ curr_line = self.lines[i]+ + # Match variable definitions starting multi-line Jinja expressions+ # Pattern: variable_name: "{{ <content>+ match = re.match(r'^([a-z_]+): "{{ (.+)', curr_line)+ + # Only process if:+ # 1. Line matches pattern+ # 2. Line doesn't end with }} (multi-line expression)+ if match and '}}' not in curr_line:+ var_name = match.group(1)+ + # This is the start of a multi-line expression+ # Track the expected alignment position for continuation lines+ expected_alignment = len(curr_line.split('"{{')[0] + '"{{ ')+ + # Now check all continuation lines until we hit }}+ j = i + 1+ # Track alignment context - changes when we encounter 'else' with content+ # and resets when if/else blocks close+ current_alignment = expected_alignment+ in_else_context = False+ + while j < len(self.lines):+ continuation_line = self.lines[j]+ + # Check if this line closes an if/else block (ends with )) or }))+ # This resets alignment context back to base+ if in_else_context and re.search(r'\)\)(?:\)|$)', continuation_line.rstrip()):+ current_alignment = expected_alignment+ in_else_context = False+ + # Check if this line starts with 'else' followed by content that continues+ # This creates a new alignment context for subsequent operators+ # Pattern: else followed by lookup/variable (not just closing like '])')+ # BUT: only if the else block doesn't close on the same line+ else_match = re.match(r'^(\s+)else (lookup|[a-z_]+)', continuation_line)+ if else_match:+ # Check if this line also closes the if/else block (contains )))+ # If so, don't set a persistent context+ closes_immediately = re.search(r'\)\)\)', continuation_line)+ + if not closes_immediately:+ # New alignment context: content after 'else '+ # Only persists if the line doesn't close the block+ current_alignment = len(else_match.group(1)) + len('else ')+ in_else_context = True+ + # Check if this line has an operator+ op_match = re.match(r'^(\s+)([|+]) ', continuation_line)+ + if op_match:+ actual_spaces = len(op_match.group(1))+ operator = op_match.group(2)+ + # Use current alignment context (changes after 'else', resets after closing parens)+ expected_spaces = current_alignment+ + if actual_spaces != expected_spaces:+ diff = actual_spaces - expected_spaces+ + self.errors.append(LintError(+ file=str(self.file_path),+ line=j + 1, # Convert to 1-indexed+ message=f"[operator-alignment] Variable '{var_name}': Operator '{operator}' at column {actual_spaces}, expected {expected_spaces} (off by {diff:+d})"+ ))+ + # Stop if we've reached the end of the Jinja block+ if '}}' in continuation_line:+ break+ + j += 1+ + # Skip ahead past the multi-line block we just processed+ i = j+ + i += 1+ + def check_ifelse_alignment(self):+ """+ Rule 2: Check if/else keywords align within same {{ }} brackets+ + Example:+ variable: "{{ value+ if condition+ else other_value }}"+ ^ if and else must align vertically+ """+ in_multiline_jinja = False+ jinja_lines = []+ jinja_start_line = 0+ + for i, line in enumerate(self.lines, 1):+ # Detect start of multi-line Jinja expression+ if '"{{' in line and '}}' not in line:+ in_multiline_jinja = True+ jinja_lines = [line]+ jinja_start_line = i+ + elif in_multiline_jinja:+ jinja_lines.append(line)+ + # Check if we've reached the end of the Jinja block+ if '}}' in line:+ # Find lines containing 'if' and 'else'+ if_lines = [l for l in jinja_lines if ' if ' in l or l.strip().startswith('if ')]+ else_lines = [l for l in jinja_lines if ' else ' in l or l.strip().startswith('else ')]+ + # Only check if both if and else exist in the same block+ if if_lines and else_lines:+ # Find indentation of 'if' and 'else' keywords+ if_indent = None+ else_indent = None+ + for l in jinja_lines:+ if ' if ' in l:+ # Calculate column position where 'if' appears+ if_indent = len(l) - len(l.lstrip())+ if ' else ' in l or l.strip().startswith('else '):+ else_indent = len(l) - len(l.lstrip())+ + # Check if if and else align+ if if_indent is not None and else_indent is not None:+ if if_indent != else_indent:+ diff = else_indent - if_indent+ self.errors.append(LintError(+ file=str(self.file_path),+ line=jinja_start_line,+ message=f"[ifelse-alignment] 'if' at column {if_indent} doesn't align with 'else' at column {else_indent} (off by {diff:+d})"+ ))+ + # Reset state+ in_multiline_jinja = False+ jinja_lines = []+ + def lint(self) -> List[LintError]:+ """Run all lint checks and return list of errors"""+ self.check_operator_alignment()+ self.check_ifelse_alignment()+ return self.errors+ + + def main():+ """Main entry point for the linter"""+ if len(sys.argv) < 2:+ print("Usage: python3 saltbox-defaults-linter.py <roles_directory>")+ print("\nExample:")+ print(" python3 saltbox-defaults-linter.py roles/")+ sys.exit(1)+ + roles_dir = Path(sys.argv[1])+ + if not roles_dir.exists():+ print(f"Error: Directory '{roles_dir}' does not exist")+ sys.exit(1)+ + if not roles_dir.is_dir():+ print(f"Error: '{roles_dir}' is not a directory")+ sys.exit(1)+ + all_errors = []+ files_checked = 0+ + # Find and lint all defaults/main.yml files+ for defaults_file in sorted(roles_dir.glob("*/defaults/main.yml")):+ linter = DefaultsLinter(defaults_file)+ errors = linter.lint()+ all_errors.extend(errors)+ files_checked += 1+ + # Output results+ if all_errors:+ print(f"❌ Found {len(all_errors)} formatting error(s) in {files_checked} file(s):\n")+ for error in all_errors:+ print(error.to_github_annotation())+ print(f"\nTotal: {len(all_errors)} error(s)")+ sys.exit(1)+ else:+ print(f"✅ All {files_checked} role defaults files pass formatting checks")+ sys.exit(0)+ + + if __name__ == "__main__":+ main()
removed
roles/alternatrr/defaults/main.yml
- ##########################################################################- # Title: Sandbox: alternatrr | Default Variables #- # Author(s): salty #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- ##########################################################################- # GNU General Public License v3.0 #- ##########################################################################- ---- ################################- # Basics- ################################- - alternatrr_instances: ["alternatrr"]- - ################################- # Settings- ################################- - alternatrr_sonarr_instance: "{{ sonarr_name }}"- - ################################- # Paths- ################################- - alternatrr_paths_folder: "{{ alternatrr_name }}"- alternatrr_paths_location: "{{ server_appdata_path }}/{{ alternatrr_paths_folder }}"- alternatrr_paths_folders_list:- - "{{ alternatrr_paths_location }}"- - "{{ alternatrr_paths_location }}/app"- - ################################- # Web- ################################- - alternatrr_web_subdomain: "{{ alternatrr_name }}"- alternatrr_web_domain: "{{ user.domain }}"- alternatrr_web_port: "80"- alternatrr_web_url: "{{ 'https://' + (lookup('vars', alternatrr_name + '_web_subdomain', default=alternatrr_web_subdomain) + '.' + lookup('vars', alternatrr_name + '_web_domain', default=alternatrr_web_domain)- if (lookup('vars', alternatrr_name + '_web_subdomain', default=alternatrr_web_subdomain) | length > 0)- else lookup('vars', alternatrr_name + '_web_domain', default=alternatrr_web_domain)) }}"- - ################################- # DNS- ################################- - alternatrr_dns_record: "{{ lookup('vars', alternatrr_name + '_web_subdomain', default=alternatrr_web_subdomain) }}"- alternatrr_dns_zone: "{{ lookup('vars', alternatrr_name + '_web_domain', default=alternatrr_web_domain) }}"- alternatrr_dns_proxy: "{{ dns.proxied }}"- - ################################- # Traefik- ################################- - alternatrr_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"- alternatrr_traefik_middleware_default: "{{ traefik_default_middleware }}"- alternatrr_traefik_middleware_custom: ""- alternatrr_traefik_certresolver: "{{ traefik_default_certresolver }}"- alternatrr_traefik_enabled: true- - ################################- # Docker- ################################- - # Container- alternatrr_docker_container: "{{ alternatrr_name }}"- - # Image- alternatrr_docker_image_pull: true- alternatrr_docker_image_repo: "theultimatecoder/alternatrr"- alternatrr_docker_image_tag: "latest"- alternatrr_docker_image: "{{ lookup('vars', alternatrr_name + '_docker_image_repo', default=alternatrr_docker_image_repo)- + ':' + lookup('vars', alternatrr_name + '_docker_image_tag', default=alternatrr_docker_image_tag) }}"- - # Ports- alternatrr_docker_ports_defaults: []- alternatrr_docker_ports_custom: []- alternatrr_docker_ports: "{{ lookup('vars', alternatrr_name + '_docker_ports_defaults', default=alternatrr_docker_ports_defaults)- + lookup('vars', alternatrr_name + '_docker_ports_custom', default=alternatrr_docker_ports_custom) }}"- - # Envs- alternatrr_docker_envs_default:- ConnectionStrings__DefaultConnection: Data Source=/opt/alternatrr/app/alternatrr.db- ConnectionStrings__sonarr: Data Source=/opt/sonarr/sonarr.db- Login__Username: "{{ user.name }}"- Login__Password: "{{ user.pass }}"- alternatrr_docker_envs_custom: {}- alternatrr_docker_envs: "{{ lookup('vars', alternatrr_name + '_docker_envs_default', default=alternatrr_docker_envs_default)- | combine(lookup('vars', alternatrr_name + '_docker_envs_custom', default=alternatrr_docker_envs_custom)) }}"- - # Commands- alternatrr_docker_commands_default: []- alternatrr_docker_commands_custom: []- alternatrr_docker_commands: "{{ lookup('vars', alternatrr_name + '_docker_commands_default', default=alternatrr_docker_commands_default)- + lookup('vars', alternatrr_name + '_docker_commands_custom', default=alternatrr_docker_commands_custom) }}"- - # Volumes- alternatrr_docker_volumes_default:- - "{{ alternatrr_paths_location }}/app:/opt/alternatrr/app"- - "{{ server_appdata_path + lookup('vars', alternatrr_name + '_sonarr_instance', default=alternatrr_sonarr_instance) }}:/opt/sonarr"- alternatrr_docker_volumes_custom: []- alternatrr_docker_volumes: "{{ lookup('vars', alternatrr_name + '_docker_volumes_default', default=alternatrr_docker_volumes_default)- + lookup('vars', alternatrr_name + '_docker_volumes_custom', default=alternatrr_docker_volumes_custom) }}"- - # Devices- alternatrr_docker_devices_default: []- alternatrr_docker_devices_custom: []- alternatrr_docker_devices: "{{ lookup('vars', alternatrr_name + '_docker_devices_default', default=alternatrr_docker_devices_default)- + lookup('vars', alternatrr_name + '_docker_devices_custom', default=alternatrr_docker_devices_custom) }}"- - # Hosts- alternatrr_docker_hosts_default: {}- alternatrr_docker_hosts_custom: {}- alternatrr_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', alternatrr_name + '_docker_hosts_default', default=alternatrr_docker_hosts_default))- | combine(lookup('vars', alternatrr_name + '_docker_hosts_custom', default=alternatrr_docker_hosts_custom)) }}"- - # Labels- alternatrr_docker_labels_default: {}- alternatrr_docker_labels_custom: {}- alternatrr_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', alternatrr_name + '_docker_labels_default', default=alternatrr_docker_labels_default))- | combine(lookup('vars', alternatrr_name + '_docker_labels_custom', default=alternatrr_docker_labels_custom)) }}"- - # Hostname- alternatrr_docker_hostname: "{{ alternatrr_name }}"- - # Network Mode- alternatrr_docker_network_mode_default: "{{ docker_networks_name_common }}"- alternatrr_docker_network_mode: "{{ lookup('vars', alternatrr_name + '_docker_network_mode_default', default=alternatrr_docker_network_mode_default) }}"- - # Networks- alternatrr_docker_networks_alias: "{{ alternatrr_name }}"- alternatrr_docker_networks_default: []- alternatrr_docker_networks_custom: []- alternatrr_docker_networks: "{{ docker_networks_common- + lookup('vars', alternatrr_name + '_docker_networks_default', default=alternatrr_docker_networks_default)- + lookup('vars', alternatrr_name + '_docker_networks_custom', default=alternatrr_docker_networks_custom) }}"- - # Capabilities- alternatrr_docker_capabilities_default: []- alternatrr_docker_capabilities_custom: []- alternatrr_docker_capabilities: "{{ lookup('vars', alternatrr_name + '_docker_capabilities_default', default=alternatrr_docker_capabilities_default)- + lookup('vars', alternatrr_name + '_docker_capabilities_custom', default=alternatrr_docker_capabilities_custom) }}"- - # Security Opts- alternatrr_docker_security_opts_default: []- alternatrr_docker_security_opts_custom: []- alternatrr_docker_security_opts: "{{ lookup('vars', alternatrr_name + '_docker_security_opts_default', default=alternatrr_docker_security_opts_default)- + lookup('vars', alternatrr_name + '_docker_security_opts_custom', default=alternatrr_docker_security_opts_custom) }}"- - # Restart Policy- alternatrr_docker_restart_policy: unless-stopped- - # State- alternatrr_docker_state: started
removed
roles/alternatrr/tasks/main.yml
- #########################################################################- # Title: Sandbox: alternatrr #- # Author(s): TheUltimateC0der, salty #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- #########################################################################- # GNU General Public License v3.0 #- #########################################################################- ---- - name: "Execute Alternatrr roles"- ansible.builtin.include_tasks: main2.yml- vars:- alternatrr_name: "{{ instance }}"- with_items: "{{ alternatrr_instances }}"- loop_control:- loop_var: instance
removed
roles/alternatrr/tasks/main2.yml
- #########################################################################- # Title: Sandbox: alternatrr #- # Author(s): TheUltimateC0der, salty #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- #########################################################################- # GNU General Public License v3.0 #- #########################################################################- ---- - name: Set Default Sonarr instance- ansible.builtin.set_fact:- sonarr_name: "{{ sonarr_instances[0] }}"- when: not sonarr_name is defined- - - name: Add DNS record- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml"- vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"- - - name: Remove existing Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"- - - name: Create directories- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"- - - name: Create Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"
removed
roles/aria2_ng/defaults/main.yml
- ##########################################################################- # Title: Sandbox: Aria2 + AriaNG webui | Default Variables #- # Author(s): JigSawFr #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- ##########################################################################- # GNU General Public License v3.0 #- ##########################################################################- ---- ################################- # Basics- ################################- - aria2_ng_name: aria- - ################################- # Paths- ################################- - aria2_ng_paths_folder: "{{ aria2_ng_name }}"- aria2_ng_paths_location: "{{ server_appdata_path }}/{{ aria2_ng_paths_folder }}"- aria2_ng_paths_downloads_location: "{{ downloads_root_path }}/{{ aria2_ng_paths_folder }}"- aria2_ng_paths_folders_list:- - "{{ aria2_ng_paths_location }}"- - "{{ aria2_ng_paths_downloads_location }}"- - ################################- # Web- ################################- - aria2_ng_web_subdomain: "{{ aria2_ng_name }}"- aria2_ng_web_domain: "{{ user.domain }}"- aria2_ng_web_port: "8080"- aria2_ng_web_url: "{{ 'https://' + (aria2_ng_web_subdomain + '.' + aria2_ng_web_domain- if (aria2_ng_web_subdomain | length > 0)- else aria2_ng_web_domain) }}"- - ################################- # DNS- ################################- - aria2_ng_dns_record: "{{ aria2_ng_web_subdomain }}"- aria2_ng_dns_zone: "{{ aria2_ng_web_domain }}"- aria2_ng_dns_proxy: "{{ dns.proxied }}"- - ################################- # Traefik- ################################- - aria2_ng_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"- aria2_ng_traefik_middleware_default: "{{ traefik_default_middleware }}"- aria2_ng_traefik_middleware_custom: ""- aria2_ng_traefik_certresolver: "{{ traefik_default_certresolver }}"- aria2_ng_traefik_enabled: true- # Insecure until we have a way to generate an app token- aria2_ng_traefik_api_enabled: false- aria2_ng_traefik_api_endpoint: "PathPrefix(`/jsonrpc`)"- - ################################- # Docker- ################################- - # Container- aria2_ng_docker_container: "{{ aria2_ng_name }}"- - # Image- aria2_ng_docker_image_pull: true- aria2_ng_docker_image_tag: "latest"- aria2_ng_docker_image: "hurlenko/aria2-ariang:{{ aria2_ng_docker_image_tag }}"- - # Ports- aria2_ng_docker_ports_defaults: []- aria2_ng_docker_ports_custom: []- aria2_ng_docker_ports: "{{ aria2_ng_docker_ports_defaults- + aria2_ng_docker_ports_custom }}"- - # Envs- aria2_ng_docker_envs_default:- TZ: "{{ tz }}"- PUID: "{{ uid }}"- PGID: "{{ gid }}"- # RPC_SECRET: "{{ aria2_ng_secret_key.stdout }}"- # EMBED_RPC_SECRET: "true"- ARIA2RPCPORT: "443"- aria2_ng_docker_envs_custom: {}- aria2_ng_docker_envs: "{{ aria2_ng_docker_envs_default- | combine(aria2_ng_docker_envs_custom) }}"- - # Commands- aria2_ng_docker_commands_default: []- aria2_ng_docker_commands_custom: []- aria2_ng_docker_commands: "{{ aria2_ng_docker_commands_default- + aria2_ng_docker_commands_custom }}"- - # Volumes- aria2_ng_docker_volumes_default:- - "{{ aria2_ng_paths_location }}:/aria2/conf"- - "{{ aria2_ng_paths_downloads_location }}:/aria2/data"- aria2_ng_docker_volumes_custom: []- aria2_ng_docker_volumes: "{{ aria2_ng_docker_volumes_default- + aria2_ng_docker_volumes_custom }}"- - # Devices- aria2_ng_docker_devices_default: []- aria2_ng_docker_devices_custom: []- aria2_ng_docker_devices: "{{ aria2_ng_docker_devices_default- + aria2_ng_docker_devices_custom }}"- - # Hosts- aria2_ng_docker_hosts_default: {}- aria2_ng_docker_hosts_custom: {}- aria2_ng_docker_hosts: "{{ docker_hosts_common- | combine(aria2_ng_docker_hosts_default)- | combine(aria2_ng_docker_hosts_custom) }}"- - # Labels- aria2_ng_docker_labels_default: {}- aria2_ng_docker_labels_custom: {}- aria2_ng_docker_labels: "{{ docker_labels_common- | combine(aria2_ng_docker_labels_default)- | combine(aria2_ng_docker_labels_custom) }}"- - # Hostname- aria2_ng_docker_hostname: "{{ aria2_ng_name }}"- - # Networks- aria2_ng_docker_networks_alias: "{{ aria2_ng_name }}"- aria2_ng_docker_networks_default: []- aria2_ng_docker_networks_custom: []- aria2_ng_docker_networks: "{{ docker_networks_common- + aria2_ng_docker_networks_default- + aria2_ng_docker_networks_custom }}"- - # Capabilities- aria2_ng_docker_capabilities_default: []- aria2_ng_docker_capabilities_custom: []- aria2_ng_docker_capabilities: "{{ aria2_ng_docker_capabilities_default- + aria2_ng_docker_capabilities_custom }}"- - # Security Opts- aria2_ng_docker_security_opts_default: []- aria2_ng_docker_security_opts_custom: []- aria2_ng_docker_security_opts: "{{ aria2_ng_docker_security_opts_default- + aria2_ng_docker_security_opts_custom }}"- - # Restart Policy- aria2_ng_docker_restart_policy: unless-stopped- - # State- aria2_ng_docker_state: started
removed
roles/aria2_ng/tasks/main.yml
- #########################################################################- # Title: Sandbox: Aria2 + AriaNG webui #- # Author(s): JigSawFr #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- #########################################################################- # GNU General Public License v3.0 #- #########################################################################- # Repository: https://github.com/hurlenko/aria2-ariang-docker- ---- - name: Add DNS record- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml"- vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"- - # - name: "Generate Secret Key for RPC"- # ansible.builtin.shell: "openssl rand -hex 20"- # register: aria2_ng_secret_key- - - name: Remove existing Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"- - - name: Create directories- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"- - - name: Create Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"- - - name: Print Tweaking Info- ansible.builtin.debug:- msg: "For custom docker envs, please visit: https://github.com/hurlenko/aria2-ariang-docker"
removed
roles/comicstreamer/defaults/main.yml
- #########################################################################- # Title: Sandbox: comicstreamer #- # Author(s): theotocopulitos, kowalski #- # URL: https://github.com/saltyorg/Sandbox #- # Docker Image(s): kalinon/comicstreamer #- # -- #- #########################################################################- # GNU General Public License v3.0 #- #########################################################################- ---- ################################- # Basics- ################################- - comicstreamer_name: comicstreamer- - ################################- # Paths- ################################- - comicstreamer_paths_folder: "{{ comicstreamer_name }}"- comicstreamer_paths_location: "{{ server_appdata_path }}/{{ comicstreamer_paths_folder }}"- comicstreamer_paths_folders_list:- - "{{ comicstreamer_paths_location }}"- - "/mnt/local/Media/Comics"- - ################################- # Web- ################################- - comicstreamer_web_subdomain: "{{ comicstreamer_name }}"- comicstreamer_web_domain: "{{ user.domain }}"- comicstreamer_web_port: "32500"- comicstreamer_web_url: "{{ 'https://' + (comicstreamer_web_subdomain + '.' + comicstreamer_web_domain- if (comicstreamer_web_subdomain | length > 0)- else comicstreamer_web_domain) }}"- - ################################- # DNS- ################################- - comicstreamer_dns_record: "{{ comicstreamer_web_subdomain }}"- comicstreamer_dns_zone: "{{ comicstreamer_web_domain }}"- comicstreamer_dns_proxy: "{{ dns.proxied }}"- - ################################- # Traefik- ################################- - comicstreamer_traefik_sso_middleware: ""- comicstreamer_traefik_middleware_default: "{{ traefik_default_middleware }}"- comicstreamer_traefik_middleware_custom: ""- comicstreamer_traefik_certresolver: "{{ traefik_default_certresolver }}"- comicstreamer_traefik_enabled: true- - ################################- # Docker- ################################- - # Container- comicstreamer_docker_container: "{{ comicstreamer_name }}"- - # Image- comicstreamer_docker_image_pull: true- comicstreamer_docker_image_tag: "latest"- comicstreamer_docker_image: "kalinon/comicstreamer:{{ comicstreamer_docker_image_tag }}"- - # Ports- comicstreamer_docker_ports_defaults: []- comicstreamer_docker_ports_custom: []- comicstreamer_docker_ports: "{{ comicstreamer_docker_ports_defaults- + comicstreamer_docker_ports_custom }}"- - # Envs- comicstreamer_docker_envs_default:- comicstreamer_docker_envs_custom: {}- comicstreamer_docker_envs: "{{ comicstreamer_docker_envs_default- | combine(comicstreamer_docker_envs_custom) }}"- - # Commands- comicstreamer_docker_commands_default: []- comicstreamer_docker_commands_custom: []- comicstreamer_docker_commands: "{{ comicstreamer_docker_commands_default- + comicstreamer_docker_commands_custom }}"- - # Volumes- comicstreamer_docker_volumes_default:- - "{{ comicstreamer_paths_location }}:/config"- - "/mnt/unionfs/Media/Comics:/comics"- comicstreamer_docker_volumes_custom: []- comicstreamer_docker_volumes: "{{ comicstreamer_docker_volumes_default- + comicstreamer_docker_volumes_custom }}"- - # Devices- comicstreamer_docker_devices_default: []- comicstreamer_docker_devices_custom: []- comicstreamer_docker_devices: "{{ comicstreamer_docker_devices_default- + comicstreamer_docker_devices_custom }}"- - # Hosts- comicstreamer_docker_hosts_default: {}- comicstreamer_docker_hosts_custom: {}- comicstreamer_docker_hosts: "{{ docker_hosts_common- | combine(comicstreamer_docker_hosts_default)- | combine(comicstreamer_docker_hosts_custom) }}"- - # Labels- comicstreamer_docker_labels_default: {}- comicstreamer_docker_labels_custom: {}- comicstreamer_docker_labels: "{{ docker_labels_common- | combine(comicstreamer_docker_labels_default)- | combine(comicstreamer_docker_labels_custom) }}"- - # Hostname- comicstreamer_docker_hostname: "{{ comicstreamer_name }}"- - # Networks- comicstreamer_docker_networks_alias: "{{ comicstreamer_name }}"- comicstreamer_docker_networks_default: []- comicstreamer_docker_networks_custom: []- comicstreamer_docker_networks: "{{ docker_networks_common- + comicstreamer_docker_networks_default- + comicstreamer_docker_networks_custom }}"- - # Capabilities- comicstreamer_docker_capabilities_default: []- comicstreamer_docker_capabilities_custom: []- comicstreamer_docker_capabilities: "{{ comicstreamer_docker_capabilities_default- + comicstreamer_docker_capabilities_custom }}"- - # Security Opts- comicstreamer_docker_security_opts_default: []- comicstreamer_docker_security_opts_custom: []- comicstreamer_docker_security_opts: "{{ comicstreamer_docker_security_opts_default- + comicstreamer_docker_security_opts_custom }}"- - # Restart Policy- comicstreamer_docker_restart_policy: unless-stopped- - # State- comicstreamer_docker_state: started
removed
roles/comicstreamer/tasks/main.yml
- #########################################################################- # Title: Sandbox: comicstreamer #- # Author(s): theotocopulitos, kowalski #- # URL: https://github.com/saltyorg/Sandbox #- # Docker Image(s): kalinon/comicstreamer #- # -- #- #########################################################################- # GNU General Public License v3.0 #- #########################################################################- ---- - name: Add DNS record- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml"- vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"- - - name: Remove existing Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"- - - name: Create directories- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"- - - name: Create Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"
removed
roles/docspell/defaults/main.yml
- ##########################################################################- # Title: Sandbox: docspell | Default Variables #- # Author(s): JigSawFr #- # URL: https://github.com/saltyorg/Sandbox #- # URL: https://github.com/eikek/docspell #- # -- #- ##########################################################################- # GNU General Public License v3.0 #- ##########################################################################- ---- ################################- # Basics- ################################- - docspell_name: docspell- - ################################- # Paths- ################################- - docspell_paths_folder: "{{ docspell_name }}"- docspell_paths_location: "{{ server_appdata_path }}/{{ docspell_paths_folder }}/server"- docspell_paths_folders_list:- - "{{ docspell_paths_location }}"- - ################################- # Web- ################################- - docspell_web_subdomain: "{{ docspell_name }}"- docspell_web_domain: "{{ user.domain }}"- docspell_web_port: "7880"- docspell_web_url: "{{ 'https://' + (docspell_web_subdomain + '.' + docspell_web_domain- if (docspell_web_subdomain | length > 0)- else docspell_web_domain) }}"- - ################################- # DNS- ################################- - docspell_dns_record: "{{ docspell_web_subdomain }}"- docspell_dns_zone: "{{ docspell_web_domain }}"- docspell_dns_proxy: "{{ dns.proxied }}"- - ################################- # Traefik- ################################- - docspell_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"- docspell_traefik_middleware_default: "{{ traefik_default_middleware }}"- docspell_traefik_middleware_custom: ""- docspell_traefik_certresolver: "{{ traefik_default_certresolver }}"- docspell_traefik_enabled: true- docspell_traefik_api_enabled: true- docspell_traefik_api_endpoint: "PathPrefix(`/api`)"- - ################################- # Docker- ################################- - # Container- docspell_docker_container: "{{ docspell_name }}"- - # Image- docspell_docker_image_pull: true- docspell_docker_image_tag: "latest"- docspell_docker_image: "docspell/restserver:{{ docspell_docker_image_tag }}"- - # Ports- docspell_docker_ports_defaults: []- docspell_docker_ports_custom: []- docspell_docker_ports: "{{ docspell_docker_ports_defaults- + docspell_docker_ports_custom }}"- - # Envs- docspell_docker_envs_default:- TZ: "{{ tz }}"- DOCSPELL_SERVER_INTERNAL__URL: "http://{{ docspell_name }}:{{ docspell_web_port }}"- DOCSPELL_SERVER_ADMIN__ENDPOINT_SECRET: "{{ docspell_admin_key.stdout }}"- # DOCSPELL_SERVER_AUTH_SERVER__SECRET: ""- DOCSPELL_SERVER_BACKEND_JDBC_PASSWORD: "{{ mariadb_docker_env_password }}"- DOCSPELL_SERVER_BACKEND_JDBC_URL: "jdbc:mariadb://{{ docspell_name }}-mariadb:3306/{{ docspell_name }}"- DOCSPELL_SERVER_BACKEND_JDBC_USER: "root"- DOCSPELL_SERVER_BIND_ADDRESS: "0.0.0.0"- DOCSPELL_SERVER_FULL__TEXT__SEARCH_ENABLED: "true"- DOCSPELL_SERVER_FULL__TEXT__SEARCH_SOLR_URL: "http://{{ docspell_name }}-solr:{{ solr_docker_env_port }}/solr/{{ docspell_name }}"- DOCSPELL_SERVER_INTEGRATION__ENDPOINT_ENABLED: "true"- DOCSPELL_SERVER_INTEGRATION__ENDPOINT_HTTP__HEADER_ENABLED: "true"- DOCSPELL_SERVER_INTEGRATION__ENDPOINT_HTTP__HEADER_HEADER__VALUE: "{{ docspell_integration_key.stdout }}"- DOCSPELL_SERVER_BACKEND_SIGNUP_MODE: "open"- DOCSPELL_SERVER_BACKEND_SIGNUP_NEW__INVITE__PASSWORD: "{{ docspell_register_key.stdout }}"- DOCSPELL_SERVER_BACKEND_ADDONS_ENABLED: "false"- docspell_docker_envs_custom: {}- docspell_docker_envs: "{{ docspell_docker_envs_default- | combine(docspell_docker_envs_custom) }}"- - # Commands- docspell_docker_commands_default: []- docspell_docker_commands_custom: []- docspell_docker_commands: "{{ docspell_docker_commands_default- + docspell_docker_commands_custom }}"- - # Volumes- docspell_docker_volumes_default: []- docspell_docker_volumes_custom: []- docspell_docker_volumes: "{{ docspell_docker_volumes_default- + docspell_docker_volumes_custom }}"- - # Devices- docspell_docker_devices_default: []- docspell_docker_devices_custom: []- docspell_docker_devices: "{{ docspell_docker_devices_default- + docspell_docker_devices_custom }}"- - # Hosts- docspell_docker_hosts_default: {}- docspell_docker_hosts_custom: {}- docspell_docker_hosts: "{{ docker_hosts_common- | combine(docspell_docker_hosts_default)- | combine(docspell_docker_hosts_custom) }}"- - # Labels- docspell_docker_labels_default: {}- docspell_docker_labels_custom: {}- docspell_docker_labels: "{{ docker_labels_common- | combine(docspell_docker_labels_default)- | combine(docspell_docker_labels_custom) }}"- - # Hostname- docspell_docker_hostname: "{{ docspell_name }}"- - # Networks- docspell_docker_networks_alias: "{{ docspell_name }}"- docspell_docker_networks_default: []- docspell_docker_networks_custom: []- docspell_docker_networks: "{{ docker_networks_common- + docspell_docker_networks_default- + docspell_docker_networks_custom }}"- - # Capabilities- docspell_docker_capabilities_default: []- docspell_docker_capabilities_custom: []- docspell_docker_capabilities: "{{ docspell_docker_capabilities_default- + docspell_docker_capabilities_custom }}"- - # Security Opts- docspell_docker_security_opts_default: []- docspell_docker_security_opts_custom: []- docspell_docker_security_opts: "{{ docspell_docker_security_opts_default- + docspell_docker_security_opts_custom }}"- - # Restart Policy- docspell_docker_restart_policy: unless-stopped- - # State- docspell_docker_state: started- - # Dependencies- docspell_depends_on: "{{ docspell_name }}-mariadb"- docspell_depends_on_delay: "0"- docspell_depends_on_healthchecks: "false"
removed
roles/docspell/tasks/main.yml
- #########################################################################- # Title: Sandbox: docspell #- # Author(s): JigSawFr #- # URL: https://github.com/saltyorg/Sandbox #- # URL: https://github.com/eikek/docspell #- # -- #- #########################################################################- # GNU General Public License v3.0 #- #########################################################################- ---- - name: Check if db folder exists- ansible.builtin.stat:- path: "{{ server_appdata_path }}/{{ docspell_paths_folder }}/mariadb"- register: stat_docspell_db_folder- - - name: Remove legacy MariaDB Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"- vars:- var_prefix: "{{ docspell_name }}_mariadb"- - - name: MariaDB Role- ansible.builtin.include_role:- name: mariadb- vars:- mariadb_instances: ["{{ docspell_name }}-mariadb"]- mariadb_paths_folder: "{{ docspell_name }}"- mariadb_paths_location: "{{ server_appdata_path }}/{{ docspell_paths_folder }}/mariadb"- - - name: Create docspell database- community.mysql.mysql_db:- name: "{{ docspell_name }}"- login_host: "{{ docspell_name }}-mariadb"- login_user: "root"- login_password: "{{ mariadb_docker_env_password }}"- state: present- - - name: Remove legacy Solr Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"- vars:- var_prefix: "{{ docspell_name }}_solr"- - - name: Solr Role- ansible.builtin.include_role:- name: solr- vars:- solr_name: "{{ docspell_name }}-solr"- solr_docker_env_core_name: "{{ docspell_name }}"- solr_paths_folder: "{{ docspell_name }}"- solr_paths_location: "{{ server_appdata_path }}/{{ solr_paths_folder }}/solr"- - - name: Add DNS record- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml"- vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"- - - name: "Generate Secret Key for registration"- ansible.builtin.shell: "openssl rand -hex 20"- register: docspell_register_key- - - name: "Generate Secret Key for integration endpoint"- ansible.builtin.shell: "openssl rand -hex 30"- register: docspell_integration_key- - - name: "Generate Secret Key for admin endpoint"- ansible.builtin.shell: "openssl rand -hex 30"- register: docspell_admin_key- - - name: Remove existing Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"- - - name: Create directories- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"- - - name: Create Docker container (docspell-server)- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"- - - name: Remove legacy docspell-worker Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"- vars:- var_prefix: "{{ docspell_name }}_joex"- - - name: Create Docker container (docspell-worker)- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"- vars:- docspell_docker_container: "{{ docspell_name }}-joex"- docspell_docker_image: "docspell/joex:latest"- docspell_web_port: "7878"- docspell_docker_envs:- TZ: "{{ tz }}"- DOCSPELL_JOEX_APP__ID: "joex"- DOCSPELL_JOEX_PERIODIC__SCHEDULER_NAME: "joex"- DOCSPELL_JOEX_SCHEDULER_NAME: "joex"- DOCSPELL_JOEX_BASE__URL: "http://{{ docspell_docker_container }}:{{ docspell_web_port }}"- DOCSPELL_JOEX_BIND_ADDRESS: "0.0.0.0"- DOCSPELL_JOEX_FULL__TEXT__SEARCH_ENABLED: "true"- DOCSPELL_JOEX_FULL__TEXT__SEARCH_SOLR_URL: "http://{{ docspell_name }}-solr:{{ solr_docker_env_port }}/solr/{{ docspell_name }}"- DOCSPELL_JOEX_JDBC_PASSWORD: "{{ mariadb_docker_env_password }}"- DOCSPELL_JOEX_JDBC_URL: "jdbc:mariadb://{{ docspell_name }}-mariadb:3306/{{ docspell_name }}"- DOCSPELL_JOEX_JDBC_USER: "root"- DOCSPELL_JOEX_ADDONS_EXECUTOR__CONFIG_RUNNER: "docker,trivial"- DOCSPELL_JOEX_CONVERT_HTML__CONVERTER: "weasyprint"- docspell_docker_labels: "{{ omit }}"- docspell_docker_volumes:- - /tmp:/tmp
removed
roles/rdtclient/defaults/main.yml
- ##########################################################################- # Title: Sandbox: rdtclient #- # Author(s): kxzaon, salty #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- ##########################################################################- # GNU General Public License v3.0 #- ##########################################################################- ---- ################################- # Basics- ################################- - rdtclient_name: rdtclient- - ################################- # Paths- ################################- - rdtclient_paths_folder: "{{ rdtclient_name }}"- rdtclient_paths_location: "{{ server_appdata_path }}/{{ rdtclient_paths_folder }}"- rdtclient_paths_config_location: "{{ rdtclient_paths_location }}/config"- rdtclient_paths_db_location: "{{ rdtclient_paths_location }}/db"- rdtclient_paths_downloads_location: "/mnt/unionfs/downloads/torrents/rdtclient"- rdtclient_paths_folders_list:- - "{{ rdtclient_paths_location }}"- - "{{ rdtclient_paths_config_location }}"- - "{{ rdtclient_paths_db_location }}"- - "{{ rdtclient_paths_downloads_location }}"- - ################################- # Web- ################################- - rdtclient_web_subdomain: "{{ rdtclient_name }}"- rdtclient_web_domain: "{{ user.domain }}"- rdtclient_web_port: "6500"- rdtclient_web_url: "{{ 'https://' + (rdtclient_web_subdomain + '.' + rdtclient_web_domain- if (rdtclient_web_subdomain | length > 0)- else rdtclient_web_domain) }}"- - ################################- # DNS- ################################- - rdtclient_dns_record: "{{ rdtclient_web_subdomain }}"- rdtclient_dns_zone: "{{ rdtclient_web_domain }}"- rdtclient_dns_proxy: "{{ dns.proxied }}"- - ################################- # Traefik- ################################- - rdtclient_traefik_sso_middleware: ""- rdtclient_traefik_middleware_default: "{{ traefik_default_middleware }}"- rdtclient_traefik_middleware_custom: ""- rdtclient_traefik_certresolver: "{{ traefik_default_certresolver }}"- rdtclient_traefik_enabled: true- rdtclient_traefik_api_enabled: false- rdtclient_traefik_api_endpoint: ""- - ################################- # Docker- ################################- - # Container- rdtclient_docker_container: "{{ rdtclient_name }}"- - # Image- rdtclient_docker_image_pull: true- rdtclient_docker_image_tag: "latest"- rdtclient_docker_image: "rogerfar/rdtclient:{{ rdtclient_docker_image_tag }}"- - # Ports- rdtclient_docker_ports_defaults: []- rdtclient_docker_ports_custom: []- rdtclient_docker_ports: "{{ rdtclient_docker_ports_defaults- + rdtclient_docker_ports_custom }}"- - # Envs- rdtclient_docker_envs_default:- PUID: "{{ uid }}"- PGID: "{{ gid }}"- TZ: "{{ tz }}"- rdtclient_docker_envs_custom: {}- rdtclient_docker_envs: "{{ rdtclient_docker_envs_default- | combine(rdtclient_docker_envs_custom) }}"- - # Commands- rdtclient_docker_commands_default: []- rdtclient_docker_commands_custom: []- rdtclient_docker_commands: "{{ rdtclient_docker_commands_default- + rdtclient_docker_commands_custom }}"- - # Volumes- rdtclient_docker_volumes_default:- - "{{ rdtclient_paths_location }}:/data"- - "{{ rdtclient_paths_config_location }}:/data/config"- - "{{ rdtclient_paths_db_location }}:/data/db"- - "{{ rdtclient_paths_downloads_location }}:/data/downloads"- rdtclient_docker_volumes_custom: []- rdtclient_docker_volumes: "{{ rdtclient_docker_volumes_default- + rdtclient_docker_volumes_custom }}"- - # Devices- rdtclient_docker_devices_default: []- rdtclient_docker_devices_custom: []- rdtclient_docker_devices: "{{ rdtclient_docker_devices_default- + rdtclient_docker_devices_custom }}"- - # Hosts- rdtclient_docker_hosts_default: {}- rdtclient_docker_hosts_custom: {}- rdtclient_docker_hosts: "{{ docker_hosts_common- | combine(rdtclient_docker_hosts_default)- | combine(rdtclient_docker_hosts_custom) }}"- - # Labels- rdtclient_docker_labels_default: {}- rdtclient_docker_labels_custom: {}- rdtclient_docker_labels: "{{ docker_labels_common- | combine(rdtclient_docker_labels_default)- | combine(rdtclient_docker_labels_custom) }}"- - # Hostname- rdtclient_docker_hostname: "{{ rdtclient_name }}"- - # Networks- rdtclient_docker_networks_alias: "{{ rdtclient_name }}"- rdtclient_docker_networks_default: []- rdtclient_docker_networks_custom: []- rdtclient_docker_networks: "{{ docker_networks_common- + rdtclient_docker_networks_default- + rdtclient_docker_networks_custom }}"- - # Capabilities- rdtclient_docker_capabilities_default: []- rdtclient_docker_capabilities_custom: []- rdtclient_docker_capabilities: "{{ rdtclient_docker_capabilities_default- + rdtclient_docker_capabilities_custom }}"- - # Security Opts- rdtclient_docker_security_opts_default: []- rdtclient_docker_security_opts_custom: []- rdtclient_docker_security_opts: "{{ rdtclient_docker_security_opts_default- + rdtclient_docker_security_opts_custom }}"- - # Restart Policy- rdtclient_docker_restart_policy: unless-stopped- - # State- rdtclient_docker_state: started
removed
roles/rdtclient/tasks/main.yml
- #########################################################################- # Title: Sandbox: rdtclient #- # Author(s): kxzaon, salty #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- #########################################################################- # GNU General Public License v3.0 #- #########################################################################- ---- - name: Add DNS record- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml"- vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"- - - name: Remove existing Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"- - - name: Create directories- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"- - - name: Create Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"
removed
roles/settings/files/settings-updater.py
- #!/srv/ansible/venv/bin/python3- """- - #########################################################################- # Title: Settings Updater Script #- # Author(s): l3uddz, salty #- # URL: https://github.com/saltyorg/Sandbox #- # Description: Adds variables to settings.yml. #- # -- #- #########################################################################- # GNU General Public License v3.0 #- #########################################################################- - """- import logging- import os- import sys- from logging.handlers import RotatingFileHandler- - from ruamel.yaml import YAML- from ruamel.yaml.comments import CommentedMap- - ############################################################- # INIT- ############################################################- - - log = None- - - def init_logging(playbook_path):- # log settings- log_format = '%(asctime)s - %(levelname)-10s - %(name)-35s - %(funcName)-35s - %(message)s'- log_file_path = os.path.join(playbook_path, "settings-updater.log")- log_level = logging.DEBUG- - # init root_logger- log_formatter = logging.Formatter(log_format)- root_logger = logging.getLogger()- root_logger.setLevel(log_level)- - # init console_logger- console_handler = logging.StreamHandler(sys.stdout)- console_handler.setFormatter(log_formatter)- root_logger.addHandler(console_handler)- - # init file_logger- file_handler = RotatingFileHandler(- log_file_path,- maxBytes=1024 * 1024 * 5,- backupCount=5- )- file_handler.setFormatter(log_formatter)- root_logger.addHandler(file_handler)- - # Set chosen logging level- root_logger.setLevel(log_level)- - # Get logger- return root_logger.getChild("settings-updater")- - - ############################################################- # UPDATER- ############################################################- - def load_settings(file_to_load):- yaml_instance = YAML()- yaml_instance.preserve_quotes = True- - settings = None- try:- with open(file_to_load, "r") as f:- settings = yaml_instance.load(f)- except Exception:- log.exception("Exception loading %s: ", file_to_load)- return settings- - - def dump_settings(settings, file_to_dump):- dumped = False- try:- yaml_instance = YAML()- yaml_instance.preserve_quotes = True- with open(file_to_dump, 'w') as fp:- yaml_instance.dump(settings, fp)- dumped = True- except Exception:- log.exception("Exception dumping upgraded %s: ", file_to_dump)- return dumped- - - def upgrade_settings(defaults, current, key=None):- upgraded = False- res = CommentedMap()- for k, v in defaults.items():- if k not in current:- res[k] = v- upgraded = True- log.info("Added field: \'%s%s\'.", k, '' if not key else ' to \'%s\'.' % key)- else:- res[k] = current[k]- - if hasattr(v, 'items'):- if k in current:- sub_upgrade, res[k] = upgrade_settings(v, current[k], k)- if sub_upgrade:- upgraded = True- else:- res[k] = v- upgraded = True- - return upgraded, res- - - ############################################################- # MAIN- ############################################################- - if __name__ == "__main__":- # get playbook dir- if not len(sys.argv) >= 4:- print("3 arguments must be supplied, playbook_dir default_settings current_settings")- sys.exit(1)- playbook_dir = sys.argv[1]- default_file = sys.argv[2]- current_file = sys.argv[3]- - # init logging- log = init_logging(playbook_dir)- - # load settings- default_settings = load_settings(os.path.join(playbook_dir, default_file))- if not default_settings:- log.error("Failed loading \'%s\'. Aborting...", default_file)- sys.exit(1)- - current_settings = load_settings(os.path.join(playbook_dir, current_file))- if not current_settings:- log.error("Failed loading \'%s\'. Aborting...", current_file)- sys.exit(1)- - # compare/upgrade settings- did_upgrade, upgraded_settings = upgrade_settings(default_settings, current_settings)- if not did_upgrade:- log.info("There were no settings changes to apply.")- sys.exit(0)- else:- if not dump_settings(upgraded_settings, os.path.join(playbook_dir, current_file)):- log.error("Failed dumping updated \'%s\'.", current_file)- sys.exit(1)- log.info("Successfully upgraded: \'%s\'.", current_file)- sys.exit(2)
removed
roles/settings/tasks/main.yml
- #########################################################################- # Title: Sandbox: Settings Role #- # Author(s): desimaniac, salty #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- #########################################################################- # GNU General Public License v3.0 #- #########################################################################- ---- - name: "Settings | Start"- ansible.builtin.include_tasks: "subtasks/start.yml"- - - name: "Settings | Main 2"- ansible.builtin.include_tasks: "main2.yml"- loop: "{{ config_files }}"- loop_control:- loop_var: outer_item- - - name: "Settings | Finish"- ansible.builtin.include_tasks: "subtasks/finish.yml"
removed
roles/settings/tasks/main2.yml
- #########################################################################- # Title: Sandbox: Settings | Main 2 #- # Author(s): desimaniac, salty #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- #########################################################################- # GNU General Public License v3.0 #- #########################################################################- ---- - name: "Settings | Copy"- ansible.builtin.include_tasks: "subtasks/copy.yml"- vars:- file: "{{ outer_item }}"- - - name: "Settings | Migrator"- ansible.builtin.include_tasks: "subtasks/migrator.yml"- vars:- file: "{{ outer_item }}"- - - name: "Settings | Updater"- ansible.builtin.include_tasks: "subtasks/updater.yml"- vars:- file: "{{ outer_item }}"
removed
roles/settings/tasks/subtasks/copy.yml
- #########################################################################- # Title: Sandbox: Settings | Copy #- # Author(s): desimaniac, salty #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- #########################################################################- # GNU General Public License v3.0 #- #########################################################################- ---- # Check for config files and import they are missing- - name: "Copy | Check if '{{ file }}' exists"- ansible.builtin.stat:- path: "{{ playbook_dir }}/{{ file }}"- register: file0- - - name: "Copy | Copy '{{ file }}.default' to '{{ file }}'"- ansible.builtin.copy:- src: "{{ playbook_dir }}/defaults/{{ file }}.default"- dest: "{{ playbook_dir }}/{{ file }}"- owner: "{{ sandbox_yml.stat.uid }}"- group: "{{ sandbox_yml.stat.gid }}"- mode: "0664"- when: not file0.stat.exists
removed
roles/settings/tasks/subtasks/finish.yml
- #########################################################################- # Title: Sandbox: Settings | Finish #- # Author(s): desimaniac, salty #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- #########################################################################- # GNU General Public License v3.0 #- #########################################################################- ---- - name: "Finish | Check 'settings-updater.py' for new settings"- ansible.builtin.debug: # noqa jinja[invalid]- msg:- - "The 'settings_updater.py' script updated the following- file{{ 's' if (files_updated_successfully | length > 1) else '' }}: '{{ files_updated_successfully | join(', ') | trim }}'"- - "Please check {{ 'these files' if (files_updated_successfully | length > 1) else 'this file' }} for the newly added settings"- - "You can also review the log file: 'settings-updater.log'"- when:- - files_updated_successfully | length > 0- - # Exit playbook When necessary- - name: Finish | Exit Tasks- when: exit_is_necessary- block:- - name: "Finish | Check 'settings-updater.py' run status for errors"- ansible.builtin.debug:- msg:- - "The 'settings_updater.py' script exited with an error when updating the following- file{{ 's' if (files_updated_unsuccessfully | length > 1) else '' }}: '{{ files_updated_unsuccessfully | join(', ') | trim }}'"- - "Please check 'settings-updater.log' for details"- when: files_updated_unsuccessfully | length > 0- - - name: "Finish | Exit so that user can check updated config files"- ansible.builtin.debug:- msg: "Sandbox Installer will now exit."- - - name: "Finish | Exit"- ansible.builtin.meta: end_play
removed
roles/settings/tasks/subtasks/migrator.yml
- #########################################################################- # Title: Sandbox: Settings | Migrator #- # Author(s): desimaniac, salty #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- #########################################################################- # GNU General Public License v3.0 #- #########################################################################- ---- - name: Migrator | Migrations for all config files- block:- - name: Migrator | All | Migration 01- ansible.builtin.include_tasks: "migrator/all/migration_01.yml"
removed
roles/settings/tasks/subtasks/migrator/all/migration_01.yml
- ########################################################################################- # Title: Sandbox: Settings | Migrator | All | Migration 01 #- # Author(s): desimaniac, salty #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- ########################################################################################- # GNU General Public License v3.0 #- ########################################################################################- ---- - name: Migrator | All | '{{ file }}' | Migration 01 | Add single space after colon (if needed)- ansible.builtin.replace:- path: "{{ playbook_dir }}/{{ file }}"- regexp: '(:)[ \t]*(.*)'- replace: '\1 \2'- owner: "{{ sandbox_yml.stat.uid }}"- group: "{{ sandbox_yml.stat.gid }}"- mode: "0664"- - - name: Migrator | All | '{{ file }}' | Migration 01 | Re-import Variables- ansible.builtin.include_vars: "{{ playbook_dir }}/{{ file }}"
removed
roles/settings/tasks/subtasks/start.yml
- #########################################################################- # Title: Sandbox: Settings | Start #- # Author(s): desimaniac, salty #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- #########################################################################- # GNU General Public License v3.0 #- #########################################################################- ---- - name: "Start | Install yyq"- ansible.builtin.include_role:- name: yyq- - - name: "Start | Get 'sandbox.yml' info"- ansible.builtin.stat:- path: "{{ playbook_dir }}/sandbox.yml"- register: sandbox_yml- - - name: "Start | Create list of config files"- ansible.builtin.set_fact:- config_files:- - "settings.yml"- - - name: Start | Initialize vars with empty lists- ansible.builtin.set_fact:- files_updated_successfully: []- files_updated_unsuccessfully: []- exit_is_necessary: false- - - name: "Start | Check if 'settings-updater.log' exists"- ansible.builtin.stat:- path: "{{ playbook_dir }}/settings-updater.log"- register: settings_updater_log- - - name: "Start | Reset ownership of 'settings-updater.log'"- ansible.builtin.file:- path: "{{ playbook_dir }}/settings-updater.log"- state: file- owner: "{{ sandbox_yml.stat.uid }}"- group: "{{ sandbox_yml.stat.gid }}"- mode: "0664"- when: (settings_updater_log.stat.exists)
removed
roles/settings/tasks/subtasks/updater.yml
- #########################################################################- # Title: Sandbox: Settings | Updater #- # Author(s): desimaniac, l3uddz, salty #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- #########################################################################- # GNU General Public License v3.0 #- #########################################################################- ---- - name: "Updater | Run 'settings-updater.py' for '{{ file }}'"- ansible.builtin.script: "'roles/settings/files/settings-updater.py' '{{ playbook_dir }}' 'defaults/{{ file }}.default' '{{ file }}'"- become: true- become_user: "{{ sandbox_yml.stat.pw_name }}"- register: settings_updater- ignore_errors: true- changed_when: false- failed_when: settings_updater.rc == 1- - - name: Updater | Build 'files_updated_successfully' list- ansible.builtin.set_fact:- files_updated_successfully: "{{ files_updated_successfully + [file] }}"- when: settings_updater.rc == 2- - - name: Updater | Build 'files_updated_unsuccessfully' list- ansible.builtin.set_fact:- files_updated_unsuccessfully: "{{ files_updated_unsuccessfully + [file] }}"- when: settings_updater.rc == 1- - - name: Updater | Set 'exit_is_necessary' variable- ansible.builtin.set_fact:- exit_is_necessary: true- when: (settings_updater.rc == 2)
removed
roles/solr/defaults/main.yml
- ##########################################################################- # Title: Sandbox: solr | Default Variables #- # Author(s): JigSawFr #- # URL: https://github.com/saltyorg/Sandbox #- # URL: https://github.com/apache/solr #- # -- #- ##########################################################################- # GNU General Public License v3.0 #- ##########################################################################- ---- ################################- # Basics- ################################- - solr_name: solr- - ################################- # Settings- ################################- - # solr_docker_env_password: "solr147"- solr_docker_env_port: "8983"- solr_docker_env_core_name: "{{ solr_name }}"- - ################################- # Paths- ################################- - solr_paths_folder: "{{ solr_name }}"- solr_paths_location: "{{ server_appdata_path }}/{{ solr_paths_folder }}"- solr_paths_folders_list:- - "{{ solr_paths_location }}"- - ################################- # Docker- ################################- - # Container- solr_docker_container: "{{ solr_name }}"- - # Image- solr_docker_image_pull: true- solr_docker_image_tag: "latest"- solr_docker_image: "solr:{{ solr_docker_image_tag }}"- - # Ports- solr_docker_ports_defaults: []- solr_docker_ports_custom: []- solr_docker_ports: "{{ solr_docker_ports_defaults- + solr_docker_ports_custom }}"- - # Envs- solr_docker_envs_default:- TZ: "{{ tz }}"- SOLR_HOST: "{{ solr_name }}"- # SOLR_UID: "{{ uid }}"- # SOLR_GID: "{{ gid }}"- solr_docker_envs_custom: {}- solr_docker_envs: "{{ solr_docker_envs_default- | combine(solr_docker_envs_custom) }}"- - # Commands- solr_docker_commands_default:- - "solr-precreate {{ solr_docker_env_core_name }}"- solr_docker_commands_custom: []- solr_docker_commands: "{{ solr_docker_commands_default- + solr_docker_commands_custom }}"- - # Volumes- solr_docker_volumes_default: []- # - "{{ solr_paths_location }}:/var/solr/data"- solr_docker_volumes_custom: []- solr_docker_volumes: "{{ solr_docker_volumes_default- + solr_docker_volumes_custom }}"- - # Devices- solr_docker_devices_default: []- solr_docker_devices_custom: []- solr_docker_devices: "{{ solr_docker_devices_default- + solr_docker_devices_custom }}"- - # Hosts- solr_docker_hosts_default: {}- solr_docker_hosts_custom: {}- solr_docker_hosts: "{{ docker_hosts_common- | combine(solr_docker_hosts_default)- | combine(solr_docker_hosts_custom) }}"- - # Labels- solr_docker_labels_default: {}- solr_docker_labels_custom: {}- solr_docker_labels: "{{ docker_labels_common- | combine(solr_docker_labels_default)- | combine(solr_docker_labels_custom) }}"- - # Hostname- solr_docker_hostname: "{{ solr_name }}"- - # Networks- solr_docker_networks_alias: "{{ solr_name }}"- solr_docker_networks_default: []- solr_docker_networks_custom: []- solr_docker_networks: "{{ docker_networks_common- + solr_docker_networks_default- + solr_docker_networks_custom }}"- - # Capabilities- solr_docker_capabilities_default: []- solr_docker_capabilities_custom: []- solr_docker_capabilities: "{{ solr_docker_capabilities_default- + solr_docker_capabilities_custom }}"- - # Security Opts- solr_docker_security_opts_default: []- solr_docker_security_opts_custom: []- solr_docker_security_opts: "{{ solr_docker_security_opts_default- + solr_docker_security_opts_custom }}"- - # Restart Policy- solr_docker_restart_policy: always- - # State- solr_docker_state: started- - # User- # solr_docker_user: "{{ uid }}:{{ gid }}"
removed
roles/solr/tasks/main.yml
- ##########################################################################- # Title: Sandbox: Gotenberg #- # Author(s): JigSawFr #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- ##########################################################################- # GNU General Public License v3.0 #- ##########################################################################- ---- - name: Remove existing Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"- - - name: Create directories- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"- - - name: Create Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"
removed
roles/teamspeak/defaults/main.yml
- ##########################################################################- # Title: Sandbox: Teamspeak | Default Variables #- # Author(s): salty #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- ##########################################################################- # GNU General Public License v3.0 #- ##########################################################################- ---- ################################- # Basics- ################################- - teamspeak_name: "teamspeak"- - ################################- # Paths- ################################- - teamspeak_paths_folder: "{{ teamspeak_name }}"- teamspeak_paths_location: "{{ server_appdata_path }}/{{ teamspeak_paths_folder }}"- teamspeak_paths_folders_list:- - "{{ teamspeak_paths_location }}"- - ################################- # Web- ################################- - teamspeak_web_subdomain: "{{ teamspeak_name }}"- teamspeak_web_domain: "{{ user.domain }}"- - ################################- # DNS- ################################- - teamspeak_dns_record: "{{ lookup('vars', teamspeak_name + '_web_subdomain', default=teamspeak_web_subdomain) }}"- teamspeak_dns_zone: "{{ lookup('vars', teamspeak_name + '_web_domain', default=teamspeak_web_domain) }}"- teamspeak_dns_proxy: false- - ################################- # Ports- ################################- teamspeak_docker_ports_9987: "{{ port_lookup_voice.meta.port- if (port_lookup_voice.meta.port is defined) and (port_lookup_voice.meta.port | trim | length > 0)- else '9987' }}"- - teamspeak_docker_ports_10011: "{{ port_lookup_webquery.meta.port- if (port_lookup_webquery.meta.port is defined) and (port_lookup_webquery.meta.port | trim | length > 0)- else '10011' }}"- - teamspeak_docker_ports_30033: "{{ port_lookup_file.meta.port- if (port_lookup_file.meta.port is defined) and (port_lookup_file.meta.port | trim | length > 0)- else '30033' }}"- - ################################- # Docker- ################################- - # Container- teamspeak_docker_container: "{{ teamspeak_name }}"- - # Image- teamspeak_docker_image_pull: true- teamspeak_docker_image_repo: "teamspeak"- teamspeak_docker_image_tag: "latest"- teamspeak_docker_image: "{{ lookup('vars', teamspeak_name + '_docker_image_repo', default=teamspeak_docker_image_repo)- + ':' + lookup('vars', teamspeak_name + '_docker_image_tag', default=teamspeak_docker_image_tag) }}"- - # Ports- teamspeak_docker_ports_defaults:- - "{{ teamspeak_docker_ports_9987 }}:9987/udp"- - "{{ teamspeak_docker_ports_10011 }}:10011"- - "{{ teamspeak_docker_ports_30033 }}:30033"- teamspeak_docker_ports_custom: []- teamspeak_docker_ports: "{{ lookup('vars', teamspeak_name + '_docker_ports_defaults', default=teamspeak_docker_ports_defaults)- + lookup('vars', teamspeak_name + '_docker_ports_custom', default=teamspeak_docker_ports_custom) }}"- - # Envs- teamspeak_docker_envs_default:- TS3SERVER_DB_PLUGIN: "ts3db_mariadb"- TS3SERVER_DB_SQLCREATEPATH: "create_mariadb"- TS3SERVER_DB_HOST: "mariadb"- TS3SERVER_DB_USER: "root"- TS3SERVER_DB_PASSWORD: "{{ mariadb_docker_env_password }}"- TS3SERVER_DB_NAME: "{{ teamspeak_name }}"- TS3SERVER_DB_WAITUNTILREADY: "30"- TS3SERVER_LICENSE: "accept"- teamspeak_docker_envs_custom: {}- teamspeak_docker_envs: "{{ lookup('vars', teamspeak_name + '_docker_envs_default', default=teamspeak_docker_envs_default)- | combine(lookup('vars', teamspeak_name + '_docker_envs_custom', default=teamspeak_docker_envs_custom)) }}"- - # Commands- teamspeak_docker_commands_default: []- teamspeak_docker_commands_custom: []- teamspeak_docker_commands: "{{ lookup('vars', teamspeak_name + '_docker_commands_default', default=teamspeak_docker_commands_default)- + lookup('vars', teamspeak_name + '_docker_commands_custom', default=teamspeak_docker_commands_custom) }}"- - # Volumes- teamspeak_docker_volumes_default:- - "{{ teamspeak_paths_location }}:/var/ts3server"- teamspeak_docker_volumes_custom: []- teamspeak_docker_volumes: "{{ lookup('vars', teamspeak_name + '_docker_volumes_default', default=teamspeak_docker_volumes_default)- + lookup('vars', teamspeak_name + '_docker_volumes_custom', default=teamspeak_docker_volumes_custom) }}"- - # Devices- teamspeak_docker_devices_default: []- teamspeak_docker_devices_custom: []- teamspeak_docker_devices: "{{ lookup('vars', teamspeak_name + '_docker_devices_default', default=teamspeak_docker_devices_default)- + lookup('vars', teamspeak_name + '_docker_devices_custom', default=teamspeak_docker_devices_custom) }}"- - # Hosts- teamspeak_docker_hosts_default: {}- teamspeak_docker_hosts_custom: {}- teamspeak_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', teamspeak_name + '_docker_hosts_default', default=teamspeak_docker_hosts_default))- | combine(lookup('vars', teamspeak_name + '_docker_hosts_custom', default=teamspeak_docker_hosts_custom)) }}"- - # Labels- teamspeak_docker_labels_default: {}- teamspeak_docker_labels_custom: {}- teamspeak_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', teamspeak_name + '_docker_labels_default', default=teamspeak_docker_labels_default))- | combine(lookup('vars', teamspeak_name + '_docker_labels_custom', default=teamspeak_docker_labels_custom)) }}"- - # Hostname- teamspeak_docker_hostname: "{{ teamspeak_name }}"- - # Networks- teamspeak_docker_networks_alias: "{{ teamspeak_name }}"- teamspeak_docker_networks_default: []- teamspeak_docker_networks_custom: []- teamspeak_docker_networks: "{{ docker_networks_common- + lookup('vars', teamspeak_name + '_docker_networks_default', default=teamspeak_docker_networks_default)- + lookup('vars', teamspeak_name + '_docker_networks_custom', default=teamspeak_docker_networks_custom) }}"- - # Capabilities- teamspeak_docker_capabilities_default: []- teamspeak_docker_capabilities_custom: []- teamspeak_docker_capabilities: "{{ lookup('vars', teamspeak_name + '_docker_capabilities_default', default=teamspeak_docker_capabilities_default)- + lookup('vars', teamspeak_name + '_docker_capabilities_custom', default=teamspeak_docker_capabilities_custom) }}"- - # Security Opts- teamspeak_docker_security_opts_default: []- teamspeak_docker_security_opts_custom: []- teamspeak_docker_security_opts: "{{ lookup('vars', teamspeak_name + '_docker_security_opts_default', default=teamspeak_docker_security_opts_default)- + lookup('vars', teamspeak_name + '_docker_security_opts_custom', default=teamspeak_docker_security_opts_custom) }}"- - # Restart Policy- teamspeak_docker_restart_policy: unless-stopped- - # State- teamspeak_docker_state: started- - # Dependencies- teamspeak_depends_on: "mariadb"- teamspeak_depends_on_delay: "0"- teamspeak_depends_on_healthchecks: "false"
removed
roles/teamspeak/tasks/main.yml
- #########################################################################- # Title: Sandbox: Teamspeak #- # Author(s): salty #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- #########################################################################- # GNU General Public License v3.0 #- #########################################################################- ---- - name: Remove existing Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"- - - name: MariaDB Role- ansible.builtin.include_role:- name: mariadb- - - name: MariaDB | Create {{ teamspeak_name }} database- community.mysql.mysql_db:- name: "{{ teamspeak_name }}"- login_host: "mariadb"- login_user: "root"- login_password: "{{ mariadb_docker_env_password }}"- state: present- - - name: Get next available port within the range of '9987-9997' # noqa fqcn[action]- find_open_port:- low_bound: 9987- high_bound: 9997- protocol: udp- register: port_lookup_voice- ignore_errors: true- - - name: Get next available port within the range of '10011-10021' # noqa fqcn[action]- find_open_port:- low_bound: 10011- high_bound: 10021- protocol: tcp- register: port_lookup_webquery- ignore_errors: true- - - name: Get next available port within the range of '30033-30043' # noqa fqcn[action]- find_open_port:- low_bound: 30033- high_bound: 30043- protocol: tcp- register: port_lookup_file- ignore_errors: true- - - name: Add DNS record- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml"- vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"- - - name: Add SRV record- community.general.cloudflare_dns:- account_api_key: "{{ cloudflare.api }}"- account_email: "{{ cloudflare.email }}"- port: "{{ teamspeak_docker_ports_9987 }}"- priority: 10- proto: udp- proxied: false- record: "{{ _dns_tasker_record }}"- service: "ts3"- solo: true- state: present- type: SRV- value: "{{ _dns_tasker_record }}.{{ _dns_tasker_zone }}"- weight: 20- zone: "{{ _dns_tasker_zone }}"- when: cloudflare_is_enabled- - - name: Create directories- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"- - - name: Create Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"- - - name: Port Information- ansible.builtin.debug:- msg:- - "Voice port is: {{ teamspeak_docker_ports_9987 }}"- - "Web Query port is: {{ teamspeak_docker_ports_10011 }}"- - "File port is: {{ teamspeak_docker_ports_30033 }}"
removed
roles/watchtower/defaults/main.yml
- ##########################################################################- # Title: Sandbox: Watchtower Role | Default Variables #- # Author(s): l3uddz, salty, owine #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- ##########################################################################- # GNU General Public License v3.0 #- ##########################################################################- ---- ################################- # Basics- ################################- - watchtower_instances: ["watchtower"]- - ################################- # Settings- ################################- - watchtower_metrics_enable: false- watchtower_metrics_external: false- watchtower_poll_interval: "43200"- - ################################- # Paths- ################################- - watchtower_paths_folder: "{{ watchtower_name }}"- watchtower_paths_location: "{{ server_appdata_path }}/{{ watchtower_paths_folder }}"- watchtower_paths_folders_list:- - "{{ watchtower_paths_location }}"- - ################################- # Web- ################################- - watchtower_web_subdomain: "{{ watchtower_name }}"- watchtower_web_domain: "{{ user.domain }}"- watchtower_web_port: "8080"- watchtower_host: "{{ lookup('vars', watchtower_name + '_web_subdomain', default=watchtower_web_subdomain)- + '.' + lookup('vars', watchtower_name + '_web_domain', default=watchtower_web_domain) }}"- - ################################- # DNS- ################################- - watchtower_dns_record: "{{ lookup('vars', watchtower_name + '_web_subdomain', default=watchtower_web_subdomain) }}"- watchtower_dns_zone: "{{ lookup('vars', watchtower_name + '_web_domain', default=watchtower_web_domain) }}"- watchtower_dns_proxy: "{{ dns.proxied }}"- - ################################- # Traefik- ################################- - watchtower_traefik_sso_middleware: ""- watchtower_traefik_middleware_default: "{{ traefik_default_middleware }}"- watchtower_traefik_middleware_custom: ""- watchtower_traefik_certresolver: "{{ traefik_default_certresolver }}"- watchtower_traefik_enabled: "{{ true if (watchtower_metrics_enable and watchtower_metrics_externa) else false }}"- watchtower_traefik_api_enabled: false- watchtower_traefik_api_endpoint: ""- - ################################- # Docker- ################################- - # Container- watchtower_docker_container: "{{ watchtower_name }}"- - # Image- watchtower_docker_image_pull: true- watchtower_docker_image_repo: "containrrr/watchtower"- watchtower_docker_image_tag: "latest"- watchtower_docker_image: "{{ lookup('vars', watchtower_name + '_docker_image_repo', default=watchtower_docker_image_repo)- + ':' + lookup('vars', watchtower_name + '_docker_image_tag', default=watchtower_docker_image_tag) }}"- - # Envs- watchtower_docker_envs_default:- TZ: "{{ tz }}"- WATCHTOWER_CLEANUP: "true"- WATCHTOWER_POLL_INTERVAL: "{{ watchtower_poll_interval }}"- WATCHTOWER_HTTP_API_METRICS: "{{ 'true' if watchtower_metrics_enable else omit }}"- watchtower_docker_envs_custom: {}- watchtower_docker_envs: "{{ lookup('vars', watchtower_name + '_docker_envs_default', default=watchtower_docker_envs_default)- | combine(lookup('vars', watchtower_name + '_docker_envs_custom', default=watchtower_docker_envs_custom)) }}"- watchtower_docker_env_file: "{{ watchtower_paths_location + '/watchtower.env' if watchtower_env.stat.exists else omit }}"- - # Commands- watchtower_docker_commands_default: []- watchtower_docker_commands_custom: []- watchtower_docker_commands: "{{ lookup('vars', watchtower_name + '_docker_commands_default', default=watchtower_docker_commands_default)- + lookup('vars', watchtower_name + '_docker_commands_custom', default=watchtower_docker_commands_custom) }}"- - - # Volumes- watchtower_docker_volumes_default:- - "/var/run/docker.sock:/var/run/docker.sock"- watchtower_docker_volumes_custom: []- watchtower_docker_volumes: "{{ lookup('vars', watchtower_name + '_docker_volumes_default', default=watchtower_docker_volumes_default)- + lookup('vars', watchtower_name + '_docker_volumes_custom', default=watchtower_docker_volumes_custom) }}"- - # Devices- watchtower_docker_devices_default: []- watchtower_docker_devices_custom: []- watchtower_docker_devices: "{{ lookup('vars', watchtower_name + '_docker_devices_default', default=watchtower_docker_devices_default)- + lookup('vars', watchtower_name + '_docker_devices_custom', default=watchtower_docker_devices_custom) }}"- - # Hosts- watchtower_docker_hosts_default: {}- watchtower_docker_hosts_custom: {}- watchtower_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', watchtower_name + '_docker_hosts_default', default=watchtower_docker_hosts_default))- | combine(lookup('vars', watchtower_name + '_docker_hosts_custom', default=watchtower_docker_hosts_custom)) }}"- - # Labels- watchtower_docker_labels_default: {}- watchtower_docker_labels_custom: {}- watchtower_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', watchtower_name + '_docker_labels_default', default=watchtower_docker_labels_default))- | combine(lookup('vars', watchtower_name + '_docker_labels_custom', default=watchtower_docker_labels_custom)) }}"- - # Hostname- watchtower_docker_hostname: "{{ watchtower_name }}"- - # Network Mode- watchtower_docker_network_mode_default: "{{ docker_networks_name_common }}"- watchtower_docker_network_mode: "{{ lookup('vars', watchtower_name + '_docker_network_mode_default', default=watchtower_docker_network_mode_default) }}"- - # Networks- watchtower_docker_networks_alias: "{{ watchtower_name }}"- watchtower_docker_networks_default: []- watchtower_docker_networks_custom: []- watchtower_docker_networks: "{{ docker_networks_common- + lookup('vars', watchtower_name + '_docker_networks_default', default=watchtower_docker_networks_default)- + lookup('vars', watchtower_name + '_docker_networks_custom', default=watchtower_docker_networks_custom) }}"- - # Capabilities- watchtower_docker_capabilities_default: []- watchtower_docker_capabilities_custom: []- watchtower_docker_capabilities: "{{ lookup('vars', watchtower_name + '_docker_capabilities_default', default=watchtower_docker_capabilities_default)- + lookup('vars', watchtower_name + '_docker_capabilities_custom', default=watchtower_docker_capabilities_custom) }}"- - # Security Opts- watchtower_docker_security_opts_default: []- watchtower_docker_security_opts_custom: []- watchtower_docker_security_opts: "{{ lookup('vars', watchtower_name + '_docker_security_opts_default', default=watchtower_docker_security_opts_default)- + lookup('vars', watchtower_name + '_docker_security_opts_custom', default=watchtower_docker_security_opts_custom) }}"- - # Restart Policy- watchtower_docker_restart_policy: unless-stopped- - # State- watchtower_docker_state: started
removed
roles/watchtower/tasks/main.yml
- #########################################################################- # Title: Sandbox: Watchower Role #- # Author(s): l3uddz, salty, owine #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- #########################################################################- # GNU General Public License v3.0 #- #########################################################################- ---- - name: "Execute Watchtower roles"- ansible.builtin.include_tasks: main2.yml- vars:- watchtower_name: "{{ instance }}"- with_items: "{{ watchtower_instances }}"- loop_control:- loop_var: instance
removed
roles/watchtower/tasks/main2.yml
- #########################################################################- # Title: Sandbox: Watchower Role #- # Author(s): l3uddz, salty, owine #- # URL: https://github.com/saltyorg/Sandbox #- # -- #- #########################################################################- # GNU General Public License v3.0 #- #########################################################################- ---- - name: Add DNS record- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml"- vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"- - - name: Remove existing Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"- - - name: Create directories- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"- - - name: "Check if watchtower.env file exists"- ansible.builtin.stat:- path: "{{ watchtower_paths_location }}/watchtower.env"- register: watchtower_env- - - name: Create Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"
removed
scripts/salty-linter.py
- import os- import sys- - def lint_ansible_defaults(content, file_path):- errors = []- lines = content.split('\n')- - multi_line_jinja_start = None- within_multi_line_jinja = False- - for line_no, line in enumerate(lines, start=1):- stripped_line = line.strip()- - if stripped_line == '---':- continue- - if '{{' in stripped_line and not within_multi_line_jinja:- multi_line_jinja_start = line.find('{{')- within_multi_line_jinja = '}}' not in stripped_line- - elif within_multi_line_jinja:- if 'if' in stripped_line or 'else' in stripped_line:- if line.find('if') < multi_line_jinja_start and line.find('else') < multi_line_jinja_start:- message = f"'if/else' within Jinja expression should align with the start."- errors.append((line_no, message))- - if '}}' in stripped_line:- within_multi_line_jinja = False- - if '}}' in stripped_line and within_multi_line_jinja:- within_multi_line_jinja = False- - for error in errors:- line_no, message = error- print(f"::warning file={file_path},line={line_no},endLine={line_no},title=Salty Lint Error::{message}")- - return len(errors) > 0- - def crawl_and_lint_ansible_roles(roles_dir):- errors_found = False- - if not os.path.exists(roles_dir):- print("Roles directory does not exist.")- return- - for role_name in os.listdir(roles_dir):- defaults_main_path = os.path.join(roles_dir, role_name, "defaults", "main.yml")- if os.path.isfile(defaults_main_path):- with open(defaults_main_path, 'r') as file:- content = file.read()- if lint_ansible_defaults(content, defaults_main_path):- errors_found = True- - sys.exit(1 if errors_found else 0)- - if len(sys.argv) < 2:- print("Usage: python script.py /path/to/your/ansible/roles")- sys.exit(1)- - roles_directory_path = sys.argv[1]- crawl_and_lint_ansible_roles(roles_directory_path)
modified
.ansible-lint
@@ -5,27 +5,24 @@ - bin/ - defaults/ -offline: False+offline: false mock_roles: - pre_tasks - user_check skip_list:- - braces- - git-latest- - no-changed-when- - ignore-errors- - risky-shell-pipe- - package-latest- - no-handler - command-instead-of-module - command-instead-of-shell- - deprecated-command-syntax- - yaml[line-length]- - yaml[truthy]- - schema[tasks]+ - ignore-errors+ - latest[git] - name[casing] - name[template]+ - no-changed-when+ - no-handler+ - package-latest+ - risky-shell-pipe+ - schema[playbook]+ - schema[tasks] - var-naming[no-role-prefix]- - schema[playbook]+ - yaml[line-length]
modified
.github/renovate.json
@@ -13,7 +13,7 @@ }, "baseBranches": [ "$default",- "role-refactor"+ "role-factor" ], "labels": [ "dependencies"
modified
.github/workflows/contributors.yml
@@ -7,7 +7,7 @@ add-contributors: runs-on: ubuntu-latest steps:- - uses: actions/checkout@v5+ - uses: actions/checkout@v6 - uses: BobAnkh/add-contributors@master with:
modified
.github/workflows/notify.yml
@@ -14,7 +14,7 @@ runs-on: ubuntu-24.04 if: github.event.repository.fork == false && (github.event.workflow_run.conclusion == 'success' || (github.event.workflow_run.conclusion == 'failure' && github.event.workflow_run.run_attempt >= 3) || github.event.workflow_run.conclusion == 'cancelled') steps:- - uses: actions/checkout@v5+ - uses: actions/checkout@v6 - name: Send notification env:
modified
.github/workflows/retry.yml
@@ -12,7 +12,7 @@ jobs: rerun:- runs-on: ubuntu-latest+ runs-on: ubuntu-24.04 if: ${{ github.event.workflow_run.conclusion == 'failure' }} steps: - name: Check attempt count@@ -30,8 +30,30 @@ echo "attempt_allowed=false" >> $GITHUB_OUTPUT fi + - name: Check for lint failures+ id: check_lint+ if: steps.check_attempts.outputs.attempt_allowed == 'true'+ env:+ GH_TOKEN: ${{ github.token }}+ GH_REPO: ${{ github.repository }}+ run: |+ failed_jobs=$(gh run view ${{ github.event.workflow_run.id }} --json jobs -q '.jobs[] | select(.conclusion == "failure") | .name')++ if echo "$failed_jobs" | grep -qE '^(ansible-lint|defaults-lint)$'; then+ echo "Lint job failed - skipping retry"+ echo "skip_retry=true" >> $GITHUB_OUTPUT+ else+ echo "No lint failures detected"+ echo "skip_retry=false" >> $GITHUB_OUTPUT+ fi++ - name: Sleep for 60 seconds+ if: steps.check_attempts.outputs.attempt_allowed == 'true' && steps.check_lint.outputs.skip_retry != 'true'+ run: sleep 60s+ shell: bash+ - name: rerun ${{ github.event.workflow_run.id }}- if: steps.check_attempts.outputs.attempt_allowed == 'true'+ if: steps.check_attempts.outputs.attempt_allowed == 'true' && steps.check_lint.outputs.skip_retry != 'true' env: GH_REPO: ${{ github.repository }} GH_TOKEN: ${{ github.token }}
modified
.github/workflows/sandbox-os.yml
@@ -8,15 +8,16 @@ if: github.event_name == 'pull_request' || !(github.event_name == 'push' && github.actor == 'renovate[bot]') runs-on: ubuntu-24.04 steps:- - uses: actions/checkout@v5+ - uses: actions/checkout@v6 with: path: sandbox - name: Checkout Saltbox repository- uses: actions/checkout@v5+ uses: actions/checkout@v6 with: repository: saltyorg/Saltbox path: saltbox+ ref: role-refactor # Remove branch once we move to master - name: Create Directories run: sudo mkdir -p /srv/git@@ -29,7 +30,7 @@ - uses: actions/setup-python@v6 with:- python-version: '3.13'+ python-version: '3.14' cache: 'pip' cache-dependency-path: 'saltbox/requirements/requirements-saltbox.txt' @@ -40,14 +41,24 @@ working-directory: ${{ github.workspace }}/sandbox run: ansible-lint - - name: Run salty linter- run: python3 ./sandbox/scripts/salty-linter.py ./roles+ defaults-lint:+ if: github.event_name == 'pull_request' || !(github.event_name == 'push' && github.actor == 'renovate[bot]')+ runs-on: ubuntu-24.04+ steps:+ - uses: actions/checkout@v6++ - uses: actions/setup-python@v6+ with:+ python-version: '3.14'++ - name: Run Defaults Linter+ run: python3 scripts/saltbox-defaults-linter.py roles/ check-entries: if: github.event_name == 'pull_request' || !(github.event_name == 'push' && github.actor == 'renovate[bot]') runs-on: ubuntu-24.04 steps:- - uses: actions/checkout@v5+ - uses: actions/checkout@v6 - name: Check Missing Entries run: ./scripts/check_missing_entries.sh@@ -58,56 +69,88 @@ outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps:- - uses: actions/checkout@v5+ - uses: actions/checkout@v6 - id: set-matrix run: | ROLES=$(awk '/# Apps Start/{flag=1;next}/# Apps End/{flag=0}flag' sandbox.yml | awk '!/#/' | awk -F'[][]' '{print $2}' | tr '\n' ',' | sed 's/,*$//' | awk -F',' '{ for( i=1; i<=NF; i++ ) print $i }' | awk '{ gsub(/ /,""); print }'| sort -u | awk -vORS=, '{ print $1 }' | sed 's/,$/\n/')- echo "matrix={\"roles\":[$ROLES],\"os\":[\"20.04\",\"22.04\",\"24.04\"]}" >> $GITHUB_OUTPUT+ echo "matrix={\"roles\":[$ROLES],\"os\":[\"22.04\",\"24.04\"]}" >> $GITHUB_OUTPUT install: name: '${{ matrix.roles }}-${{ matrix.os }}' runs-on: ubuntu-${{ matrix.os }}- needs: [ansible-lint, find-roles]+ needs: [ansible-lint, defaults-lint, find-roles] strategy: matrix: ${{ fromJson(needs.find-roles.outputs.matrix) }} fail-fast: false steps:- - uses: actions/checkout@v5+ - uses: actions/checkout@v6++ - name: Install sb binary+ uses: jaxxstorm/action-install-gh-release@v2.1.0+ with:+ repo: saltyorg/sb-go+ tag: latest+ extension-matching: disable+ platform: linux+ arch: amd64+ rename-to: sb+ chmod: "0755"++ - name: Check sb version+ run: |+ sudo mv /opt/hostedtoolcache/saltyorg/sb-go/latest/linux-amd64/sb /usr/local/bin/sb+ /usr/local/bin/sb version - name: Install Dependencies- run: curl https://raw.githubusercontent.com/saltyorg/sb/master/sb_install.sh --output sb_install.sh && sudo bash sb_install.sh -v && ansible --version+ run: /usr/local/bin/sb setup -v -b role-refactor && /srv/ansible/venv/bin/ansible --version # Remove branch flag once we move to master - name: Chown /srv/git run: sudo chown -R runner:runner /srv/git - name: Print pip dependencies- run: cat /srv/git/sb/requirements-saltbox.txt+ run: cat /srv/git/saltbox/requirements/requirements-saltbox.txt - name: Edit accounts.yml run: cd /srv/git/saltbox && sed -i 's/seed/runner/g' accounts.yml - - name: Create, chown and chmod /tmp/ansible- run: sudo mkdir /tmp/ansible && sudo chown -R runner:runner /tmp/ansible && chmod 0777 /tmp/ansible- - name: Syntax Check run: cd /srv/git/saltbox && sudo ansible-playbook saltbox.yml --syntax-check++ - name: Create basic vars file+ run: |+ echo "continuous_integration: true" > /tmp/vars.yml+ echo "server_appdata_path: /opt2" >> /tmp/vars.yml+ sudo mkdir -p /opt2 - name: Create CI vars file if: github.repository == 'saltyorg/Sandbox' && github.event.repository.fork == false run: |- echo "continuous_integration: true" > /tmp/vars.yml echo "dockerhub:" >> /tmp/vars.yml echo " token: ${{ secrets.DOCKERHUB_TOKEN }}" >> /tmp/vars.yml echo " user: ${{ secrets.DOCKERHUB_USERNAME }}" >> /tmp/vars.yml++ - name: Install Saltbox Preinstall+ run: cd /srv/git/saltbox && sudo /srv/ansible/venv/bin/ansible-playbook saltbox.yml --tags "preinstall" --skip-tags "settings" --extra-vars "@/tmp/vars.yml"++ - name: Run saltbox.fact+ run: /srv/git/saltbox/ansible_facts.d/saltbox.fact - name: Install Saltbox Core run: cd /srv/git/saltbox && sudo ansible-playbook saltbox.yml --tags "core" --skip-tags "settings" --extra-vars "@/tmp/vars.yml" - name: Copy default configuration- run: cp -n defaults/settings.yml.default settings.yml+ run: |+ if touch /tmp/test1 && cp --update=none /tmp/test1 /tmp/test2 2>/dev/null; then+ && cp --update=none defaults/settings.yml.default settings.yml+ else+ cp -n defaults/settings.yml.default settings.yml+ fi - name: Install ${{ matrix.roles }} run: sudo ansible-playbook sandbox.yml --tags "${{ matrix.roles }}" --skip-tags "settings" --extra-vars "@/tmp/vars.yml"++ - name: Run Tree on app data folder+ run: sudo tree -aug /opt2 - name: Inspect all Docker containers run: |
modified
.github/workflows/sandbox.yml
@@ -21,15 +21,16 @@ if: github.event_name == 'pull_request' || !(github.event_name == 'push' && github.actor == 'renovate[bot]') runs-on: ubuntu-24.04 steps:- - uses: actions/checkout@v5+ - uses: actions/checkout@v6 with: path: sandbox - name: Checkout Saltbox repository- uses: actions/checkout@v5+ uses: actions/checkout@v6 with: repository: saltyorg/Saltbox path: saltbox+ ref: role-refactor # Remove branch once we move to master - name: Create Directories run: sudo mkdir -p /srv/git@@ -42,7 +43,7 @@ - uses: actions/setup-python@v6 with:- python-version: '3.13'+ python-version: '3.14' cache: 'pip' cache-dependency-path: 'saltbox/requirements/requirements-saltbox.txt' @@ -53,14 +54,24 @@ working-directory: ${{ github.workspace }}/sandbox run: ansible-lint - - name: Run salty linter- run: python3 ./sandbox/scripts/salty-linter.py ./roles+ defaults-lint:+ if: github.event_name == 'pull_request' || !(github.event_name == 'push' && github.actor == 'renovate[bot]')+ runs-on: ubuntu-24.04+ steps:+ - uses: actions/checkout@v6++ - uses: actions/setup-python@v6+ with:+ python-version: '3.14'++ - name: Run Defaults Linter+ run: python3 scripts/saltbox-defaults-linter.py roles/ check-entries: if: github.event_name == 'pull_request' || !(github.event_name == 'push' && github.actor == 'renovate[bot]') runs-on: ubuntu-24.04 steps:- - uses: actions/checkout@v5+ - uses: actions/checkout@v6 - name: Check Missing Entries run: ./scripts/check_missing_entries.sh@@ -71,54 +82,81 @@ outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps:- - uses: actions/checkout@v5+ - uses: actions/checkout@v6 - id: set-matrix run: echo "matrix={\"roles\":[$(awk '/# Apps Start/{flag=1;next}/# Apps End/{flag=0}flag' sandbox.yml | awk '!/#/' | awk -F'[][]' '{print $2}' | tr '\n' ',' | sed 's/,*$//' | awk -F',' '{ for( i=1; i<=NF; i++ ) print $i }' | awk '{ gsub(/ /,""); print }'| sort -u | awk -vORS=, '{ print $1 }' | sed 's/,$/\n/')]}" >> $GITHUB_OUTPUT install: name: '${{ matrix.roles }}'- needs: [ansible-lint, check-entries, find-roles]+ needs: [ansible-lint, defaults-lint, check-entries, find-roles] runs-on: ubuntu-24.04 strategy: matrix: ${{ fromJson(needs.find-roles.outputs.matrix) }} fail-fast: false steps:- - uses: actions/checkout@v5+ - uses: actions/checkout@v6++ - name: Install sb binary+ uses: jaxxstorm/action-install-gh-release@v2.1.0+ with:+ repo: saltyorg/sb-go+ tag: latest+ extension-matching: disable+ platform: linux+ arch: amd64+ rename-to: sb+ chmod: "0755"++ - name: Check sb version+ run: |+ sudo mv /opt/hostedtoolcache/saltyorg/sb-go/latest/linux-amd64/sb /usr/local/bin/sb+ /usr/local/bin/sb version - name: Install Dependencies- run: curl https://raw.githubusercontent.com/saltyorg/sb/master/sb_install.sh --output sb_install.sh && sudo bash sb_install.sh -v && ansible --version+ run: /usr/local/bin/sb setup -v -b role-refactor && /srv/ansible/venv/bin/ansible --version # Remove branch flag once we move to master - name: Chown /srv/git run: sudo chown -R runner:runner /srv/git - name: Print pip dependencies- run: cat /srv/git/sb/requirements-saltbox.txt+ run: cat /srv/git/saltbox/requirements/requirements-saltbox.txt - name: Edit accounts.yml run: cd /srv/git/saltbox && sed -i 's/seed/runner/g' accounts.yml - - name: Create, chown and chmod /tmp/ansible- run: sudo mkdir /tmp/ansible && sudo chown -R runner:runner /tmp/ansible && chmod 0777 /tmp/ansible- - name: Syntax Check run: cd /srv/git/saltbox && sudo ansible-playbook saltbox.yml --syntax-check + - name: Create basic vars file+ run: |+ echo "continuous_integration: true" > /tmp/vars.yml+ echo "server_appdata_path: /opt2" >> /tmp/vars.yml+ sudo mkdir -p /opt2+ - name: Create CI vars file if: github.repository == 'saltyorg/Sandbox' && github.event.repository.fork == false run: |- echo "continuous_integration: true" > /tmp/vars.yml echo "dockerhub:" >> /tmp/vars.yml echo " token: ${{ secrets.DOCKERHUB_TOKEN }}" >> /tmp/vars.yml echo " user: ${{ secrets.DOCKERHUB_USERNAME }}" >> /tmp/vars.yml + - name: Install Saltbox Preinstall+ run: cd /srv/git/saltbox && sudo /srv/ansible/venv/bin/ansible-playbook saltbox.yml --tags "preinstall" --skip-tags "settings" --extra-vars "@/tmp/vars.yml"++ - name: Run saltbox.fact+ run: /srv/git/saltbox/ansible_facts.d/saltbox.fact+ - name: Install Saltbox Core run: cd /srv/git/saltbox && sudo ansible-playbook saltbox.yml --tags "core" --skip-tags "settings" --extra-vars "@/tmp/vars.yml" - name: Copy default configuration- run: cp -n defaults/settings.yml.default settings.yml+ run: cp --update=none defaults/settings.yml.default settings.yml - name: Install ${{ matrix.roles }} run: sudo ansible-playbook sandbox.yml --tags "${{ matrix.roles }}" --skip-tags "settings" --extra-vars "@/tmp/vars.yml"++ - name: Run Tree on app data folder+ run: sudo tree -aug /opt2 - name: Inspect all Docker containers run: |
modified
ansible.cfg
@@ -2,6 +2,7 @@ inventory = /srv/git/saltbox/inventories/local roles_path = roles:/srv/git/saltbox/roles:/srv/git/saltbox/resources/roles filter_plugins = /srv/git/saltbox/filter_plugins+lookup_plugins = /srv/git/saltbox/lookup_plugins library = /srv/git/saltbox/library log_path = ./sandbox.log callbacks_enabled = profile_tasks
modified
defaults/settings.yml.default
@@ -1,36 +1,8 @@ ----a_train:- remotes: [""]-delugevpn:- vpn_endpoint: netherlands.ovpn- vpn_pass: your_vpn_password- vpn_prov: pia- vpn_user: your_vpn_username- vpn_client: wireguard-doplarr:- discord_token: your_discord_bot_token- overseerr_url: "http://overseerr:5055"- overseerr_api:- radarr_api:- radarr_url:- sonarr_api:- sonarr_url:- discord_max_results: 25- discord_role_id:- discord_requested_msg_style: ":plain"- sonarr_quality_profile:- radarr_quality_profile:- sonarr_language_profile:- overseer_default_id:- partial_seasons: "true"- log_level: ":info" foundry: user: your_foundryvtt_username pass: your_foundryvtt_password app_key: your_foundryvtt_license-goplaxt:- trakt_id: ~- trakt_secret: ~ handbrake: handbrake_pass: saltbox invoiceninja:@@ -66,19 +38,9 @@ vpn_prov: pia vpn_user: your_vpn_username vpn_client: wireguard-recyclarr:- cron_schedule: "@daily"- sleeptime:- rc_port:- rc_user:- rc_pass:- apprise: tqm: download_client: "qbt" transmissionvpn: vpn_user: vpn_pass: vpn_prov:-your_spotify:- public_key:- secret_key:
modified
roles/a_train/defaults/main.yml
@@ -14,97 +14,66 @@ a_train_name: a-train ################################+# Settings+################################++a_train_role_remotes: [""]++################################ # Paths ################################ -a_train_paths_folder: "{{ a_train_name }}"-a_train_paths_location: "{{ server_appdata_path }}/{{ a_train_paths_folder }}"-a_train_paths_config_location: "{{ a_train_paths_location }}/a-train.toml"-a_train_paths_sa_location: "{{ a_train_paths_location }}/account.json"-a_train_paths_rclone_config_location: "/home/{{ user.name }}/.config/rclone/rclone.conf"-a_train_paths_folders_list:- - "{{ a_train_paths_location }}"+a_train_role_paths_folder: "{{ a_train_name }}"+a_train_role_paths_location: "{{ server_appdata_path }}/{{ a_train_role_paths_folder }}"+a_train_role_paths_config_location: "{{ a_train_role_paths_location }}/a-train.toml"+a_train_role_paths_sa_location: "{{ a_train_role_paths_location }}/account.json"+a_train_role_paths_rclone_config_location: "/home/{{ user.name }}/.config/rclone/rclone.conf"+a_train_role_paths_folders_list:+ - "{{ a_train_role_paths_location }}" ################################ # Docker ################################ # Container-a_train_docker_container: "{{ a_train_name }}"+a_train_role_docker_container: "{{ a_train_name }}" # Image-a_train_docker_image_pull: true-a_train_docker_image_tag: "latest"-a_train_docker_image: "ghcr.io/m-rots/a-train:{{ a_train_docker_image_tag }}"+a_train_role_docker_image_pull: true+a_train_role_docker_image_repo: "ghcr.io/m-rots/a-train"+a_train_role_docker_image_tag: "latest"+a_train_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='a_train') }}:{{ lookup('role_var', '_docker_image_tag', role='a_train') }}" # Envs-a_train_docker_envs_default:+a_train_role_docker_envs_default: TZ: "{{ tz }}"-a_train_docker_envs_custom: {}-a_train_docker_envs: "{{ a_train_docker_envs_default- | combine(a_train_docker_envs_custom) }}"--# Commands-a_train_docker_commands_default: []-a_train_docker_commands_custom: []-a_train_docker_commands: "{{ a_train_docker_commands_default- + a_train_docker_commands_custom }}"+a_train_role_docker_envs_custom: {}+a_train_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='a_train')+ | combine(lookup('role_var', '_docker_envs_custom', role='a_train')) }}" # Volumes-a_train_docker_volumes_default:- - "{{ a_train_paths_location }}:/data"-a_train_docker_volumes_custom: []-a_train_docker_volumes: "{{ a_train_docker_volumes_default- + a_train_docker_volumes_custom }}"--# Devices-a_train_docker_devices_default: []-a_train_docker_devices_custom: []-a_train_docker_devices: "{{ a_train_docker_devices_default- + a_train_docker_devices_custom }}"--# Hosts-a_train_docker_hosts_default: {}-a_train_docker_hosts_custom: {}-a_train_docker_hosts: "{{ docker_hosts_common- | combine(a_train_docker_hosts_default)- | combine(a_train_docker_hosts_custom) }}"--# Labels-a_train_docker_labels_default: {}-a_train_docker_labels_custom: {}-a_train_docker_labels: "{{ docker_labels_common- | combine(a_train_docker_labels_default)- | combine(a_train_docker_labels_custom) }}"+a_train_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='a_train') }}:/data"+a_train_role_docker_volumes_custom: []+a_train_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='a_train')+ + lookup('role_var', '_docker_volumes_custom', role='a_train') }}" # Hostname-a_train_docker_hostname: "{{ a_train_name }}"+a_train_role_docker_hostname: "{{ a_train_name }}" # Networks-a_train_docker_networks_alias: "{{ a_train_name }}"-a_train_docker_networks_default: []-a_train_docker_networks_custom: []-a_train_docker_networks: "{{ docker_networks_common- + a_train_docker_networks_default- + a_train_docker_networks_custom }}"--# Capabilities-a_train_docker_capabilities_default: []-a_train_docker_capabilities_custom: []-a_train_docker_capabilities: "{{ a_train_docker_capabilities_default- + a_train_docker_capabilities_custom }}"--# Security Opts-a_train_docker_security_opts_default: []-a_train_docker_security_opts_custom: []-a_train_docker_security_opts: "{{ a_train_docker_security_opts_default- + a_train_docker_security_opts_custom }}"+a_train_role_docker_networks_alias: "{{ a_train_name }}"+a_train_role_docker_networks_default: []+a_train_role_docker_networks_custom: []+a_train_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='a_train')+ + lookup('role_var', '_docker_networks_custom', role='a_train') }}" # Restart Policy-a_train_docker_restart_policy: unless-stopped+a_train_role_docker_restart_policy: unless-stopped # State-a_train_docker_state: started+a_train_role_docker_state: started # User-a_train_docker_user: "{{ uid }}:{{ gid }}"+a_train_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/a_train/tasks/main.yml
@@ -16,7 +16,7 @@ - name: Set Default Autoscan instance ansible.builtin.set_fact: autoscan_name: "{{ autoscan_instances[0] }}"- when: not autoscan_name is defined+ when: (not autoscan_name is defined) - name: Import Settings task ansible.builtin.import_tasks: "subtasks/settings.yml"
modified
roles/a_train/tasks/subtasks/config.yml
@@ -7,15 +7,17 @@ # GNU General Public License v3.0 # ######################################################################### ---- - name: Get remote types from rclone config- ansible.builtin.shell: "echo {{ lookup('ini', 'type', section=item, file=a_train_paths_rclone_config_location) }}"- with_items: "{{ a_train.remotes }}"+ ansible.builtin.shell: "echo {{ lookup('ini', 'type', section=item, file=lookup('role_var', '_paths_rclone_config_location', role='a_train')) }}"+ with_items: "{{ lookup('role_var', '_remotes', role='a_train') }}" register: remote_type -- name: Set variable for remote types+- name: Set variable for remote types along with empty default variables ansible.builtin.set_fact: remote_type_var: "{{ remote_type.results | map(attribute='stdout') }}"+ drive_id: []+ union_id: []+ td_id_var: [] - name: Fail if remote type is crypt ansible.builtin.fail:@@ -30,7 +32,7 @@ drive_remotes: "{{ remote_type.results | selectattr('stdout', '==', 'drive') | map(attribute='item') }}" - name: Get the ID of the teamdrives- ansible.builtin.shell: "echo {{ lookup('ini', 'team_drive', section=item, file=a_train_paths_rclone_config_location) }}"+ ansible.builtin.shell: "echo {{ lookup('ini', 'team_drive', section=item, file=lookup('role_var', '_paths_rclone_config_location', role='a_train')) }}" register: drive_id_var loop: "{{ drive_remotes }}" @@ -46,27 +48,27 @@ union_remotes: "{{ remote_type.results | selectattr('stdout', '==', 'union') | map(attribute='item') }}" - name: Get the upstreams- ansible.builtin.shell: "echo {{ lookup('ini', 'upstreams', section=item, file=a_train_paths_rclone_config_location) }}"+ ansible.builtin.shell: "echo {{ lookup('ini', 'upstreams', section=item, file=lookup('role_var', '_paths_rclone_config_location', role='a_train')) }}" with_items: "{{ union_remotes }}" register: union_upstreams_var - name: Set variable for upstreams ansible.builtin.set_fact:- union_upstreams: "{{ union_upstreams_var.results[0].stdout.split(separator) | replace(':', '') }}"+ union_upstreams: "{{ union_upstreams_var.results[0].stdout.split(separator) | map('replace', ':', '') }}" vars: separator: ': ' when: '": " in union_upstreams_var.results[0].stdout' - name: Set variable for upstreams when root folder is specified ansible.builtin.set_fact:- union_upstreams: "{{ union_upstreams_var.results[0].stdout.split(separator) | replace(':', '') | replace(secret_slash, '') }}"+ union_upstreams: "{{ union_upstreams_var.results[0].stdout.split(separator) | map('replace', ':', '') | map('replace', secret_slash, '') }}" vars: separator: '/ ' secret_slash: '/' when: '"/" in union_upstreams_var.results[0].stdout' - name: Get the ID of the teamdrives- ansible.builtin.shell: "echo {{ lookup('ini', 'team_drive', section=item, file=a_train_paths_rclone_config_location) }}"+ ansible.builtin.shell: "echo {{ lookup('ini', 'team_drive', section=item, file=lookup('role_var', '_paths_rclone_config_location', role='a_train')) }}" register: union_id_var loop: "{{ union_upstreams }}" @@ -76,10 +78,7 @@ - name: Merge teamdrive ID of both union and drive remotes ansible.builtin.set_fact:- td_id_var: "{{ td_id_var | default([]) + item }}"- loop:- - "{{ drive_id | default([]) }}"- - "{{ union_id | default([]) }}"+ td_id_var: "{{ drive_id + union_id }}" - name: Set variable for merged ID of teamdrives ansible.builtin.set_fact:
modified
roles/a_train/tasks/subtasks/settings.yml
@@ -7,37 +7,36 @@ # GNU General Public License v3.0 # ######################################################################### ------ name: Settings | Check if `{{ a_train_paths_sa_location | basename }}` exists+- name: Settings | Check if `{{ lookup('role_var', '_paths_sa_location', role='a_train') | basename }}` exists ansible.builtin.stat:- path: "{{ a_train_paths_sa_location }}"+ path: "{{ lookup('role_var', '_paths_sa_location', role='a_train') }}" register: a_train_sa -- name: Settings | Check if `{{ a_train_paths_config_location | basename }}` exists+- name: Settings | Check if `{{ lookup('role_var', '_paths_config_location', role='a_train') | basename }}` exists ansible.builtin.stat:- path: "{{ a_train_paths_config_location }}"+ path: "{{ lookup('role_var', '_paths_config_location', role='a_train') }}" register: a_train_config - name: "Fail when 'account.json' is `not present`" ansible.builtin.fail:- msg: "You need to setup your service account file. Create a service account, add it to the team drives you wish to monitor and copy the json file as 'account.json' to `{{ a_train_paths_location }}`"- when: (not a_train_sa.stat.exists) and (not continuous_integration)+ msg: "You need to setup your service account file. Create a service account, add it to the team drives you wish to monitor and copy the json file as 'account.json' to `{{ lookup('role_var', '_paths_location', role='a_train') }}`"+ when: (not continuous_integration) and (not a_train_sa.stat.exists) - name: "Fail when remotes are `not added`" ansible.builtin.fail:- msg: "You need to add remotes you wish to monitor in the settings file."- when: ("" in a_train.remotes) and (not a_train_config.stat.exists) and (not continuous_integration)+ msg: "You need to add remotes you wish to monitor in a_train_role_remotes using the inventory."+ when: (not continuous_integration) and (not a_train_config.stat.exists) and ("" in lookup('role_var', '_remotes', role='a_train')) -- name: Settings | New `{{ a_train_paths_config_location | basename }}` tasks- when: (not a_train_config.stat.exists) and (not continuous_integration)+- name: Settings | New `{{ lookup('role_var', '_paths_config_location', role='a_train') | basename }}` tasks+ when: (not continuous_integration) and (not a_train_config.stat.exists) block: - name: Import Settings task ansible.builtin.import_tasks: "config.yml" - - name: Settings | Import default `{{ a_train_paths_config_location | basename }}`+ - name: Settings | Import default `{{ lookup('role_var', '_paths_config_location', role='a_train') | basename }}` ansible.builtin.template: src: a-train.toml.j2- dest: "{{ a_train_paths_config_location }}"+ dest: "{{ lookup('role_var', '_paths_config_location', role='a_train') }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"
modified
roles/a_train/templates/a-train.toml.j2
@@ -1,7 +1,7 @@ # a-train.toml [autoscan] # Replace the URL with your Autoscan URL.-url = "{{ 'http://' + autoscan_docker_networks_alias + ':' + autoscan_web_port }}"+url = "{{ 'http://' + lookup('role_var', '_docker_networks_alias', role='autoscan') + ':' + lookup('role_var', '_web_port', role='autoscan') }}" username = "{{ user.name }}" password = "{{ user.pass }}"
modified
roles/actualbudget/defaults/main.yml
@@ -17,134 +17,88 @@ # Paths ################################ -actualbudget_paths_folder: "{{ actualbudget_name }}"-actualbudget_paths_location: "{{ server_appdata_path }}/{{ actualbudget_paths_folder }}"-actualbudget_paths_folders_list:- - "{{ actualbudget_paths_location }}"- - "{{ actualbudget_paths_location }}/server-files"- - "{{ actualbudget_paths_location }}/user-files"+actualbudget_role_paths_folder: "{{ actualbudget_name }}"+actualbudget_role_paths_location: "{{ server_appdata_path }}/{{ actualbudget_role_paths_folder }}"+actualbudget_role_paths_folders_list:+ - "{{ actualbudget_role_paths_location }}"+ - "{{ actualbudget_role_paths_location }}/server-files"+ - "{{ actualbudget_role_paths_location }}/user-files" ################################ # Web ################################ -actualbudget_web_subdomain: "{{ actualbudget_name }}"-actualbudget_web_domain: "{{ user.domain }}"-actualbudget_web_port: "5006"-actualbudget_web_url: "{{ 'https://' + (actualbudget_web_subdomain + '.' + actualbudget_web_domain- if (actualbudget_web_subdomain | length > 0)- else actualbudget_web_domain) }}"+actualbudget_role_web_subdomain: "{{ actualbudget_name }}"+actualbudget_role_web_domain: "{{ user.domain }}"+actualbudget_role_web_port: "5006"+actualbudget_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='actualbudget') + '.' + lookup('role_var', '_web_domain', role='actualbudget')+ if (lookup('role_var', '_web_subdomain', role='actualbudget') | length > 0)+ else lookup('role_var', '_web_domain', role='actualbudget')) }}" ################################ # DNS ################################ -actualbudget_dns_record: "{{ actualbudget_web_subdomain }}"-actualbudget_dns_zone: "{{ actualbudget_web_domain }}"-actualbudget_dns_proxy: "{{ dns.proxied }}"+actualbudget_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='actualbudget') }}"+actualbudget_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='actualbudget') }}"+actualbudget_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -actualbudget_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-actualbudget_traefik_middleware_default: "{{ traefik_default_middleware }}"-actualbudget_traefik_certresolver: "{{ traefik_default_certresolver }}"-actualbudget_traefik_middleware_custom: ""-actualbudget_traefik_enabled: true-actualbudget_traefik_api_enabled: false-actualbudget_traefik_api_endpoint: ""+actualbudget_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+actualbudget_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+actualbudget_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+actualbudget_role_traefik_middleware_custom: ""+actualbudget_role_traefik_enabled: true+actualbudget_role_traefik_api_enabled: false+actualbudget_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-actualbudget_docker_container: "{{ actualbudget_name }}"+actualbudget_role_docker_container: "{{ actualbudget_name }}" # Image-actualbudget_docker_image_pull: true-actualbudget_docker_image_tag: "latest"-actualbudget_docker_image: "actualbudget/actual-server:{{ actualbudget_docker_image_tag }}"--# Ports-actualbudget_docker_ports_defaults:- - "{{ actualbudget_web_port }}"-actualbudget_docker_ports_custom: []-actualbudget_docker_ports: "{{ actualbudget_docker_ports_defaults- + actualbudget_docker_ports_custom- if (not reverse_proxy_is_enabled)- else actualbudget_docker_ports_custom }}"+actualbudget_role_docker_image_pull: true+actualbudget_role_docker_image_repo: "actualbudget/actual-server"+actualbudget_role_docker_image_tag: "latest"+actualbudget_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='actualbudget') }}:{{ lookup('role_var', '_docker_image_tag', role='actualbudget') }}" # Envs-actualbudget_docker_envs_default:+actualbudget_role_docker_envs_default: TZ: "{{ tz }}"-actualbudget_docker_envs_custom: {}-actualbudget_docker_envs: "{{ actualbudget_docker_envs_default- | combine(actualbudget_docker_envs_custom) }}"--# Commands-actualbudget_docker_commands_default: []-actualbudget_docker_commands_custom: []-actualbudget_docker_commands: "{{ actualbudget_docker_commands_default- + actualbudget_docker_commands_custom }}"+actualbudget_role_docker_envs_custom: {}+actualbudget_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='actualbudget')+ | combine(lookup('role_var', '_docker_envs_custom', role='actualbudget')) }}" # Volumes-actualbudget_docker_volumes_default:- - "{{ actualbudget_paths_location }}:/data"+actualbudget_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='actualbudget') }}:/data" - "/etc/localtime:/etc/localtime:ro"-actualbudget_docker_volumes_custom: []-actualbudget_docker_volumes: "{{ actualbudget_docker_volumes_default- + actualbudget_docker_volumes_custom }}"--# Devices-actualbudget_docker_devices_default: []-actualbudget_docker_devices_custom: []-actualbudget_docker_devices: "{{ actualbudget_docker_devices_default- + actualbudget_docker_devices_custom }}"--# Hosts-actualbudget_docker_hosts_default: []-actualbudget_docker_hosts_custom: []-actualbudget_docker_hosts: "{{ docker_hosts_common- | combine(actualbudget_docker_hosts_default)- | combine(actualbudget_docker_hosts_custom) }}"--# Labels-actualbudget_docker_labels_default: {}-actualbudget_docker_labels_custom: {}-actualbudget_docker_labels: "{{ docker_labels_common- | combine(actualbudget_docker_labels_default)- | combine(actualbudget_docker_labels_custom) }}"+actualbudget_role_docker_volumes_custom: []+actualbudget_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='actualbudget')+ + lookup('role_var', '_docker_volumes_custom', role='actualbudget') }}" # Hostname-actualbudget_docker_hostname: "{{ actualbudget_name }}"+actualbudget_role_docker_hostname: "{{ actualbudget_name }}" # Networks-actualbudget_docker_networks_alias: "{{ actualbudget_name }}"-actualbudget_docker_networks_default: []-actualbudget_docker_networks_custom: []-actualbudget_docker_networks: "{{ docker_networks_common- + actualbudget_docker_networks_default- + actualbudget_docker_networks_custom }}"--# Capabilities-actualbudget_docker_capabilities_default: []-actualbudget_docker_capabilities_custom: []-actualbudget_docker_capabilities: "{{ actualbudget_docker_capabilities_default- + actualbudget_docker_capabilities_custom }}"--# Security Opts-actualbudget_docker_security_opts_default: []-actualbudget_docker_security_opts_custom: []-actualbudget_docker_security_opts: "{{ actualbudget_docker_security_opts_default- + actualbudget_docker_security_opts_custom }}"+actualbudget_role_docker_networks_alias: "{{ actualbudget_name }}"+actualbudget_role_docker_networks_default: []+actualbudget_role_docker_networks_custom: []+actualbudget_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='actualbudget')+ + lookup('role_var', '_docker_networks_custom', role='actualbudget') }}" # Restart Policy-actualbudget_docker_restart_policy: unless-stopped+actualbudget_role_docker_restart_policy: unless-stopped # State-actualbudget_docker_state: started+actualbudget_role_docker_state: started # User-actualbudget_docker_user: "{{ uid }}:{{ gid }}"+actualbudget_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/actualbudget/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/adguardhome/defaults/main.yml
@@ -17,132 +17,90 @@ # Paths ################################ -adguardhome_paths_folder: "{{ adguardhome_name }}"-adguardhome_paths_location: "{{ server_appdata_path }}/{{ adguardhome_paths_folder }}"-adguardhome_config_path: "{{ adguardhome_paths_location }}/conf/AdGuardHome.yaml"-adguardhome_paths_folders_list:- - "{{ adguardhome_paths_location }}"- - "{{ adguardhome_paths_location }}/conf"- - "{{ adguardhome_paths_location }}/work"- - "{{ adguardhome_paths_location }}/work/data"- - "{{ adguardhome_paths_location }}/work/data/filters"+adguardhome_role_paths_folder: "{{ adguardhome_name }}"+adguardhome_role_paths_location: "{{ server_appdata_path }}/{{ adguardhome_role_paths_folder }}"+adguardhome_role_paths_config_path: "{{ adguardhome_role_paths_location }}/conf/AdGuardHome.yaml"+adguardhome_role_paths_folders_list:+ - "{{ adguardhome_role_paths_location }}"+ - "{{ adguardhome_role_paths_location }}/conf"+ - "{{ adguardhome_role_paths_location }}/work"+ - "{{ adguardhome_role_paths_location }}/work/data"+ - "{{ adguardhome_role_paths_location }}/work/data/filters" ################################ # Web ################################ -adguardhome_web_subdomain: "{{ adguardhome_name }}"-adguardhome_web_domain: "{{ user.domain }}"-adguardhome_web_port: "3000"-adguardhome_web_url: "{{ 'https://' + (adguardhome_web_subdomain + '.' + adguardhome_web_domain- if (adguardhome_web_subdomain | length > 0)- else adguardhome_web_domain) }}"+adguardhome_role_web_subdomain: "{{ adguardhome_name }}"+adguardhome_role_web_domain: "{{ user.domain }}"+adguardhome_role_web_port: "3000"+adguardhome_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='adguardhome') + '.' + lookup('role_var', '_web_domain', role='adguardhome')+ if (lookup('role_var', '_web_subdomain', role='adguardhome') | length > 0)+ else lookup('role_var', '_web_domain', role='adguardhome')) }}" ################################ # DNS ################################ -adguardhome_dns_record: "{{ adguardhome_web_subdomain }}"-adguardhome_dns_zone: "{{ adguardhome_web_domain }}"-adguardhome_dns_proxy: "{{ dns.proxied }}"+adguardhome_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='adguardhome') }}"+adguardhome_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='adguardhome') }}"+adguardhome_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -adguardhome_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-adguardhome_traefik_middleware_default: "{{ traefik_default_middleware }}"-adguardhome_traefik_middleware_custom: ""-adguardhome_traefik_certresolver: "{{ traefik_default_certresolver }}"-adguardhome_traefik_enabled: true-adguardhome_traefik_api_enabled: true-adguardhome_traefik_api_endpoint: "PathPrefix(`/dns-query`)"+adguardhome_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+adguardhome_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+adguardhome_role_traefik_middleware_custom: ""+adguardhome_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+adguardhome_role_traefik_enabled: true+adguardhome_role_traefik_api_enabled: true+adguardhome_role_traefik_api_endpoint: "PathPrefix(`/dns-query`)" ################################ # Docker ################################ # Container-adguardhome_docker_container: "{{ adguardhome_name }}"+adguardhome_role_docker_container: "{{ adguardhome_name }}" # Image-adguardhome_docker_image_pull: true-adguardhome_docker_image_tag: "latest"-adguardhome_docker_image: "adguard/adguardhome:{{ adguardhome_docker_image_tag }}"--# Ports-adguardhome_docker_ports_defaults: []-adguardhome_docker_ports_custom: []-adguardhome_docker_ports: "{{ adguardhome_docker_ports_defaults- + adguardhome_docker_ports_custom }}"+adguardhome_role_docker_image_pull: true+adguardhome_role_docker_image_repo: "adguard/adguardhome"+adguardhome_role_docker_image_tag: "latest"+adguardhome_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='adguardhome') }}:{{ lookup('role_var', '_docker_image_tag', role='adguardhome') }}" # Envs-adguardhome_docker_envs_default:+adguardhome_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-adguardhome_docker_envs_custom: {}-adguardhome_docker_envs: "{{ adguardhome_docker_envs_default- | combine(adguardhome_docker_envs_custom) }}"--# Commands-adguardhome_docker_commands_default: []-adguardhome_docker_commands_custom: []-adguardhome_docker_commands: "{{ adguardhome_docker_commands_default- + adguardhome_docker_commands_custom }}"+adguardhome_role_docker_envs_custom: {}+adguardhome_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='adguardhome')+ | combine(lookup('role_var', '_docker_envs_custom', role='adguardhome')) }}" # Volumes-adguardhome_docker_volumes_default:- - "{{ adguardhome_paths_location }}/work:/opt/adguardhome/work"- - "{{ adguardhome_paths_location }}/conf:/opt/adguardhome/conf"-adguardhome_docker_volumes_custom: []-adguardhome_docker_volumes: "{{ adguardhome_docker_volumes_default }}"--# Devices-adguardhome_docker_devices_default: []-adguardhome_docker_devices_custom: []-adguardhome_docker_devices: "{{ adguardhome_docker_devices_default- + adguardhome_docker_devices_custom }}"--# Hosts-adguardhome_docker_hosts_default: {}-adguardhome_docker_hosts_custom: {}-adguardhome_docker_hosts: "{{ docker_hosts_common- | combine(adguardhome_docker_hosts_default)- | combine(adguardhome_docker_hosts_custom) }}"--# Labels-adguardhome_docker_labels_default: {}-adguardhome_docker_labels_custom: {}-adguardhome_docker_labels: "{{ docker_labels_common- | combine(adguardhome_docker_labels_default)- | combine(adguardhome_docker_labels_custom) }}"+adguardhome_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='adguardhome') }}/work:/opt/adguardhome/work"+ - "{{ lookup('role_var', '_paths_location', role='adguardhome') }}/conf:/opt/adguardhome/conf"+adguardhome_role_docker_volumes_custom: []+adguardhome_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='adguardhome')+ + lookup('role_var', '_docker_volumes_custom', role='adguardhome') }}" # Hostname-adguardhome_docker_hostname: "{{ adguardhome_name }}"+adguardhome_role_docker_hostname: "{{ adguardhome_name }}" # Networks-adguardhome_docker_networks_alias: "{{ adguardhome_name }}"-adguardhome_docker_networks_default: []-adguardhome_docker_networks_custom: []-adguardhome_docker_networks: "{{ docker_networks_common- + adguardhome_docker_networks_default- + adguardhome_docker_networks_custom }}"--# Capabilities-adguardhome_docker_capabilities_default: []-adguardhome_docker_capabilities_custom: []-adguardhome_docker_capabilities: "{{ adguardhome_docker_capabilities_default- + adguardhome_docker_capabilities_custom }}"--# Security Opts-adguardhome_docker_security_opts_default: []-adguardhome_docker_security_opts_custom: []-adguardhome_docker_security_opts: "{{ adguardhome_docker_security_opts_default- + adguardhome_docker_security_opts_custom }}"+adguardhome_role_docker_networks_alias: "{{ adguardhome_name }}"+adguardhome_role_docker_networks_default: []+adguardhome_role_docker_networks_custom: []+adguardhome_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='adguardhome')+ + lookup('role_var', '_docker_networks_custom', role='adguardhome') }}" # Restart Policy-adguardhome_docker_restart_policy: unless-stopped+adguardhome_role_docker_restart_policy: unless-stopped # State-adguardhome_docker_state: started+adguardhome_role_docker_state: started
modified
roles/adguardhome/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -22,7 +22,7 @@ - name: "Settings | Check if AdGuardHome.yaml exists" ansible.builtin.stat:- path: "{{ adguardhome_config_path }}"+ path: "{{ lookup('role_var', '_paths_config_path', role='adguardhome') }}" register: adguardhome_config - name: "Settings | New AdGuardHome.yaml tasks"@@ -31,7 +31,7 @@ - name: "Settings | Import AdGuardHome.yaml.j2" ansible.builtin.template: src: AdGuardHome.yaml.j2- dest: '{{ adguardhome_config_path }}'+ dest: "{{ lookup('role_var', '_paths_config_path', role='adguardhome') }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"
modified
roles/adguardhome/templates/AdGuardHome.yaml.j2
@@ -70,7 +70,7 @@ local_ptr_upstreams: [] tls: enabled: true- server_name: {{ adguardhome_web_subdomain }}.{{ adguardhome_web_domain }}+ server_name: {{ lookup('role_var', '_web_subdomain', role='adguardhome') }}.{{ lookup('role_var', '_web_domain', role='adguardhome') }} force_https: false port_https: 0 port_dns_over_tls: 0
modified
roles/adminer/defaults/main.yml
@@ -17,113 +17,64 @@ # Web ################################ -adminer_web_subdomain: "{{ adminer_name }}"-adminer_web_domain: "{{ user.domain }}"-adminer_web_port: "8080"-adminer_web_url: "{{ 'https://' + (adminer_web_subdomain + '.' + adminer_web_domain- if (adminer_web_subdomain | length > 0)- else adminer_web_domain) }}"+adminer_role_web_subdomain: "{{ adminer_name }}"+adminer_role_web_domain: "{{ user.domain }}"+adminer_role_web_port: "8080"+adminer_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='adminer') + '.' + lookup('role_var', '_web_domain', role='adminer')+ if (lookup('role_var', '_web_subdomain', role='adminer') | length > 0)+ else lookup('role_var', '_web_domain', role='adminer')) }}" ################################ # DNS ################################ -adminer_dns_record: "{{ adminer_web_subdomain }}"-adminer_dns_zone: "{{ adminer_web_domain }}"-adminer_dns_proxy: "{{ dns.proxied }}"+adminer_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='adminer') }}"+adminer_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='adminer') }}"+adminer_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -adminer_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-adminer_traefik_middleware_default: "{{ traefik_default_middleware }}"-adminer_traefik_middleware_custom: ""-adminer_traefik_certresolver: "{{ traefik_default_certresolver }}"-adminer_traefik_enabled: true+adminer_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+adminer_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+adminer_role_traefik_middleware_custom: ""+adminer_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+adminer_role_traefik_enabled: true ################################ # Docker ################################ # Container-adminer_docker_container: "{{ adminer_name }}"+adminer_role_docker_container: "{{ adminer_name }}" # Image-adminer_docker_image_pull: true-adminer_docker_image_tag: "latest"-adminer_docker_image: "adminer:{{ adminer_docker_image_tag }}"--# Ports-adminer_docker_ports_defaults: []-adminer_docker_ports_custom: []-adminer_docker_ports: "{{ adminer_docker_ports_defaults- + adminer_docker_ports_custom }}"+adminer_role_docker_image_pull: true+adminer_role_docker_image_repo: "adminer"+adminer_role_docker_image_tag: "latest"+adminer_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='adminer') }}:{{ lookup('role_var', '_docker_image_tag', role='adminer') }}" # Envs-adminer_docker_envs_default:+adminer_role_docker_envs_default: ADMINER_DEFAULT_SERVER: "mysql"-adminer_docker_envs_custom: {}-adminer_docker_envs: "{{ adminer_docker_envs_default- | combine(adminer_docker_envs_custom) }}"--# Commands-adminer_docker_commands_default: []-adminer_docker_commands_custom: []-adminer_docker_commands: "{{ adminer_docker_commands_default- + adminer_docker_commands_custom }}"--# Volumes-adminer_docker_volumes_default: []-adminer_docker_volumes_custom: []-adminer_docker_volumes: "{{ adminer_docker_volumes_default- + adminer_docker_volumes_custom }}"--# Devices-adminer_docker_devices_default: []-adminer_docker_devices_custom: []-adminer_docker_devices: "{{ adminer_docker_devices_default- + adminer_docker_devices_custom }}"--# Hosts-adminer_docker_hosts_default: {}-adminer_docker_hosts_custom: {}-adminer_docker_hosts: "{{ docker_hosts_common- | combine(adminer_docker_hosts_default)- | combine(adminer_docker_hosts_custom) }}"--# Labels-adminer_docker_labels_default: {}-adminer_docker_labels_custom: {}-adminer_docker_labels: "{{ docker_labels_common- | combine(adminer_docker_labels_default)- | combine(adminer_docker_labels_custom) }}"+adminer_role_docker_envs_custom: {}+adminer_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='adminer')+ | combine(lookup('role_var', '_docker_envs_custom', role='adminer')) }}" # Hostname-adminer_docker_hostname: "{{ adminer_name }}"+adminer_role_docker_hostname: "{{ adminer_name }}" # Networks-adminer_docker_networks_alias: "{{ adminer_name }}"-adminer_docker_networks_default: []-adminer_docker_networks_custom: []-adminer_docker_networks: "{{ docker_networks_common- + adminer_docker_networks_default- + adminer_docker_networks_custom }}"--# Capabilities-adminer_docker_capabilities_default: []-adminer_docker_capabilities_custom: []-adminer_docker_capabilities: "{{ adminer_docker_capabilities_default- + adminer_docker_capabilities_custom }}"--# Security Opts-adminer_docker_security_opts_default: []-adminer_docker_security_opts_custom: []-adminer_docker_security_opts: "{{ adminer_docker_security_opts_default- + adminer_docker_security_opts_custom }}"+adminer_role_docker_networks_alias: "{{ adminer_name }}"+adminer_role_docker_networks_default: []+adminer_role_docker_networks_custom: []+adminer_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='adminer')+ + lookup('role_var', '_docker_networks_custom', role='adminer') }}" # Restart Policy-adminer_docker_restart_policy: unless-stopped+adminer_role_docker_restart_policy: unless-stopped # State-adminer_docker_state: started+adminer_role_docker_state: started
modified
roles/adminer/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/airdcpp/defaults/main.yml
@@ -17,138 +17,101 @@ # Paths ################################ -airdcpp_paths_folder: "{{ airdcpp_name }}"-airdcpp_paths_location: "{{ server_appdata_path }}/{{ airdcpp_paths_folder }}"-airdcpp_paths_folders_list:- - "{{ airdcpp_paths_location }}"- - /mnt/local/downloads/airdcpp- - /mnt/local/downloads/airdcpp/Movies- - /mnt/local/downloads/airdcpp/TV- - /mnt/local/downloads/airdcpp/4K- - /mnt/local/downloads/airdcpp/4K/Movies- - /mnt/local/downloads/airdcpp/4K/TV+airdcpp_role_paths_folder: "{{ airdcpp_name }}"+airdcpp_role_paths_location: "{{ server_appdata_path }}/{{ airdcpp_role_paths_folder }}"+airdcpp_role_paths_folders_list:+ - "{{ airdcpp_role_paths_location }}"+ - "{{ server_local_folder_path }}/downloads/airdcpp"+ - "{{ server_local_folder_path }}/downloads/airdcpp/Movies"+ - "{{ server_local_folder_path }}/downloads/airdcpp/TV"+ - "{{ server_local_folder_path }}/downloads/airdcpp/4K"+ - "{{ server_local_folder_path }}/downloads/airdcpp/4K/Movies"+ - "{{ server_local_folder_path }}/downloads/airdcpp/4K/TV" ################################ # Web ################################ -airdcpp_web_subdomain: "{{ airdcpp_name }}"-airdcpp_web_domain: "{{ user.domain }}"-airdcpp_web_port: "5600"-airdcpp_web_url: "{{ 'https://' + (airdcpp_web_subdomain + '.' + airdcpp_web_domain- if (airdcpp_web_subdomain | length > 0)- else airdcpp_web_domain) }}"+airdcpp_role_web_subdomain: "{{ airdcpp_name }}"+airdcpp_role_web_domain: "{{ user.domain }}"+airdcpp_role_web_port: "5600"+airdcpp_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='airdcpp') + '.' + lookup('role_var', '_web_domain', role='airdcpp')+ if (lookup('role_var', '_web_subdomain', role='airdcpp') | length > 0)+ else lookup('role_var', '_web_domain', role='airdcpp')) }}" ################################ # DNS ################################ -airdcpp_dns_record: "{{ airdcpp_web_subdomain }}"-airdcpp_dns_zone: "{{ airdcpp_web_domain }}"-airdcpp_dns_proxy: "{{ dns.proxied }}"+airdcpp_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='airdcpp') }}"+airdcpp_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='airdcpp') }}"+airdcpp_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -airdcpp_traefik_sso_middleware: ""-airdcpp_traefik_middleware_default: "{{ traefik_default_middleware }}"-airdcpp_traefik_middleware_custom: ""-airdcpp_traefik_certresolver: "{{ traefik_default_certresolver }}"-airdcpp_traefik_enabled: true-airdcpp_traefik_api_enabled: false-airdcpp_traefik_api_endpoint: ""+airdcpp_role_traefik_sso_middleware: ""+airdcpp_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+airdcpp_role_traefik_middleware_custom: ""+airdcpp_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+airdcpp_role_traefik_enabled: true+airdcpp_role_traefik_api_enabled: false+airdcpp_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-airdcpp_docker_container: "{{ airdcpp_name }}"+airdcpp_role_docker_container: "{{ airdcpp_name }}" # Image-airdcpp_docker_image_pull: true-airdcpp_docker_image_tag: "latest"-airdcpp_docker_image: "gangefors/airdcpp-webclient:{{ airdcpp_docker_image_tag }}"+airdcpp_role_docker_image_pull: true+airdcpp_role_docker_image_repo: "gangefors/airdcpp-webclient"+airdcpp_role_docker_image_tag: "latest"+airdcpp_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='airdcpp') }}:{{ lookup('role_var', '_docker_image_tag', role='airdcpp') }}" # Ports-airdcpp_docker_ports_defaults:+airdcpp_role_docker_ports_default: - "21248:21248" - "21248:21248/udp" - "21249:21249"-airdcpp_docker_ports_custom: []-airdcpp_docker_ports: "{{ airdcpp_docker_ports_defaults- + airdcpp_docker_ports_custom }}"+airdcpp_role_docker_ports_custom: []+airdcpp_role_docker_ports: "{{ lookup('role_var', '_docker_ports_default', role='airdcpp')+ + lookup('role_var', '_docker_ports_custom', role='airdcpp') }}" # Envs-airdcpp_docker_envs_default:+airdcpp_role_docker_envs_default: TZ: "{{ tz }}"-airdcpp_docker_envs_custom: {}-airdcpp_docker_envs: "{{ airdcpp_docker_envs_default- | combine(airdcpp_docker_envs_custom) }}"--# Commands-airdcpp_docker_commands_default: []-airdcpp_docker_commands_custom: []-airdcpp_docker_commands: "{{ airdcpp_docker_commands_default- + airdcpp_docker_commands_custom }}"+airdcpp_role_docker_envs_custom: {}+airdcpp_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='airdcpp')+ | combine(lookup('role_var', '_docker_envs_custom', role='airdcpp')) }}" # Volumes-airdcpp_docker_volumes_default:- - "{{ airdcpp_paths_location }}:/.airdcpp"- - "/mnt/local/downloads/airdcpp:/Downloads"-airdcpp_docker_volumes_custom: []-airdcpp_docker_volumes: "{{ airdcpp_docker_volumes_default- + airdcpp_docker_volumes_custom }}"--# Devices-airdcpp_docker_devices_default: []-airdcpp_docker_devices_custom: []-airdcpp_docker_devices: "{{ airdcpp_docker_devices_default- + airdcpp_docker_devices_custom }}"--# Hosts-airdcpp_docker_hosts_default: {}-airdcpp_docker_hosts_custom: {}-airdcpp_docker_hosts: "{{ docker_hosts_common- | combine(airdcpp_docker_hosts_default)- | combine(airdcpp_docker_hosts_custom) }}"--# Labels-airdcpp_docker_labels_default: {}-airdcpp_docker_labels_custom: {}-airdcpp_docker_labels: "{{ docker_labels_common- | combine(airdcpp_docker_labels_default)- | combine(airdcpp_docker_labels_custom) }}"+airdcpp_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='airdcpp') }}:/.airdcpp"+ - "/mnt/unionfs/downloads/airdcpp:/Downloads"+airdcpp_role_docker_volumes_custom: []+airdcpp_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='airdcpp')+ + lookup('role_var', '_docker_volumes_custom', role='airdcpp') }}" # Hostname-airdcpp_docker_hostname: "{{ airdcpp_name }}"+airdcpp_role_docker_hostname: "{{ airdcpp_name }}" # Networks-airdcpp_docker_networks_alias: "{{ airdcpp_name }}"-airdcpp_docker_networks_default: []-airdcpp_docker_networks_custom: []-airdcpp_docker_networks: "{{ docker_networks_common- + airdcpp_docker_networks_default- + airdcpp_docker_networks_custom }}"--# Capabilities-airdcpp_docker_capabilities_default: []-airdcpp_docker_capabilities_custom: []-airdcpp_docker_capabilities: "{{ airdcpp_docker_capabilities_default- + airdcpp_docker_capabilities_custom }}"--# Security Opts-airdcpp_docker_security_opts_default: []-airdcpp_docker_security_opts_custom: []-airdcpp_docker_security_opts: "{{ airdcpp_docker_security_opts_default- + airdcpp_docker_security_opts_custom }}"+airdcpp_role_docker_networks_alias: "{{ airdcpp_name }}"+airdcpp_role_docker_networks_default: []+airdcpp_role_docker_networks_custom: []+airdcpp_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='airdcpp')+ + lookup('role_var', '_docker_networks_custom', role='airdcpp') }}" # Restart Policy-airdcpp_docker_restart_policy: unless-stopped+airdcpp_role_docker_restart_policy: unless-stopped # State-airdcpp_docker_state: started+airdcpp_role_docker_state: started # User-airdcpp_docker_user: "{{ uid }}:{{ gid }}"+airdcpp_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/airdcpp/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -22,18 +22,18 @@ - name: Check WebServer.xml exists ansible.builtin.stat:- path: "/opt/airdcpp/WebServer.xml"+ path: "{{ lookup('role_var', '_paths_location', role='airdcpp') }}/WebServer.xml" register: webserver_xml - name: Check DCPlusPlus.xml exists ansible.builtin.stat:- path: "/opt/airdcpp/DCPlusPlus.xml"+ path: "{{ lookup('role_var', '_paths_location', role='airdcpp') }}/DCPlusPlus.xml" register: dcplusplus_xml - name: Import default 'WebServer.xml' ansible.builtin.copy: src: WebServer.xml- dest: /opt/airdcpp/WebServer.xml+ dest: "{{ lookup('role_var', '_paths_location', role='airdcpp') }}/WebServer.xml" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"@@ -43,7 +43,7 @@ - name: Import default 'DCPlusPlus.xml' ansible.builtin.copy: src: DCPlusPlus.xml- dest: /opt/airdcpp/DCPlusPlus.xml+ dest: "{{ lookup('role_var', '_paths_location', role='airdcpp') }}/DCPlusPlus.xml" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"
modified
roles/airsonic/defaults/main.yml
@@ -17,128 +17,85 @@ # Paths ################################ -airsonic_paths_folder: "{{ airsonic_name }}"-airsonic_paths_location: "{{ server_appdata_path }}/{{ airsonic_paths_folder }}"-airsonic_paths_folders_list:- - "{{ airsonic_paths_location }}"+airsonic_role_paths_folder: "{{ airsonic_name }}"+airsonic_role_paths_location: "{{ server_appdata_path }}/{{ airsonic_role_paths_folder }}"+airsonic_role_paths_folders_list:+ - "{{ airsonic_role_paths_location }}" ################################ # Web ################################ -airsonic_web_subdomain: "{{ airsonic_name }}"-airsonic_web_domain: "{{ user.domain }}"-airsonic_web_port: "4040"-airsonic_web_url: "{{ 'https://' + (airsonic_web_subdomain + '.' + airsonic_web_domain- if (airsonic_web_subdomain | length > 0)- else airsonic_web_domain) }}"+airsonic_role_web_subdomain: "{{ airsonic_name }}"+airsonic_role_web_domain: "{{ user.domain }}"+airsonic_role_web_port: "4040"+airsonic_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='airsonic') + '.' + lookup('role_var', '_web_domain', role='airsonic')+ if (lookup('role_var', '_web_subdomain', role='airsonic') | length > 0)+ else lookup('role_var', '_web_domain', role='airsonic')) }}" ################################ # DNS ################################ -airsonic_dns_record: "{{ airsonic_web_subdomain }}"-airsonic_dns_zone: "{{ airsonic_web_domain }}"-airsonic_dns_proxy: "{{ dns.proxied }}"+airsonic_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='airsonic') }}"+airsonic_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='airsonic') }}"+airsonic_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -airsonic_traefik_sso_middleware: ""-airsonic_traefik_middleware_default: "{{ traefik_default_middleware }}"-airsonic_traefik_middleware_custom: ""-airsonic_traefik_certresolver: "{{ traefik_default_certresolver }}"-airsonic_traefik_enabled: true-airsonic_traefik_api_enabled: false-airsonic_traefik_api_endpoint: ""+airsonic_role_traefik_sso_middleware: ""+airsonic_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+airsonic_role_traefik_middleware_custom: ""+airsonic_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+airsonic_role_traefik_enabled: true+airsonic_role_traefik_api_enabled: false+airsonic_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-airsonic_docker_container: "{{ airsonic_name }}"+airsonic_role_docker_container: "{{ airsonic_name }}" # Image-airsonic_docker_image_pull: true-airsonic_docker_image_tag: "latest"-airsonic_docker_image: "lscr.io/linuxserver/airsonic-advanced:{{ airsonic_docker_image_tag }}"--# Ports-airsonic_docker_ports_defaults: []-airsonic_docker_ports_custom: []-airsonic_docker_ports: "{{ airsonic_docker_ports_defaults- + airsonic_docker_ports_custom }}"+airsonic_role_docker_image_pull: true+airsonic_role_docker_image_repo: "lscr.io/linuxserver/airsonic-advanced"+airsonic_role_docker_image_tag: "latest"+airsonic_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='airsonic') }}:{{ lookup('role_var', '_docker_image_tag', role='airsonic') }}" # Envs-airsonic_docker_envs_default:+airsonic_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}" JAVA_OPTS: "-Dserver.use-forward-headers=true"-airsonic_docker_envs_custom: {}-airsonic_docker_envs: "{{ airsonic_docker_envs_default- | combine(airsonic_docker_envs_custom) }}"--# Commands-airsonic_docker_commands_default: []-airsonic_docker_commands_custom: []-airsonic_docker_commands: "{{ airsonic_docker_commands_default- + airsonic_docker_commands_custom }}"+airsonic_role_docker_envs_custom: {}+airsonic_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='airsonic')+ | combine(lookup('role_var', '_docker_envs_custom', role='airsonic')) }}" # Volumes-airsonic_docker_volumes_default:- - "{{ airsonic_paths_location }}:/config"-airsonic_docker_volumes_custom: []-airsonic_docker_volumes: "{{ airsonic_docker_volumes_default- + airsonic_docker_volumes_custom }}"--# Devices-airsonic_docker_devices_default: []-airsonic_docker_devices_custom: []-airsonic_docker_devices: "{{ airsonic_docker_devices_default- + airsonic_docker_devices_custom }}"--# Hosts-airsonic_docker_hosts_default: {}-airsonic_docker_hosts_custom: {}-airsonic_docker_hosts: "{{ docker_hosts_common- | combine(airsonic_docker_hosts_default)- | combine(airsonic_docker_hosts_custom) }}"--# Labels-airsonic_docker_labels_default: {}-airsonic_docker_labels_custom: {}-airsonic_docker_labels: "{{ docker_labels_common- | combine(airsonic_docker_labels_default)- | combine(airsonic_docker_labels_custom) }}"+airsonic_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='airsonic') }}:/config"+airsonic_role_docker_volumes_custom: []+airsonic_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='airsonic')+ + lookup('role_var', '_docker_volumes_custom', role='airsonic') }}" # Hostname-airsonic_docker_hostname: "{{ airsonic_name }}"+airsonic_role_docker_hostname: "{{ airsonic_name }}" # Networks-airsonic_docker_networks_alias: "{{ airsonic_name }}"-airsonic_docker_networks_default: []-airsonic_docker_networks_custom: []-airsonic_docker_networks: "{{ docker_networks_common- + airsonic_docker_networks_default- + airsonic_docker_networks_custom }}"--# Capabilities-airsonic_docker_capabilities_default: []-airsonic_docker_capabilities_custom: []-airsonic_docker_capabilities: "{{ airsonic_docker_capabilities_default- + airsonic_docker_capabilities_custom }}"--# Security Opts-airsonic_docker_security_opts_default: []-airsonic_docker_security_opts_custom: []-airsonic_docker_security_opts: "{{ airsonic_docker_security_opts_default- + airsonic_docker_security_opts_custom }}"+airsonic_role_docker_networks_alias: "{{ airsonic_name }}"+airsonic_role_docker_networks_default: []+airsonic_role_docker_networks_custom: []+airsonic_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='airsonic')+ + lookup('role_var', '_docker_networks_custom', role='airsonic') }}" # Restart Policy-airsonic_docker_restart_policy: unless-stopped+airsonic_role_docker_restart_policy: unless-stopped # State-airsonic_docker_state: started+airsonic_role_docker_state: started
modified
roles/airsonic/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/apprise/defaults/main.yml
@@ -17,125 +17,82 @@ # Paths ################################ -apprise_paths_folder: "{{ apprise_name }}"-apprise_paths_location: "{{ server_appdata_path }}/{{ apprise_paths_folder }}"-apprise_paths_folders_list:- - "{{ apprise_paths_location }}"+apprise_role_paths_folder: "{{ apprise_name }}"+apprise_role_paths_location: "{{ server_appdata_path }}/{{ apprise_role_paths_folder }}"+apprise_role_paths_folders_list:+ - "{{ apprise_role_paths_location }}" ################################ # Web ################################ -apprise_web_subdomain: "{{ apprise_name }}"-apprise_web_domain: "{{ user.domain }}"-apprise_web_port: "8000"-apprise_web_url: "{{ 'https://' + (apprise_web_subdomain + '.' + apprise_web_domain- if (apprise_web_subdomain | length > 0)- else apprise_web_domain) }}"+apprise_role_web_subdomain: "{{ apprise_name }}"+apprise_role_web_domain: "{{ user.domain }}"+apprise_role_web_port: "8000"+apprise_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='apprise') + '.' + lookup('role_var', '_web_domain', role='apprise')+ if (lookup('role_var', '_web_subdomain', role='apprise') | length > 0)+ else lookup('role_var', '_web_domain', role='apprise')) }}" ################################ # DNS ################################ -apprise_dns_record: "{{ apprise_web_subdomain }}"-apprise_dns_zone: "{{ apprise_web_domain }}"-apprise_dns_proxy: "{{ dns.proxied }}"+apprise_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='apprise') }}"+apprise_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='apprise') }}"+apprise_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -apprise_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-apprise_traefik_middleware_default: "{{ traefik_default_middleware }}"-apprise_traefik_middleware_custom: ""-apprise_traefik_certresolver: "{{ traefik_default_certresolver }}"-apprise_traefik_enabled: true+apprise_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+apprise_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+apprise_role_traefik_middleware_custom: ""+apprise_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+apprise_role_traefik_enabled: true ################################ # Docker ################################ # Container-apprise_docker_container: "{{ apprise_name }}"+apprise_role_docker_container: "{{ apprise_name }}" # Image-apprise_docker_image_pull: true-apprise_docker_image_tag: "latest"-apprise_docker_image: "lscr.io/linuxserver/apprise-api:{{ apprise_docker_image_tag }}"--# Ports-apprise_docker_ports_defaults: []-apprise_docker_ports_custom: []-apprise_docker_ports: "{{ apprise_docker_ports_defaults- + apprise_docker_ports_custom }}"+apprise_role_docker_image_pull: true+apprise_role_docker_image_repo: "lscr.io/linuxserver/apprise-api"+apprise_role_docker_image_tag: "latest"+apprise_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='apprise') }}:{{ lookup('role_var', '_docker_image_tag', role='apprise') }}" # Envs-apprise_docker_envs_default:+apprise_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-apprise_docker_envs_custom: {}-apprise_docker_envs: "{{ apprise_docker_envs_default- | combine(apprise_docker_envs_custom) }}"--# Commands-apprise_docker_commands_default: []-apprise_docker_commands_custom: []-apprise_docker_commands: "{{ apprise_docker_commands_default- + apprise_docker_commands_custom }}"+apprise_role_docker_envs_custom: {}+apprise_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='apprise')+ | combine(lookup('role_var', '_docker_envs_custom', role='apprise')) }}" # Volumes-apprise_docker_volumes_default:- - "{{ apprise_paths_location }}:/config"-apprise_docker_volumes_custom: []-apprise_docker_volumes: "{{ apprise_docker_volumes_default- + apprise_docker_volumes_custom }}"--# Devices-apprise_docker_devices_default: []-apprise_docker_devices_custom: []-apprise_docker_devices: "{{ apprise_docker_devices_default- + apprise_docker_devices_custom }}"--# Hosts-apprise_docker_hosts_default: {}-apprise_docker_hosts_custom: {}-apprise_docker_hosts: "{{ docker_hosts_common- | combine(apprise_docker_hosts_default)- | combine(apprise_docker_hosts_custom) }}"--# Labels-apprise_docker_labels_default: {}-apprise_docker_labels_custom: {}-apprise_docker_labels: "{{ docker_labels_common- | combine(apprise_docker_labels_default)- | combine(apprise_docker_labels_custom) }}"+apprise_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='apprise') }}:/config"+apprise_role_docker_volumes_custom: []+apprise_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='apprise')+ + lookup('role_var', '_docker_volumes_custom', role='apprise') }}" # Hostname-apprise_docker_hostname: "{{ apprise_name }}"+apprise_role_docker_hostname: "{{ apprise_name }}" # Networks-apprise_docker_networks_alias: "{{ apprise_name }}"-apprise_docker_networks_default: []-apprise_docker_networks_custom: []-apprise_docker_networks: "{{ docker_networks_common- + apprise_docker_networks_default- + apprise_docker_networks_custom }}"--# Capabilities-apprise_docker_capabilities_default: []-apprise_docker_capabilities_custom: []-apprise_docker_capabilities: "{{ apprise_docker_capabilities_default- + apprise_docker_capabilities_custom }}"--# Security Opts-apprise_docker_security_opts_default: []-apprise_docker_security_opts_custom: []-apprise_docker_security_opts: "{{ apprise_docker_security_opts_default- + apprise_docker_security_opts_custom }}"+apprise_role_docker_networks_alias: "{{ apprise_name }}"+apprise_role_docker_networks_default: []+apprise_role_docker_networks_custom: []+apprise_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='apprise')+ + lookup('role_var', '_docker_networks_custom', role='apprise') }}" # Restart Policy-apprise_docker_restart_policy: unless-stopped+apprise_role_docker_restart_policy: unless-stopped # State-apprise_docker_state: started+apprise_role_docker_state: started
modified
roles/apprise/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/archivebox/defaults/main.yml
@@ -17,125 +17,82 @@ # Paths ################################ -archivebox_paths_folder: "{{ archivebox_name }}"-archivebox_paths_location: "{{ server_appdata_path }}/{{ archivebox_paths_folder }}"-archivebox_paths_folders_list:- - "{{ archivebox_paths_location }}"+archivebox_role_paths_folder: "{{ archivebox_name }}"+archivebox_role_paths_location: "{{ server_appdata_path }}/{{ archivebox_role_paths_folder }}"+archivebox_role_paths_folders_list:+ - "{{ archivebox_role_paths_location }}" ################################ # Web ################################ -archivebox_web_subdomain: "{{ archivebox_name }}"-archivebox_web_domain: "{{ user.domain }}"-archivebox_web_port: "8000"-archivebox_web_url: "{{ 'https://' + (archivebox_web_subdomain + '.' + archivebox_web_domain- if (archivebox_web_subdomain | length > 0)- else archivebox_web_domain) }}"+archivebox_role_web_subdomain: "{{ archivebox_name }}"+archivebox_role_web_domain: "{{ user.domain }}"+archivebox_role_web_port: "8000"+archivebox_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='archivebox') + '.' + lookup('role_var', '_web_domain', role='archivebox')+ if (lookup('role_var', '_web_subdomain', role='archivebox') | length > 0)+ else lookup('role_var', '_web_domain', role='archivebox')) }}" ################################ # DNS ################################ -archivebox_dns_record: "{{ archivebox_web_subdomain }}"-archivebox_dns_zone: "{{ archivebox_web_domain }}"-archivebox_dns_proxy: "{{ dns.proxied }}"+archivebox_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='archivebox') }}"+archivebox_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='archivebox') }}"+archivebox_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -archivebox_traefik_sso_middleware: ""-archivebox_traefik_middleware_default: "{{ traefik_default_middleware }}"-archivebox_traefik_middleware_custom: ""-archivebox_traefik_certresolver: "{{ traefik_default_certresolver }}"-archivebox_traefik_enabled: true+archivebox_role_traefik_sso_middleware: ""+archivebox_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+archivebox_role_traefik_middleware_custom: ""+archivebox_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+archivebox_role_traefik_enabled: true ################################ # Docker ################################ # Container-archivebox_docker_container: "{{ archivebox_name }}"+archivebox_role_docker_container: "{{ archivebox_name }}" # Image-archivebox_docker_image_pull: true-archivebox_docker_image_tag: "latest"-archivebox_docker_image: "archivebox/archivebox:{{ archivebox_docker_image_tag }}"--# Ports-archivebox_docker_ports_defaults: []-archivebox_docker_ports_custom: []-archivebox_docker_ports: "{{ archivebox_docker_ports_defaults- + archivebox_docker_ports_custom }}"+archivebox_role_docker_image_pull: true+archivebox_role_docker_image_repo: "archivebox/archivebox"+archivebox_role_docker_image_tag: "latest"+archivebox_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='archivebox') }}:{{ lookup('role_var', '_docker_image_tag', role='archivebox') }}" # Envs-archivebox_docker_envs_default:+archivebox_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-archivebox_docker_envs_custom: {}-archivebox_docker_envs: "{{ archivebox_docker_envs_default- | combine(archivebox_docker_envs_custom) }}"--# Commands-archivebox_docker_commands_default: []-archivebox_docker_commands_custom: []-archivebox_docker_commands: "{{ archivebox_docker_commands_default- + archivebox_docker_commands_custom }}"+archivebox_role_docker_envs_custom: {}+archivebox_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='archivebox')+ | combine(lookup('role_var', '_docker_envs_custom', role='archivebox')) }}" # Volumes-archivebox_docker_volumes_default:- - "{{ archivebox_paths_location }}:/data"-archivebox_docker_volumes_custom: []-archivebox_docker_volumes: "{{ archivebox_docker_volumes_default- + archivebox_docker_volumes_custom }}"--# Devices-archivebox_docker_devices_default: []-archivebox_docker_devices_custom: []-archivebox_docker_devices: "{{ archivebox_docker_devices_default- + archivebox_docker_devices_custom }}"--# Hosts-archivebox_docker_hosts_default: {}-archivebox_docker_hosts_custom: {}-archivebox_docker_hosts: "{{ docker_hosts_common- | combine(archivebox_docker_hosts_default)- | combine(archivebox_docker_hosts_custom) }}"--# Labels-archivebox_docker_labels_default: {}-archivebox_docker_labels_custom: {}-archivebox_docker_labels: "{{ docker_labels_common- | combine(archivebox_docker_labels_default)- | combine(archivebox_docker_labels_custom) }}"+archivebox_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='archivebox') }}:/data"+archivebox_role_docker_volumes_custom: []+archivebox_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='archivebox')+ + lookup('role_var', '_docker_volumes_custom', role='archivebox') }}" # Hostname-archivebox_docker_hostname: "{{ archivebox_name }}"+archivebox_role_docker_hostname: "{{ archivebox_name }}" # Networks-archivebox_docker_networks_alias: "{{ archivebox_name }}"-archivebox_docker_networks_default: []-archivebox_docker_networks_custom: []-archivebox_docker_networks: "{{ docker_networks_common- + archivebox_docker_networks_default- + archivebox_docker_networks_custom }}"--# Capabilities-archivebox_docker_capabilities_default: []-archivebox_docker_capabilities_custom: []-archivebox_docker_capabilities: "{{ archivebox_docker_capabilities_default- + archivebox_docker_capabilities_custom }}"--# Security Opts-archivebox_docker_security_opts_default: []-archivebox_docker_security_opts_custom: []-archivebox_docker_security_opts: "{{ archivebox_docker_security_opts_default- + archivebox_docker_security_opts_custom }}"+archivebox_role_docker_networks_alias: "{{ archivebox_name }}"+archivebox_role_docker_networks_default: []+archivebox_role_docker_networks_custom: []+archivebox_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='archivebox')+ + lookup('role_var', '_docker_networks_custom', role='archivebox') }}" # Restart Policy-archivebox_docker_restart_policy: unless-stopped+archivebox_role_docker_restart_policy: unless-stopped # State-archivebox_docker_state: started+archivebox_role_docker_state: started
modified
roles/archivebox/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/audiobookshelf/defaults/main.yml
@@ -17,136 +17,91 @@ # Paths ################################ -audiobookshelf_paths_folder: "{{ audiobookshelf_name }}"-audiobookshelf_paths_location: "{{ server_appdata_path }}/{{ audiobookshelf_paths_folder }}"-audiobookshelf_paths_folders_list:- - "{{ audiobookshelf_paths_location }}"- - "{{ audiobookshelf_paths_location }}/config"- - "{{ audiobookshelf_paths_location }}/metadata"+audiobookshelf_role_paths_folder: "{{ audiobookshelf_name }}"+audiobookshelf_role_paths_location: "{{ server_appdata_path }}/{{ audiobookshelf_role_paths_folder }}"+audiobookshelf_role_paths_folders_list:+ - "{{ audiobookshelf_role_paths_location }}"+ - "{{ audiobookshelf_role_paths_location }}/config"+ - "{{ audiobookshelf_role_paths_location }}/metadata" - "/mnt/unionfs/Media/Audiobooks" - "/mnt/unionfs/Media/Podcasts"-audiobookshelf_paths_recursive: true+audiobookshelf_role_paths_recursive: true ################################ # Web ################################ -audiobookshelf_web_subdomain: "{{ audiobookshelf_name }}"-audiobookshelf_web_domain: "{{ user.domain }}"-audiobookshelf_web_port: "80"-audiobookshelf_web_url: "{{ 'https://' + (audiobookshelf_web_subdomain + '.' + audiobookshelf_web_domain- if (audiobookshelf_web_subdomain | length > 0)- else audiobookshelf_web_domain) }}"+audiobookshelf_role_web_subdomain: "{{ audiobookshelf_name }}"+audiobookshelf_role_web_domain: "{{ user.domain }}"+audiobookshelf_role_web_port: "80"+audiobookshelf_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='audiobookshelf') + '.' + lookup('role_var', '_web_domain', role='audiobookshelf')+ if (lookup('role_var', '_web_subdomain', role='audiobookshelf') | length > 0)+ else lookup('role_var', '_web_domain', role='audiobookshelf')) }}" ################################ # DNS ################################ -audiobookshelf_dns_record: "{{ lookup('vars', audiobookshelf_name + '_web_subdomain', default=audiobookshelf_web_subdomain) }}"-audiobookshelf_dns_zone: "{{ lookup('vars', audiobookshelf_name + '_web_domain', default=audiobookshelf_web_domain) }}"-audiobookshelf_dns_proxy: "{{ dns.proxied }}"+audiobookshelf_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='audiobookshelf') }}"+audiobookshelf_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='audiobookshelf') }}"+audiobookshelf_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -audiobookshelf_traefik_sso_middleware: ""-audiobookshelf_traefik_middleware_default: "{{ traefik_default_middleware }}"-audiobookshelf_traefik_middleware_custom: ""-audiobookshelf_traefik_certresolver: "{{ traefik_default_certresolver }}"-audiobookshelf_traefik_enabled: true+audiobookshelf_role_traefik_sso_middleware: ""+audiobookshelf_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+audiobookshelf_role_traefik_middleware_custom: ""+audiobookshelf_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+audiobookshelf_role_traefik_enabled: true ################################ # Docker ################################ # Container-audiobookshelf_docker_container: "{{ audiobookshelf_name }}"+audiobookshelf_role_docker_container: "{{ audiobookshelf_name }}" # Image-audiobookshelf_docker_image_pull: true-audiobookshelf_docker_image_repo: "ghcr.io/advplyr/audiobookshelf"-audiobookshelf_docker_image_tag: "latest"-audiobookshelf_docker_image: "{{ lookup('vars', audiobookshelf_name + '_docker_image_repo', default=audiobookshelf_docker_image_repo)- + ':' + lookup('vars', audiobookshelf_name + '_docker_image_tag', default=audiobookshelf_docker_image_tag) }}"--# Ports-audiobookshelf_docker_ports_defaults: []-audiobookshelf_docker_ports_custom: []-audiobookshelf_docker_ports: "{{ lookup('vars', audiobookshelf_name + '_docker_ports_defaults', default=audiobookshelf_docker_ports_defaults)- + lookup('vars', audiobookshelf_name + '_docker_ports_custom', default=audiobookshelf_docker_ports_custom) }}"+audiobookshelf_role_docker_image_pull: true+audiobookshelf_role_docker_image_repo: "ghcr.io/advplyr/audiobookshelf"+audiobookshelf_role_docker_image_tag: "latest"+audiobookshelf_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='audiobookshelf') }}:{{ lookup('role_var', '_docker_image_tag', role='audiobookshelf') }}" # Envs-audiobookshelf_docker_envs_default:+audiobookshelf_role_docker_envs_default: TZ: "{{ tz }}"-audiobookshelf_docker_envs_custom: {}-audiobookshelf_docker_envs: "{{ lookup('vars', audiobookshelf_name + '_docker_envs_default', default=audiobookshelf_docker_envs_default)- | combine(lookup('vars', audiobookshelf_name + '_docker_envs_custom', default=audiobookshelf_docker_envs_custom)) }}"--# Commands-audiobookshelf_docker_commands_default: []-audiobookshelf_docker_commands_custom: []-audiobookshelf_docker_commands: "{{ lookup('vars', audiobookshelf_name + '_docker_commands_default', default=audiobookshelf_docker_commands_default)- + lookup('vars', audiobookshelf_name + '_docker_commands_custom', default=audiobookshelf_docker_commands_custom) }}"+audiobookshelf_role_docker_envs_custom: {}+audiobookshelf_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='audiobookshelf')+ | combine(lookup('role_var', '_docker_envs_custom', role='audiobookshelf')) }}" # Volumes-audiobookshelf_docker_volumes_default:- - "{{ audiobookshelf_paths_location }}/config:/config"- - "{{ audiobookshelf_paths_location }}/metadata:/metadata"+audiobookshelf_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='audiobookshelf') }}/config:/config"+ - "{{ lookup('role_var', '_paths_location', role='audiobookshelf') }}/metadata:/metadata" - "/mnt/unionfs/Media/Audiobooks:/audiobooks" - "/mnt/unionfs/Media/Podcasts:/podcasts"-audiobookshelf_docker_volumes_custom: []-audiobookshelf_docker_volumes: "{{ lookup('vars', audiobookshelf_name + '_docker_volumes_default', default=audiobookshelf_docker_volumes_default)- + lookup('vars', audiobookshelf_name + '_docker_volumes_custom', default=audiobookshelf_docker_volumes_custom) }}"--# Devices-audiobookshelf_docker_devices_default: []-audiobookshelf_docker_devices_custom: []-audiobookshelf_docker_devices: "{{ lookup('vars', audiobookshelf_name + '_docker_devices_default', default=audiobookshelf_docker_devices_default)- + lookup('vars', audiobookshelf_name + '_docker_devices_custom', default=audiobookshelf_docker_devices_custom) }}"--# Hosts-audiobookshelf_docker_hosts_default: {}-audiobookshelf_docker_hosts_custom: {}-audiobookshelf_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', audiobookshelf_name + '_docker_hosts_default', default=audiobookshelf_docker_hosts_default))- | combine(lookup('vars', audiobookshelf_name + '_docker_hosts_custom', default=audiobookshelf_docker_hosts_custom)) }}"--# Labels-audiobookshelf_docker_labels_default: {}-audiobookshelf_docker_labels_custom: {}-audiobookshelf_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', audiobookshelf_name + '_docker_labels_default', default=audiobookshelf_docker_labels_default))- | combine(lookup('vars', audiobookshelf_name + '_docker_labels_custom', default=audiobookshelf_docker_labels_custom)) }}"+audiobookshelf_role_docker_volumes_custom: []+audiobookshelf_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='audiobookshelf')+ + lookup('role_var', '_docker_volumes_custom', role='audiobookshelf') }}" # Hostname-audiobookshelf_docker_hostname: "{{ audiobookshelf_name }}"+audiobookshelf_role_docker_hostname: "{{ audiobookshelf_name }}" # Networks-audiobookshelf_docker_networks_alias: "{{ audiobookshelf_name }}"-audiobookshelf_docker_networks_default: []-audiobookshelf_docker_networks_custom: []-audiobookshelf_docker_networks: "{{ docker_networks_common- + lookup('vars', audiobookshelf_name + '_docker_networks_default', default=audiobookshelf_docker_networks_default)- + lookup('vars', audiobookshelf_name + '_docker_networks_custom', default=audiobookshelf_docker_networks_custom) }}"--# Capabilities-audiobookshelf_docker_capabilities_default: []-audiobookshelf_docker_capabilities_custom: []-audiobookshelf_docker_capabilities: "{{ lookup('vars', audiobookshelf_name + '_docker_capabilities_default', default=audiobookshelf_docker_capabilities_default)- + lookup('vars', audiobookshelf_name + '_docker_capabilities_custom', default=audiobookshelf_docker_capabilities_custom) }}"--# Security Opts-audiobookshelf_docker_security_opts_default: []-audiobookshelf_docker_security_opts_custom: []-audiobookshelf_docker_security_opts: "{{ lookup('vars', audiobookshelf_name + '_docker_security_opts_default', default=audiobookshelf_docker_security_opts_default)- + lookup('vars', audiobookshelf_name + '_docker_security_opts_custom', default=audiobookshelf_docker_security_opts_custom) }}"+audiobookshelf_role_docker_networks_alias: "{{ audiobookshelf_name }}"+audiobookshelf_role_docker_networks_default: []+audiobookshelf_role_docker_networks_custom: []+audiobookshelf_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='audiobookshelf')+ + lookup('role_var', '_docker_networks_custom', role='audiobookshelf') }}" # Restart Policy-audiobookshelf_docker_restart_policy: unless-stopped+audiobookshelf_role_docker_restart_policy: unless-stopped # State-audiobookshelf_docker_state: started+audiobookshelf_role_docker_state: started # User-audiobookshelf_docker_user: "{{ uid }}:{{ gid }}"+audiobookshelf_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/audiobookshelf/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/barcodebuddy/defaults/main.yml
@@ -17,125 +17,82 @@ # Paths ################################ -barcodebuddy_paths_folder: "{{ barcodebuddy_name }}"-barcodebuddy_paths_location: "{{ server_appdata_path }}/{{ barcodebuddy_paths_folder }}"-barcodebuddy_paths_folders_list:- - "{{ barcodebuddy_paths_location }}"+barcodebuddy_role_paths_folder: "{{ barcodebuddy_name }}"+barcodebuddy_role_paths_location: "{{ server_appdata_path }}/{{ barcodebuddy_role_paths_folder }}"+barcodebuddy_role_paths_folders_list:+ - "{{ barcodebuddy_role_paths_location }}" ################################ # Web ################################ -barcodebuddy_web_subdomain: "{{ barcodebuddy_name }}"-barcodebuddy_web_domain: "{{ user.domain }}"-barcodebuddy_web_port: "80"-barcodebuddy_web_url: "{{ 'https://' + (barcodebuddy_web_subdomain + '.' + barcodebuddy_web_domain- if (barcodebuddy_web_subdomain | length > 0)- else barcodebuddy_web_domain) }}"+barcodebuddy_role_web_subdomain: "{{ barcodebuddy_name }}"+barcodebuddy_role_web_domain: "{{ user.domain }}"+barcodebuddy_role_web_port: "80"+barcodebuddy_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='barcodebuddy') + '.' + lookup('role_var', '_web_domain', role='barcodebuddy')+ if (lookup('role_var', '_web_subdomain', role='barcodebuddy') | length > 0)+ else lookup('role_var', '_web_domain', role='barcodebuddy')) }}" ################################ # DNS ################################ -barcodebuddy_dns_record: "{{ barcodebuddy_web_subdomain }}"-barcodebuddy_dns_zone: "{{ barcodebuddy_web_domain }}"-barcodebuddy_dns_proxy: "{{ dns.proxied }}"+barcodebuddy_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='barcodebuddy') }}"+barcodebuddy_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='barcodebuddy') }}"+barcodebuddy_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -barcodebuddy_traefik_sso_middleware: ""-barcodebuddy_traefik_middleware_default: "{{ traefik_default_middleware }}"-barcodebuddy_traefik_middleware_custom: ""-barcodebuddy_traefik_certresolver: "{{ traefik_default_certresolver }}"-barcodebuddy_traefik_enabled: true+barcodebuddy_role_traefik_sso_middleware: ""+barcodebuddy_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+barcodebuddy_role_traefik_middleware_custom: ""+barcodebuddy_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+barcodebuddy_role_traefik_enabled: true ################################ # Docker ################################ # Container-barcodebuddy_docker_container: "{{ barcodebuddy_name }}"+barcodebuddy_role_docker_container: "{{ barcodebuddy_name }}" # Image-barcodebuddy_docker_image_pull: true-barcodebuddy_docker_image_tag: "latest"-barcodebuddy_docker_image: "f0rc3/barcodebuddy:{{ barcodebuddy_docker_image_tag }}"--# Ports-barcodebuddy_docker_ports_defaults: []-barcodebuddy_docker_ports_custom: []-barcodebuddy_docker_ports: "{{ barcodebuddy_docker_ports_defaults- + barcodebuddy_docker_ports_custom }}"+barcodebuddy_role_docker_image_pull: true+barcodebuddy_role_docker_image_repo: "f0rc3/barcodebuddy"+barcodebuddy_role_docker_image_tag: "latest"+barcodebuddy_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='barcodebuddy') }}:{{ lookup('role_var', '_docker_image_tag', role='barcodebuddy') }}" # Envs-barcodebuddy_docker_envs_default:+barcodebuddy_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-barcodebuddy_docker_envs_custom: {}-barcodebuddy_docker_envs: "{{ barcodebuddy_docker_envs_default- | combine(barcodebuddy_docker_envs_custom) }}"--# Commands-barcodebuddy_docker_commands_default: []-barcodebuddy_docker_commands_custom: []-barcodebuddy_docker_commands: "{{ barcodebuddy_docker_commands_default- + barcodebuddy_docker_commands_custom }}"+barcodebuddy_role_docker_envs_custom: {}+barcodebuddy_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='barcodebuddy')+ | combine(lookup('role_var', '_docker_envs_custom', role='barcodebuddy')) }}" # Volumes-barcodebuddy_docker_volumes_default:- - "{{ barcodebuddy_paths_location }}:/config"-barcodebuddy_docker_volumes_custom: []-barcodebuddy_docker_volumes: "{{ barcodebuddy_docker_volumes_default- + barcodebuddy_docker_volumes_custom }}"--# Devices-barcodebuddy_docker_devices_default: []-barcodebuddy_docker_devices_custom: []-barcodebuddy_docker_devices: "{{ barcodebuddy_docker_devices_default- + barcodebuddy_docker_devices_custom }}"--# Hosts-barcodebuddy_docker_hosts_default: {}-barcodebuddy_docker_hosts_custom: {}-barcodebuddy_docker_hosts: "{{ docker_hosts_common- | combine(barcodebuddy_docker_hosts_default)- | combine(barcodebuddy_docker_hosts_custom) }}"--# Labels-barcodebuddy_docker_labels_default: {}-barcodebuddy_docker_labels_custom: {}-barcodebuddy_docker_labels: "{{ docker_labels_common- | combine(barcodebuddy_docker_labels_default)- | combine(barcodebuddy_docker_labels_custom) }}"+barcodebuddy_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='barcodebuddy') }}:/config"+barcodebuddy_role_docker_volumes_custom: []+barcodebuddy_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='barcodebuddy')+ + lookup('role_var', '_docker_volumes_custom', role='barcodebuddy') }}" # Hostname-barcodebuddy_docker_hostname: "{{ barcodebuddy_name }}"+barcodebuddy_role_docker_hostname: "{{ barcodebuddy_name }}" # Networks-barcodebuddy_docker_networks_alias: "{{ barcodebuddy_name }}"-barcodebuddy_docker_networks_default: []-barcodebuddy_docker_networks_custom: []-barcodebuddy_docker_networks: "{{ docker_networks_common- + barcodebuddy_docker_networks_default- + barcodebuddy_docker_networks_custom }}"--# Capabilities-barcodebuddy_docker_capabilities_default: []-barcodebuddy_docker_capabilities_custom: []-barcodebuddy_docker_capabilities: "{{ barcodebuddy_docker_capabilities_default- + barcodebuddy_docker_capabilities_custom }}"--# Security Opts-barcodebuddy_docker_security_opts_default: []-barcodebuddy_docker_security_opts_custom: []-barcodebuddy_docker_security_opts: "{{ barcodebuddy_docker_security_opts_default- + barcodebuddy_docker_security_opts_custom }}"+barcodebuddy_role_docker_networks_alias: "{{ barcodebuddy_name }}"+barcodebuddy_role_docker_networks_default: []+barcodebuddy_role_docker_networks_custom: []+barcodebuddy_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='barcodebuddy')+ + lookup('role_var', '_docker_networks_custom', role='barcodebuddy') }}" # Restart Policy-barcodebuddy_docker_restart_policy: unless-stopped+barcodebuddy_role_docker_restart_policy: unless-stopped # State-barcodebuddy_docker_state: started+barcodebuddy_role_docker_state: started
modified
roles/barcodebuddy/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/beets/defaults/main.yml
@@ -17,127 +17,84 @@ # Paths ################################ -beets_paths_folder: "{{ beets_name }}"-beets_paths_location: "{{ server_appdata_path }}/{{ beets_paths_folder }}"-beets_paths_folders_list:- - "{{ beets_paths_location }}"- - "/mnt/local/downloads/music"+beets_role_paths_folder: "{{ beets_name }}"+beets_role_paths_location: "{{ server_appdata_path }}/{{ beets_role_paths_folder }}"+beets_role_paths_folders_list:+ - "{{ beets_role_paths_location }}"+ - "{{ server_local_folder_path }}/downloads/music" ################################ # Web ################################ -beets_web_subdomain: "{{ beets_name }}"-beets_web_domain: "{{ user.domain }}"-beets_web_port: "8337"-beets_web_url: "{{ 'https://' + (beets_web_subdomain + '.' + beets_web_domain- if (beets_web_subdomain | length > 0)- else beets_web_domain) }}"+beets_role_web_subdomain: "{{ beets_name }}"+beets_role_web_domain: "{{ user.domain }}"+beets_role_web_port: "8337"+beets_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='beets') + '.' + lookup('role_var', '_web_domain', role='beets')+ if (lookup('role_var', '_web_subdomain', role='beets') | length > 0)+ else lookup('role_var', '_web_domain', role='beets')) }}" ################################ # DNS ################################ -beets_dns_record: "{{ beets_web_subdomain }}"-beets_dns_zone: "{{ beets_web_domain }}"-beets_dns_proxy: "{{ dns.proxied }}"+beets_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='beets') }}"+beets_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='beets') }}"+beets_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -beets_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-beets_traefik_middleware_default: "{{ traefik_default_middleware }}"-beets_traefik_middleware_custom: ""-beets_traefik_certresolver: "{{ traefik_default_certresolver }}"-beets_traefik_enabled: true+beets_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+beets_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+beets_role_traefik_middleware_custom: ""+beets_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+beets_role_traefik_enabled: true ################################ # Docker ################################ # Container-beets_docker_container: "{{ beets_name }}"+beets_role_docker_container: "{{ beets_name }}" # Image-beets_docker_image_pull: true-beets_docker_image_tag: "latest"-beets_docker_image: "lscr.io/linuxserver/beets:{{ beets_docker_image_tag }}"--# Ports-beets_docker_ports_defaults: []-beets_docker_ports_custom: []-beets_docker_ports: "{{ beets_docker_ports_defaults- + beets_docker_ports_custom }}"+beets_role_docker_image_pull: true+beets_role_docker_image_repo: "lscr.io/linuxserver/beets"+beets_role_docker_image_tag: "latest"+beets_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='beets') }}:{{ lookup('role_var', '_docker_image_tag', role='beets') }}" # Envs-beets_docker_envs_default:+beets_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-beets_docker_envs_custom: {}-beets_docker_envs: "{{ beets_docker_envs_default- | combine(beets_docker_envs_custom) }}"--# Commands-beets_docker_commands_default: []-beets_docker_commands_custom: []-beets_docker_commands: "{{ beets_docker_commands_default- + beets_docker_commands_custom }}"+beets_role_docker_envs_custom: {}+beets_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='beets')+ | combine(lookup('role_var', '_docker_envs_custom', role='beets')) }}" # Volumes-beets_docker_volumes_default:- - "{{ beets_paths_location }}:/config"+beets_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='beets') }}:/config" - "/mnt/unionfs/Media/Music:/music"-beets_docker_volumes_custom: []-beets_docker_volumes: "{{ beets_docker_volumes_default- + beets_docker_volumes_custom }}"--# Devices-beets_docker_devices_default: []-beets_docker_devices_custom: []-beets_docker_devices: "{{ beets_docker_devices_default- + beets_docker_devices_custom }}"--# Hosts-beets_docker_hosts_default: {}-beets_docker_hosts_custom: {}-beets_docker_hosts: "{{ docker_hosts_common- | combine(beets_docker_hosts_default)- | combine(beets_docker_hosts_custom) }}"--# Labels-beets_docker_labels_default: {}-beets_docker_labels_custom: {}-beets_docker_labels: "{{ docker_labels_common- | combine(beets_docker_labels_default)- | combine(beets_docker_labels_custom) }}"+beets_role_docker_volumes_custom: []+beets_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='beets')+ + lookup('role_var', '_docker_volumes_custom', role='beets') }}" # Hostname-beets_docker_hostname: "{{ beets_name }}"+beets_role_docker_hostname: "{{ beets_name }}" # Networks-beets_docker_networks_alias: "{{ beets_name }}"-beets_docker_networks_default: []-beets_docker_networks_custom: []-beets_docker_networks: "{{ docker_networks_common- + beets_docker_networks_default- + beets_docker_networks_custom }}"--# Capabilities-beets_docker_capabilities_default: []-beets_docker_capabilities_custom: []-beets_docker_capabilities: "{{ beets_docker_capabilities_default- + beets_docker_capabilities_custom }}"--# Security Opts-beets_docker_security_opts_default: []-beets_docker_security_opts_custom: []-beets_docker_security_opts: "{{ beets_docker_security_opts_default- + beets_docker_security_opts_custom }}"+beets_role_docker_networks_alias: "{{ beets_name }}"+beets_role_docker_networks_default: []+beets_role_docker_networks_custom: []+beets_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='beets')+ + lookup('role_var', '_docker_networks_custom', role='beets') }}" # Restart Policy-beets_docker_restart_policy: unless-stopped+beets_role_docker_restart_policy: unless-stopped # State-beets_docker_state: started+beets_role_docker_state: started
modified
roles/beets/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -28,12 +28,12 @@ name: "Beets Import" user: "{{ user.name }}" special_time: hourly- job: "docker exec -u abc {{ lookup('vars', role_name + '_name') }} /bin/bash -c 'beet import -q /downloads'"+ job: "docker exec -u abc {{ lookup('role_var', '_docker_container', role='beets') }} /bin/bash -c 'beet import -q /downloads'" state: present - name: Wait for config.yaml to be created ansible.builtin.wait_for:- path: "/opt/{{ lookup('vars', role_name + '_name') }}/config.yaml"+ path: "{{ lookup('role_var', '_paths_location', role='beets') }}/config.yaml" state: present - name: Stop Docker container@@ -41,7 +41,7 @@ - name: Set filename length ansible.builtin.lineinfile:- path: "/opt/{{ lookup('vars', role_name + '_name') }}/config.yaml"+ path: "{{ lookup('role_var', '_paths_location', role='beets') }}/config.yaml" line: "max_filename_length: 255" insertafter: per_disc* state: present
modified
roles/booksonic/defaults/main.yml
@@ -17,129 +17,92 @@ # Paths ################################ -booksonic_paths_folder: "{{ booksonic_name }}"-booksonic_paths_location: "{{ server_appdata_path }}/{{ booksonic_paths_folder }}"-booksonic_paths_folders_list:- - "{{ booksonic_paths_location }}"+booksonic_role_paths_folder: "{{ booksonic_name }}"+booksonic_role_paths_location: "{{ server_appdata_path }}/{{ booksonic_role_paths_folder }}"+booksonic_role_paths_folders_list:+ - "{{ booksonic_role_paths_location }}" ################################ # Web ################################ -booksonic_web_subdomain: "{{ booksonic_name }}"-booksonic_web_domain: "{{ user.domain }}"-booksonic_web_port: "4040"-booksonic_web_url: "{{ 'https://' + (booksonic_web_subdomain + '.' + booksonic_web_domain- if (booksonic_web_subdomain | length > 0)- else booksonic_web_domain) }}"+booksonic_role_web_subdomain: "{{ booksonic_name }}"+booksonic_role_web_domain: "{{ user.domain }}"+booksonic_role_web_port: "4040"+booksonic_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='booksonic') + '.' + lookup('role_var', '_web_domain', role='booksonic')+ if (lookup('role_var', '_web_subdomain', role='booksonic') | length > 0)+ else lookup('role_var', '_web_domain', role='booksonic')) }}" ################################ # DNS ################################ -booksonic_dns_record: "{{ booksonic_web_subdomain }}"-booksonic_dns_zone: "{{ booksonic_web_domain }}"-booksonic_dns_proxy: "{{ dns.proxied }}"+booksonic_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='booksonic') }}"+booksonic_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='booksonic') }}"+booksonic_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -booksonic_traefik_sso_middleware: ""-booksonic_traefik_middleware_default: "{{ traefik_default_middleware }}"-booksonic_traefik_middleware_custom: ""-booksonic_traefik_certresolver: "{{ traefik_default_certresolver }}"-booksonic_traefik_enabled: true+booksonic_role_traefik_sso_middleware: ""+booksonic_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+booksonic_role_traefik_middleware_custom: ""+booksonic_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+booksonic_role_traefik_enabled: true ################################ # Docker ################################ # Container-booksonic_docker_container: "{{ booksonic_name }}"+booksonic_role_docker_container: "{{ booksonic_name }}" # Image-booksonic_docker_image_pull: true-booksonic_docker_image_tag: "2201.1.0"-booksonic_docker_image: "lscr.io/linuxserver/booksonic-air:{{ booksonic_docker_image_tag }}"+booksonic_role_docker_image_pull: true+booksonic_role_docker_image_repo: "lscr.io/linuxserver/booksonic-air"+booksonic_role_docker_image_tag: "2201.1.0"+booksonic_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='booksonic') }}:{{ lookup('role_var', '_docker_image_tag', role='booksonic') }}" # Ports-booksonic_docker_ports_defaults: []-booksonic_docker_ports_custom: []-booksonic_docker_ports: "{{ booksonic_docker_ports_defaults- + booksonic_docker_ports_custom }}"+booksonic_role_docker_ports_default: []+booksonic_role_docker_ports_custom: []+booksonic_role_docker_ports: "{{ lookup('role_var', '_docker_ports_default', role='booksonic')+ + lookup('role_var', '_docker_ports_custom', role='booksonic') }}" # Envs-booksonic_docker_envs_default:+booksonic_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}" JAVA_OPTS: "-Dserver.use-forward-headers=true"-booksonic_docker_envs_custom: {}-booksonic_docker_envs: "{{ booksonic_docker_envs_default- | combine(booksonic_docker_envs_custom) }}"--# Commands-booksonic_docker_commands_default: []-booksonic_docker_commands_custom: []-booksonic_docker_commands: "{{ booksonic_docker_commands_default- + booksonic_docker_commands_custom }}"+booksonic_role_docker_envs_custom: {}+booksonic_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='booksonic')+ | combine(lookup('role_var', '_docker_envs_custom', role='booksonic')) }}" # Volumes-booksonic_docker_volumes_default:- - "{{ booksonic_paths_location }}:/config"+booksonic_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='booksonic') }}:/config" - "/mnt/unionfs/Media/Audiobooks:/audiobooks" - "/mnt/unionfs/Media/Podcasts:/podcasts" - "/mnt/unionfs/Media:/othermedia"-booksonic_docker_volumes_custom: []-booksonic_docker_volumes: "{{ booksonic_docker_volumes_default- + booksonic_docker_volumes_custom }}"--# Devices-booksonic_docker_devices_default: []-booksonic_docker_devices_custom: []-booksonic_docker_devices: "{{ booksonic_docker_devices_default- + booksonic_docker_devices_custom }}"--# Hosts-booksonic_docker_hosts_default: {}-booksonic_docker_hosts_custom: {}-booksonic_docker_hosts: "{{ docker_hosts_common- | combine(booksonic_docker_hosts_default)- | combine(booksonic_docker_hosts_custom) }}"--# Labels-booksonic_docker_labels_default: {}-booksonic_docker_labels_custom: {}-booksonic_docker_labels: "{{ docker_labels_common- | combine(booksonic_docker_labels_default)- | combine(booksonic_docker_labels_custom) }}"+booksonic_role_docker_volumes_custom: []+booksonic_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='booksonic')+ + lookup('role_var', '_docker_volumes_custom', role='booksonic') }}" # Hostname-booksonic_docker_hostname: "{{ booksonic_name }}"+booksonic_role_docker_hostname: "{{ booksonic_name }}" # Networks-booksonic_docker_networks_alias: "{{ booksonic_name }}"-booksonic_docker_networks_default: []-booksonic_docker_networks_custom: []-booksonic_docker_networks: "{{ docker_networks_common- + booksonic_docker_networks_default- + booksonic_docker_networks_custom }}"--# Capabilities-booksonic_docker_capabilities_default: []-booksonic_docker_capabilities_custom: []-booksonic_docker_capabilities: "{{ booksonic_docker_capabilities_default- + booksonic_docker_capabilities_custom }}"--# Security Opts-booksonic_docker_security_opts_default: []-booksonic_docker_security_opts_custom: []-booksonic_docker_security_opts: "{{ booksonic_docker_security_opts_default- + booksonic_docker_security_opts_custom }}"+booksonic_role_docker_networks_alias: "{{ booksonic_name }}"+booksonic_role_docker_networks_default: []+booksonic_role_docker_networks_custom: []+booksonic_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='booksonic')+ + lookup('role_var', '_docker_networks_custom', role='booksonic') }}" # Restart Policy-booksonic_docker_restart_policy: unless-stopped+booksonic_role_docker_restart_policy: unless-stopped # State-booksonic_docker_state: started+booksonic_role_docker_state: started
modified
roles/booksonic/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/bookstack/defaults/main.yml
@@ -17,137 +17,94 @@ # Paths ################################ -bookstack_paths_folder: "{{ bookstack_name }}"-bookstack_paths_location: "{{ server_appdata_path }}/{{ bookstack_paths_folder }}"-bookstack_paths_folders_list:- - "{{ bookstack_paths_location }}"+bookstack_role_paths_folder: "{{ bookstack_name }}"+bookstack_role_paths_location: "{{ server_appdata_path }}/{{ bookstack_role_paths_folder }}"+bookstack_role_paths_folders_list:+ - "{{ bookstack_role_paths_location }}" ################################ # Web ################################ -bookstack_web_subdomain: "{{ bookstack_name }}"-bookstack_web_domain: "{{ user.domain }}"-bookstack_web_port: "80"-bookstack_web_url: "{{ 'https://' + (bookstack_web_subdomain + '.' + bookstack_web_domain- if (bookstack_web_subdomain | length > 0)- else bookstack_web_domain) }}"+bookstack_role_web_subdomain: "{{ bookstack_name }}"+bookstack_role_web_domain: "{{ user.domain }}"+bookstack_role_web_port: "80"+bookstack_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='bookstack') + '.' + lookup('role_var', '_web_domain', role='bookstack')+ if (lookup('role_var', '_web_subdomain', role='bookstack') | length > 0)+ else lookup('role_var', '_web_domain', role='bookstack')) }}" ################################ # DNS ################################ -bookstack_dns_record: "{{ bookstack_web_subdomain }}"-bookstack_dns_zone: "{{ bookstack_web_domain }}"-bookstack_dns_proxy: "{{ dns.proxied }}"+bookstack_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='bookstack') }}"+bookstack_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='bookstack') }}"+bookstack_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -bookstack_traefik_sso_middleware: ""-bookstack_traefik_middleware_default: "{{ traefik_default_middleware }}"-bookstack_traefik_middleware_custom: ""-bookstack_traefik_certresolver: "{{ traefik_default_certresolver }}"-bookstack_traefik_enabled: true+bookstack_role_traefik_sso_middleware: ""+bookstack_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+bookstack_role_traefik_middleware_custom: ""+bookstack_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+bookstack_role_traefik_enabled: true ################################ # Docker ################################ # Container-bookstack_docker_container: "{{ bookstack_name }}"+bookstack_role_docker_container: "{{ bookstack_name }}" # Image-bookstack_docker_image_pull: true-bookstack_docker_image_tag: "latest"-bookstack_docker_image: "lscr.io/linuxserver/bookstack:{{ bookstack_docker_image_tag }}"--# Ports-bookstack_docker_ports_defaults: []-bookstack_docker_ports_custom: []-bookstack_docker_ports: "{{ bookstack_docker_ports_defaults- + bookstack_docker_ports_custom }}"+bookstack_role_docker_image_pull: true+bookstack_role_docker_image_repo: "lscr.io/linuxserver/bookstack"+bookstack_role_docker_image_tag: "latest"+bookstack_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='bookstack') }}:{{ lookup('role_var', '_docker_image_tag', role='bookstack') }}" # Envs-bookstack_docker_envs_default:+bookstack_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}" APP_KEY: "{{ bookstack_saltbox_facts.facts.app_key }}"- APP_URL: "https://{{ bookstack_web_subdomain + '.' + bookstack_web_domain }}"+ APP_URL: "{{ lookup('role_var', '_web_url', role='bookstack') }}" DB_HOST: "mariadb" DB_PORT: "3306" DB_USERNAME: "root"- DB_PASSWORD: "{{ mariadb_docker_env_password }}"+ DB_PASSWORD: "{{ lookup('role_var', '_docker_env_password', role='mariadb') }}" DB_DATABASE: bookstackapp-bookstack_docker_envs_custom: {}-bookstack_docker_envs: "{{ bookstack_docker_envs_default- | combine(bookstack_docker_envs_custom) }}"--# Commands-bookstack_docker_commands_default: []-bookstack_docker_commands_custom: []-bookstack_docker_commands: "{{ bookstack_docker_commands_default- + bookstack_docker_commands_custom }}"+bookstack_role_docker_envs_custom: {}+bookstack_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='bookstack')+ | combine(lookup('role_var', '_docker_envs_custom', role='bookstack')) }}" # Volumes-bookstack_docker_volumes_default:- - "{{ bookstack_paths_location }}:/config"-bookstack_docker_volumes_custom: []-bookstack_docker_volumes: "{{ bookstack_docker_volumes_default- + bookstack_docker_volumes_custom }}"--# Devices-bookstack_docker_devices_default: []-bookstack_docker_devices_custom: []-bookstack_docker_devices: "{{ bookstack_docker_devices_default- + bookstack_docker_devices_custom }}"--# Hosts-bookstack_docker_hosts_default: {}-bookstack_docker_hosts_custom: {}-bookstack_docker_hosts: "{{ docker_hosts_common- | combine(bookstack_docker_hosts_default)- | combine(bookstack_docker_hosts_custom) }}"--# Labels-bookstack_docker_labels_default: {}-bookstack_docker_labels_custom: {}-bookstack_docker_labels: "{{ docker_labels_common- | combine(bookstack_docker_labels_default)- | combine(bookstack_docker_labels_custom) }}"+bookstack_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='bookstack') }}:/config"+bookstack_role_docker_volumes_custom: []+bookstack_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='bookstack')+ + lookup('role_var', '_docker_volumes_custom', role='bookstack') }}" # Hostname-bookstack_docker_hostname: "{{ bookstack_name }}"+bookstack_role_docker_hostname: "{{ bookstack_name }}" # Networks-bookstack_docker_networks_alias: "{{ bookstack_name }}"-bookstack_docker_networks_default: []-bookstack_docker_networks_custom: []-bookstack_docker_networks: "{{ docker_networks_common- + bookstack_docker_networks_default- + bookstack_docker_networks_custom }}"--# Capabilities-bookstack_docker_capabilities_default: []-bookstack_docker_capabilities_custom: []-bookstack_docker_capabilities: "{{ bookstack_docker_capabilities_default- + bookstack_docker_capabilities_custom }}"--# Security Opts-bookstack_docker_security_opts_default: []-bookstack_docker_security_opts_custom: []-bookstack_docker_security_opts: "{{ bookstack_docker_security_opts_default- + bookstack_docker_security_opts_custom }}"+bookstack_role_docker_networks_alias: "{{ bookstack_name }}"+bookstack_role_docker_networks_default: []+bookstack_role_docker_networks_custom: []+bookstack_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='bookstack')+ + lookup('role_var', '_docker_networks_custom', role='bookstack') }}" # Restart Policy-bookstack_docker_restart_policy: unless-stopped+bookstack_role_docker_restart_policy: unless-stopped # State-bookstack_docker_state: started+bookstack_role_docker_state: started # Dependencies-bookstack_depends_on: "mariadb"-bookstack_depends_on_delay: "0"-bookstack_depends_on_healthchecks: "false"+bookstack_role_depends_on: "mariadb"+bookstack_role_depends_on_delay: "0"+bookstack_role_depends_on_healthchecks: "false"
modified
roles/bookstack/tasks/main.yml
@@ -10,13 +10,13 @@ - name: Bookstack | Generate App Key community.docker.docker_container: name: bookstack-app-key- image: "{{ bookstack_docker_image }}"+ image: "{{ lookup('role_var', '_docker_image', role='bookstack') }}" command: "appkey"- detach: no+ detach: false entrypoint: "/bin/bash" networks: - name: saltbox- cleanup: yes+ cleanup: true state: started container_default_behavior: compatibility tls_hostname: localhost@@ -31,14 +31,15 @@ app_key: "{{ bookstack_generated_app_key.container.Output }}" owner: "{{ user.name }}" group: "{{ user.name }}"+ base_path: "{{ server_appdata_path }}" register: bookstack_saltbox_facts - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: MariaDB Role ansible.builtin.include_role:@@ -49,7 +50,7 @@ name: "bookstackapp" login_host: "mariadb" login_user: "root"- login_password: "{{ mariadb_docker_env_password }}"+ login_password: "{{ lookup('role_var', '_docker_env_password', role='mariadb') }}" state: present - name: Remove existing Docker container
modified
roles/calibre/defaults/main.yml
@@ -17,171 +17,133 @@ # Paths ################################ -calibre_paths_folder: "{{ calibre_name }}"-calibre_paths_location: "{{ server_appdata_path }}/{{ calibre_paths_folder }}"-calibre_paths_folders_list:- - "{{ calibre_paths_location }}"- - /mnt/local/Media/Books+calibre_role_paths_folder: "{{ calibre_name }}"+calibre_role_paths_location: "{{ server_appdata_path }}/{{ calibre_role_paths_folder }}"+calibre_role_paths_folders_list:+ - "{{ calibre_role_paths_location }}"+ - "{{ server_local_folder_path }}/Media/Books" ################################ # Web ################################ -calibre_web_subdomain: "{{ calibre_name }}"-calibre_web_domain: "{{ user.domain }}"-calibre_web_port: "8080"-calibre_web_url: "{{ 'https://' + (lookup('vars', calibre_name + '_web_subdomain', default=calibre_web_subdomain) + '.' + lookup('vars', calibre_name + '_web_domain', default=calibre_web_domain)- if (lookup('vars', calibre_name + '_web_subdomain', default=calibre_web_subdomain) | length > 0)- else lookup('vars', calibre_name + '_web_domain', default=calibre_web_domain)) }}"+calibre_role_web_subdomain: "{{ calibre_name }}"+calibre_role_web_domain: "{{ user.domain }}"+calibre_role_web_port: "8080"+calibre_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='calibre') + '.' + lookup('role_var', '_web_domain', role='calibre')+ if (lookup('role_var', '_web_subdomain', role='calibre') | length > 0)+ else lookup('role_var', '_web_domain', role='calibre')) }}" -calibre_web2_subdomain: "{{ calibre_name }}books"-calibre_web2_domain: "{{ user.domain }}"-calibre_web2_port: "8081"-calibre_web2_web_url: "{{ 'https://' + (lookup('vars', calibre_name + '_web2_subdomain', default=calibre_web2_subdomain) + '.' + lookup('vars', calibre_name + '_web2_domain', default=calibre_web2_domain)- if (lookup('vars', calibre_name + '_web2_subdomain', default=calibre_web2_subdomain) | length > 0)- else lookup('vars', calibre_name + '_web2_domain', default=calibre_web2_domain)) }}"+calibre_role_web2_subdomain: "{{ calibre_name }}books"+calibre_role_web2_domain: "{{ user.domain }}"+calibre_role_web2_port: "8081"+calibre_role_web2_role_web_url: "{{ 'https://' + (lookup('role_var', '_web2_subdomain', role='calibre') + '.' + lookup('role_var', '_web2_domain', role='calibre')+ if (lookup('role_var', '_web2_subdomain', role='calibre') | length > 0)+ else lookup('role_var', '_web2_domain', role='calibre')) }}" ################################ # DNS ################################ -calibre_dns_record: "{{ lookup('vars', calibre_name + '_web_subdomain', default=calibre_web_subdomain) }}"-calibre_dns_zone: "{{ lookup('vars', calibre_name + '_web_domain', default=calibre_web_domain) }}"-calibre_dns_proxy: "{{ dns.proxied }}"-calibre_dns2_record: "{{ lookup('vars', calibre_name + '_web2_subdomain', default=calibre_web2_subdomain) }}"-calibre_dns2_zone: "{{ lookup('vars', calibre_name + '_web2_domain', default=calibre_web2_domain) }}"-calibre_dns2_proxy: "{{ dns.proxied }}"+calibre_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='calibre') }}"+calibre_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='calibre') }}"+calibre_role_dns_proxy: "{{ dns_proxied }}"+calibre_role_dns2_record: "{{ lookup('role_var', '_web2_subdomain', role='calibre') }}"+calibre_role_dns2_zone: "{{ lookup('role_var', '_web2_domain', role='calibre') }}"+calibre_role_dns2_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -calibre_traefik_sso_middleware: ""-calibre_traefik_middleware_default: "{{ traefik_default_middleware }}"-calibre_traefik_middleware_custom: ""-calibre_traefik_certresolver: "{{ traefik_default_certresolver }}"-calibre_traefik_enabled: true-calibre_books_traefik_sso_middleware: ""-calibre_books_traefik_middleware_default: "{{ traefik_default_middleware- + (',' + lookup('vars', calibre_name + '_books_traefik_sso_middleware', default=calibre_books_traefik_sso_middleware)- if (lookup('vars', calibre_name + '_books_traefik_sso_middleware', default=calibre_books_traefik_sso_middleware) | length > 0)- else '') }}"-calibre_books_traefik_middleware_custom: ""-calibre_books_traefik_middleware: "{{ calibre_books_traefik_middleware_default- + (',' + calibre_books_traefik_middleware_custom- if (not calibre_books_traefik_middleware_custom.startswith(',') and calibre_books_traefik_middleware_custom | length > 0)- else calibre_books_traefik_middleware_custom) }}"-calibre_books_traefik_router: "{{ lookup('vars', calibre_name + '_web2_subdomain', default=calibre_web2_subdomain) }}"+calibre_role_traefik_sso_middleware: ""+calibre_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+calibre_role_traefik_middleware_custom: ""+calibre_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+calibre_role_traefik_enabled: true+calibre_role_books_traefik_sso_middleware: ""+calibre_role_books_traefik_middleware_default: "{{ traefik_default_middleware+ + (',' + lookup('role_var', '_books_traefik_sso_middleware', role='calibre')+ if (lookup('role_var', '_books_traefik_sso_middleware', role='calibre') | length > 0)+ else '') }}"+calibre_role_books_traefik_middleware_custom: ""+calibre_role_books_traefik_middleware: "{{ lookup('role_var', '_books_traefik_middleware_default', role='calibre')+ + (',' + lookup('role_var', '_books_traefik_middleware_custom', role='calibre')+ if (not lookup('role_var', '_books_traefik_middleware_custom', role='calibre').startswith(',') and lookup('role_var', '_books_traefik_middleware_custom', role='calibre') | length > 0)+ else lookup('role_var', '_books_traefik_middleware_custom', role='calibre')) }}" ################################ # Docker ################################ # Container-calibre_docker_container: "{{ calibre_name }}"+calibre_role_docker_container: "{{ calibre_name }}" # Image-calibre_docker_image_pull: true-calibre_docker_image_repo: "lscr.io/linuxserver/calibre"-calibre_docker_image_tag: "latest"-calibre_docker_image: "{{ lookup('vars', calibre_name + '_docker_image_repo', default=calibre_docker_image_repo)- + ':' + lookup('vars', calibre_name + '_docker_image_tag', default=calibre_docker_image_tag) }}"--# Ports-calibre_docker_ports_defaults: []-calibre_docker_ports_custom: []-calibre_docker_ports: "{{ lookup('vars', calibre_name + '_docker_ports_defaults', default=calibre_docker_ports_defaults)- + lookup('vars', calibre_name + '_docker_ports_custom', default=calibre_docker_ports_custom) }}"+calibre_role_docker_image_pull: true+calibre_role_docker_image_repo: "lscr.io/linuxserver/calibre"+calibre_role_docker_image_tag: "latest"+calibre_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='calibre') }}:{{ lookup('role_var', '_docker_image_tag', role='calibre') }}" # Envs-calibre_docker_envs_default:+calibre_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}" CUSTOM_USER: "{{ user.name }}" PASSWORD: "{{ user.pass }}" LIBRARYINTERNALPATH: "/library"-calibre_docker_envs_custom: {}-calibre_docker_envs: "{{ lookup('vars', calibre_name + '_docker_envs_default', default=calibre_docker_envs_default)- | combine(lookup('vars', calibre_name + '_docker_envs_custom', default=calibre_docker_envs_custom)) }}"--# Commands-calibre_docker_commands_default: []-calibre_docker_commands_custom: []-calibre_docker_commands: "{{ lookup('vars', calibre_name + '_docker_commands_default', default=calibre_docker_commands_default)- + lookup('vars', calibre_name + '_docker_commands_custom', default=calibre_docker_commands_custom) }}"+calibre_role_docker_envs_custom: {}+calibre_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='calibre')+ | combine(lookup('role_var', '_docker_envs_custom', role='calibre')) }}" # Volumes-calibre_docker_volumes_default:- - "{{ calibre_paths_location }}:/config"+calibre_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='calibre') }}:/config" - "/mnt/unionfs/Media/Books:/library"-calibre_docker_volumes_custom: []-calibre_docker_volumes: "{{ lookup('vars', calibre_name + '_docker_volumes_default', default=calibre_docker_volumes_default)- + lookup('vars', calibre_name + '_docker_volumes_custom', default=calibre_docker_volumes_custom) }}"--# Devices-calibre_docker_devices_default: []-calibre_docker_devices_custom: []-calibre_docker_devices: "{{ lookup('vars', calibre_name + '_docker_devices_default', default=calibre_docker_devices_default)- + lookup('vars', calibre_name + '_docker_devices_custom', default=calibre_docker_devices_custom) }}"--# Hosts-calibre_docker_hosts_default: {}-calibre_docker_hosts_custom: {}-calibre_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', calibre_name + '_docker_hosts_default', default=calibre_docker_hosts_default))- | combine(lookup('vars', calibre_name + '_docker_hosts_custom', default=calibre_docker_hosts_custom)) }}"+calibre_role_docker_volumes_custom: []+calibre_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='calibre')+ + lookup('role_var', '_docker_volumes_custom', role='calibre') }}" # Labels-calibre_docker_labels_default:- - '{ "traefik.http.routers.{{ calibre_books_traefik_router }}-http.entrypoints": "web" }'- - '{ "traefik.http.routers.{{ calibre_books_traefik_router }}-http.service": "{{ lookup("vars", calibre_name + "_web2_subdomain", default=calibre_web2_subdomain) }}" }'- - '{ "traefik.http.routers.{{ calibre_books_traefik_router }}-http.rule": "Host(`{{ lookup("vars", calibre_name + "_web2_subdomain", default=calibre_web2_subdomain) + "." + lookup("vars", calibre_name + "_web2_domain", default=calibre_web2_domain) }}`)" }'- - '{ "traefik.http.routers.{{ calibre_books_traefik_router }}-http.middlewares": "{{ traefik_default_middleware_http }}" }'- - '{ "traefik.http.routers.{{ calibre_books_traefik_router }}-http.priority": "20" }'- - '{ "traefik.http.routers.{{ calibre_books_traefik_router }}.entrypoints": "websecure" }'- - '{ "traefik.http.routers.{{ calibre_books_traefik_router }}.service": "{{ lookup("vars", calibre_name + "_web2_subdomain", default=calibre_web2_subdomain) }}" }'- - '{ "traefik.http.routers.{{ calibre_books_traefik_router }}.rule": "Host(`{{ lookup("vars", calibre_name + "_web2_subdomain", default=calibre_web2_subdomain) + "." + lookup("vars", calibre_name + "_web2_domain", default=calibre_web2_domain) }}`)" }'- - '{ "traefik.http.routers.{{ calibre_books_traefik_router }}.middlewares": "{{ calibre_books_traefik_middleware }}" }'- - '{ "traefik.http.routers.{{ calibre_books_traefik_router }}.tls.options": "securetls@file" }'- - '{ "traefik.http.routers.{{ calibre_books_traefik_router }}.tls.certresolver": "{{ calibre_traefik_certresolver }}" }'- - '{ "traefik.http.routers.{{ calibre_books_traefik_router }}.priority": "20" }'- - '{ "traefik.http.services.{{ calibre_books_traefik_router }}.loadbalancer.server.port": "{{ calibre_web2_port }}" }'-calibre_docker_labels_custom: {}-calibre_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', calibre_name + '_docker_labels_default', default=calibre_docker_labels_default))- | combine(lookup('vars', calibre_name + '_docker_labels_custom', default=calibre_docker_labels_custom)) }}"+calibre_role_docker_labels_default:+ - '{ "traefik.http.routers.{{ lookup("role_var", "_web2_subdomain", role="calibre") }}-http.entrypoints": "web" }'+ - '{ "traefik.http.routers.{{ lookup("role_var", "_web2_subdomain", role="calibre") }}-http.service": "{{ lookup("role_var", "_web2_subdomain", role="calibre") }}" }'+ - '{ "traefik.http.routers.{{ lookup("role_var", "_web2_subdomain", role="calibre") }}-http.rule": "Host(`{{ lookup("role_var", "_web2_subdomain", role="calibre") + "." + lookup("role_var", "_web2_domain", role="calibre") }}`)" }'+ - '{ "traefik.http.routers.{{ lookup("role_var", "_web2_subdomain", role="calibre") }}-http.middlewares": "{{ traefik_default_middleware_http }}" }'+ - '{ "traefik.http.routers.{{ lookup("role_var", "_web2_subdomain", role="calibre") }}-http.priority": "20" }'+ - '{ "traefik.http.routers.{{ lookup("role_var", "_web2_subdomain", role="calibre") }}.entrypoints": "websecure" }'+ - '{ "traefik.http.routers.{{ lookup("role_var", "_web2_subdomain", role="calibre") }}.service": "{{ lookup("role_var", "_web2_subdomain", role="calibre") }}" }'+ - '{ "traefik.http.routers.{{ lookup("role_var", "_web2_subdomain", role="calibre") }}.rule": "Host(`{{ lookup("role_var", "_web2_subdomain", role="calibre") + "." + lookup("role_var", "_web2_domain", role="calibre") }}`)" }'+ - '{ "traefik.http.routers.{{ lookup("role_var", "_web2_subdomain", role="calibre") }}.middlewares": "{{ lookup("role_var", "_books_traefik_middleware", role="calibre") }}" }'+ - '{ "traefik.http.routers.{{ lookup("role_var", "_web2_subdomain", role="calibre") }}.tls.options": "securetls@file" }'+ - '{ "traefik.http.routers.{{ lookup("role_var", "_web2_subdomain", role="calibre") }}.tls.certresolver": "{{ lookup("role_var", "_traefik_certresolver", role="calibre") }}" }'+ - '{ "traefik.http.routers.{{ lookup("role_var", "_web2_subdomain", role="calibre") }}.priority": "20" }'+ - '{ "traefik.http.services.{{ lookup("role_var", "_web2_subdomain", role="calibre") }}.loadbalancer.server.port": "{{ lookup("role_var", "_web2_port", role="calibre") }}" }'+calibre_role_docker_labels_custom: {}+calibre_role_docker_labels: "{{ lookup('role_var', '_docker_labels_default', role='calibre')+ | combine(lookup('role_var', '_docker_labels_custom', role='calibre')) }}" # Hostname-calibre_docker_hostname: "{{ calibre_name }}"--# Network Mode-calibre_docker_network_mode_default: "{{ docker_networks_name_common }}"-calibre_docker_network_mode: "{{ lookup('vars', calibre_name + '_docker_network_mode_default', default=calibre_docker_network_mode_default) }}"+calibre_role_docker_hostname: "{{ calibre_name }}" # Networks-calibre_docker_networks_alias: "{{ calibre_name }}"-calibre_docker_networks_default: []-calibre_docker_networks_custom: []-calibre_docker_networks: "{{ docker_networks_common- + lookup('vars', calibre_name + '_docker_networks_default', default=calibre_docker_networks_default)- + lookup('vars', calibre_name + '_docker_networks_custom', default=calibre_docker_networks_custom) }}"--# Capabilities-calibre_docker_capabilities_default: []-calibre_docker_capabilities_custom: []-calibre_docker_capabilities: "{{ lookup('vars', calibre_name + '_docker_capabilities_default', default=calibre_docker_capabilities_default)- + lookup('vars', calibre_name + '_docker_capabilities_custom', default=calibre_docker_capabilities_custom) }}"+calibre_role_docker_networks_alias: "{{ calibre_name }}"+calibre_role_docker_networks_default: []+calibre_role_docker_networks_custom: []+calibre_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='calibre')+ + lookup('role_var', '_docker_networks_custom', role='calibre') }}" # Security Opts-calibre_docker_security_opts_default:+calibre_role_docker_security_opts_default: - seccomp=unconfined-calibre_docker_security_opts_custom: []-calibre_docker_security_opts: "{{ lookup('vars', calibre_name + '_docker_security_opts_default', default=calibre_docker_security_opts_default)- + lookup('vars', calibre_name + '_docker_security_opts_custom', default=calibre_docker_security_opts_custom) }}"+calibre_role_docker_security_opts_custom: []+calibre_role_docker_security_opts: "{{ lookup('role_var', '_docker_security_opts_default', role='calibre')+ + lookup('role_var', '_docker_security_opts_custom', role='calibre') }}" # Restart Policy-calibre_docker_restart_policy: unless-stopped+calibre_role_docker_restart_policy: unless-stopped # State-calibre_docker_state: started+calibre_role_docker_state: started
modified
roles/calibre/tasks/main2.yml
@@ -10,16 +10,16 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns2_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns2_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns2_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns2_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns2_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns2_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/calibre_web/defaults/main.yml
@@ -11,156 +11,116 @@ # Basics ################################ -calibre_web_name: calibre-web+calibre_web_role_name: calibre-web ################################ # Paths ################################ -calibre_web_paths_folder: "{{ calibre_web_name }}"-calibre_web_paths_location: "{{ server_appdata_path }}/{{ calibre_web_paths_folder }}"-calibre_web_paths_folders_list:- - "{{ calibre_web_paths_location }}"- - "{{ calibre_web_paths_location }}/cache"+calibre_web_role_paths_folder: "{{ calibre_web_role_name }}"+calibre_web_role_paths_location: "{{ server_appdata_path }}/{{ calibre_web_role_paths_folder }}"+calibre_web_role_paths_folders_list:+ - "{{ calibre_web_role_paths_location }}"+ - "{{ calibre_web_role_paths_location }}/cache" ################################ # Web ################################ -calibre_web_web_subdomain: "{{ calibre_web_name }}"-calibre_web_web_domain: "{{ user.domain }}"-calibre_web_web_port: "8083"-calibre_web_web_url: "{{ 'https://' + (calibre_web_web_subdomain + '.' + calibre_web_web_domain- if (calibre_web_web_subdomain | length > 0)- else calibre_web_web_domain) }}"+calibre_web_role_web_subdomain: "{{ calibre_web_role_name }}"+calibre_web_role_web_domain: "{{ user.domain }}"+calibre_web_role_web_port: "8083"+calibre_web_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='calibre_web') + '.' + lookup('role_var', '_web_domain', role='calibre_web')+ if (lookup('role_var', '_web_subdomain', role='calibre_web') | length > 0)+ else lookup('role_var', '_web_domain', role='calibre_web')) }}" ################################ # DNS ################################ -calibre_web_dns_record: "{{ calibre_web_web_subdomain }}"-calibre_web_dns_zone: "{{ calibre_web_web_domain }}"-calibre_web_dns_proxy: "{{ dns.proxied }}"+calibre_web_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='calibre_web') }}"+calibre_web_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='calibre_web') }}"+calibre_web_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -calibre_web_traefik_sso_middleware: ""-calibre_web_traefik_middleware_default: "{{ traefik_default_middleware }},kobo-sync-headers"-calibre_web_traefik_middleware_custom: ""-calibre_web_traefik_certresolver: "{{ traefik_default_certresolver }}"-calibre_web_traefik_enabled: true+calibre_web_role_traefik_sso_middleware: ""+calibre_web_role_traefik_middleware_default: "{{ traefik_default_middleware }},kobo-sync-headers"+calibre_web_role_traefik_middleware_custom: ""+calibre_web_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+calibre_web_role_traefik_enabled: true ################################-# THEME+# Theme ################################ # Options can be found at https://github.com/themepark-dev/theme.park-calibre_web_themepark_enabled: false-calibre_web_themepark_theme: "{{ global_themepark_theme }}"-calibre_web_themepark_domain: "{{ global_themepark_domain }}"+calibre_web_role_themepark_enabled: false+calibre_web_role_themepark_theme: "{{ global_themepark_theme }}"+calibre_web_role_themepark_domain: "{{ global_themepark_domain }}" ################################ # Docker ################################ # Container-calibre_web_docker_container: "{{ calibre_web_name }}"+calibre_web_role_docker_container: "{{ calibre_web_role_name }}" # Image-calibre_web_docker_image_pull: true-calibre_web_docker_image_tag: "latest"-calibre_web_docker_image: "lscr.io/linuxserver/calibre-web:{{ calibre_web_docker_image_tag }}"--# Ports-calibre_web_docker_ports_defaults: []-calibre_web_docker_ports_custom: []-calibre_web_docker_ports: "{{ calibre_web_docker_ports_defaults- + calibre_web_docker_ports_custom }}"+calibre_web_role_docker_image_pull: true+calibre_web_role_docker_image_repo: "lscr.io/linuxserver/calibre-web"+calibre_web_role_docker_image_tag: "latest"+calibre_web_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='calibre_web') }}:{{ lookup('role_var', '_docker_image_tag', role='calibre_web') }}" # Envs-calibre_web_docker_envs_default:+calibre_web_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}" CACHE_DIR: "/cache/" USE_CONFIG_DIR: "true" DOCKER_MODS: linuxserver/mods:universal-calibre-calibre_web_docker_envs_custom: {}-calibre_web_docker_envs_theme:+calibre_web_role_docker_envs_theme: DOCKER_MODS: "linuxserver/mods:universal-calibre|ghcr.io/themepark-dev/theme.park:calibre-web"- TP_DOMAIN: "{{ calibre_web_themepark_domain }}"- TP_THEME: "{{ calibre_web_themepark_theme }}"-calibre_web_docker_envs: "{{ calibre_web_docker_envs_default- | combine(calibre_web_docker_envs_custom)- if not (calibre_web_themepark_enabled)- else calibre_web_docker_envs_default- | combine(calibre_web_docker_envs_custom)- | combine(calibre_web_docker_envs_theme) }}"--# Commands-calibre_web_docker_commands_default: []-calibre_web_docker_commands_custom: []-calibre_web_docker_commands: "{{ calibre_web_docker_commands_default- + calibre_web_docker_commands_custom }}"+ TP_DOMAIN: "{{ lookup('role_var', '_themepark_domain', role='calibre_web') }}"+ TP_THEME: "{{ lookup('role_var', '_themepark_theme', role='calibre_web') }}"+calibre_web_role_docker_envs_custom: {}+calibre_web_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='calibre_web')+ | combine(lookup('role_var', '_docker_envs_theme', role='calibre_web') if lookup('role_var', '_themepark_enabled', role='calibre_web') else {})+ | combine(lookup('role_var', '_docker_envs_custom', role='calibre_web')) }}" # Volumes-calibre_web_docker_volumes_default:- - "{{ calibre_web_paths_location }}:/calibre-web"- - "{{ calibre_web_paths_location }}/config:/config"- - "{{ calibre_web_paths_location }}/cache:/cache"+calibre_web_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='calibre_web') }}:/calibre-web"+ - "{{ lookup('role_var', '_paths_location', role='calibre_web') }}/config:/config"+ - "{{ lookup('role_var', '_paths_location', role='calibre_web') }}/cache:/cache" - "/mnt/unionfs/Media/Books:/books"-calibre_web_docker_volumes_custom: []-calibre_web_docker_volumes: "{{ calibre_web_docker_volumes_default- + calibre_web_docker_volumes_custom }}"--# Devices-calibre_web_docker_devices_default: []-calibre_web_docker_devices_custom: []-calibre_web_docker_devices: "{{ calibre_web_docker_devices_default- + calibre_web_docker_devices_custom }}"--# Hosts-calibre_web_docker_hosts_default: {}-calibre_web_docker_hosts_custom: {}-calibre_web_docker_hosts: "{{ docker_hosts_common- | combine(calibre_web_docker_hosts_default)- | combine(calibre_web_docker_hosts_custom) }}"+calibre_web_role_docker_volumes_custom: []+calibre_web_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='calibre_web')+ + lookup('role_var', '_docker_volumes_custom', role='calibre_web') }}" # Labels-calibre_web_docker_labels_default:+calibre_web_role_docker_labels_default: traefik.http.middlewares.kobo-sync-headers.headers.customrequestheaders.X-Scheme: "https"-calibre_web_docker_labels_custom: {}-calibre_web_docker_labels: "{{ docker_labels_common- | combine(calibre_web_docker_labels_default)- | combine(calibre_web_docker_labels_custom) }}"+calibre_web_role_docker_labels_custom: {}+calibre_web_role_docker_labels: "{{ lookup('role_var', '_docker_labels_default', role='calibre_web')+ | combine(lookup('role_var', '_docker_labels_custom', role='calibre_web')) }}" # Hostname-calibre_web_docker_hostname: "{{ calibre_web_name }}"+calibre_web_role_docker_hostname: "{{ calibre_web_role_name }}" # Networks-calibre_web_docker_networks_alias: "{{ calibre_web_name }}"-calibre_web_docker_networks_default: []-calibre_web_docker_networks_custom: []-calibre_web_docker_networks: "{{ docker_networks_common- + calibre_web_docker_networks_default- + calibre_web_docker_networks_custom }}"--# Capabilities-calibre_web_docker_capabilities_default: []-calibre_web_docker_capabilities_custom: []-calibre_web_docker_capabilities: "{{ calibre_web_docker_capabilities_default- + calibre_web_docker_capabilities_custom }}"--# Security Opts-calibre_web_docker_security_opts_default: []-calibre_web_docker_security_opts_custom: []-calibre_web_docker_security_opts: "{{ calibre_web_docker_security_opts_default- + calibre_web_docker_security_opts_custom }}"+calibre_web_role_docker_networks_alias: "{{ calibre_web_role_name }}"+calibre_web_role_docker_networks_default: []+calibre_web_role_docker_networks_custom: []+calibre_web_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='calibre_web')+ + lookup('role_var', '_docker_networks_custom', role='calibre_web') }}" # Restart Policy-calibre_web_docker_restart_policy: unless-stopped+calibre_web_role_docker_restart_policy: unless-stopped # State-calibre_web_docker_state: started+calibre_web_role_docker_state: started
modified
roles/calibre_web/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/changedetection/defaults/main.yml
@@ -17,128 +17,85 @@ # Paths ################################ -changedetection_paths_folder: "{{ changedetection_name }}"-changedetection_paths_location: "{{ server_appdata_path }}/{{ changedetection_paths_folder }}"-changedetection_paths_folders_list:- - "{{ changedetection_paths_location }}"+changedetection_role_paths_folder: "{{ changedetection_name }}"+changedetection_role_paths_location: "{{ server_appdata_path }}/{{ changedetection_role_paths_folder }}"+changedetection_role_paths_folders_list:+ - "{{ changedetection_role_paths_location }}" ################################ # Web ################################ -changedetection_web_subdomain: "{{ changedetection_name }}"-changedetection_web_domain: "{{ user.domain }}"-changedetection_web_port: "5000"-changedetection_web_url: "{{ 'https://' + (changedetection_web_subdomain + '.' + changedetection_web_domain- if (changedetection_web_subdomain | length > 0)- else changedetection_web_domain) }}"+changedetection_role_web_subdomain: "{{ changedetection_name }}"+changedetection_role_web_domain: "{{ user.domain }}"+changedetection_role_web_port: "5000"+changedetection_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='changedetection') + '.' + lookup('role_var', '_web_domain', role='changedetection')+ if (lookup('role_var', '_web_subdomain', role='changedetection') | length > 0)+ else lookup('role_var', '_web_domain', role='changedetection')) }}" ################################ # DNS ################################ -changedetection_dns_record: "{{ changedetection_web_subdomain }}"-changedetection_dns_zone: "{{ changedetection_web_domain }}"-changedetection_dns_proxy: "{{ dns.proxied }}"+changedetection_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='changedetection') }}"+changedetection_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='changedetection') }}"+changedetection_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -changedetection_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-changedetection_traefik_middleware_default: "{{ traefik_default_middleware }}"-changedetection_traefik_middleware_custom: ""-changedetection_traefik_certresolver: "{{ traefik_default_certresolver }}"-changedetection_traefik_enabled: true-changedetection_traefik_api_enabled: true-changedetection_traefik_api_endpoint: "PathPrefix(`/api`)"+changedetection_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+changedetection_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+changedetection_role_traefik_middleware_custom: ""+changedetection_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+changedetection_role_traefik_enabled: true+changedetection_role_traefik_api_enabled: true+changedetection_role_traefik_api_endpoint: "PathPrefix(`/api`)" ################################ # Docker ################################ # Container-changedetection_docker_container: "{{ changedetection_name }}"+changedetection_role_docker_container: "{{ changedetection_name }}" # Image-changedetection_docker_image_pull: true-changedetection_docker_image_tag: "latest"-changedetection_docker_image: "lscr.io/linuxserver/changedetection.io:{{ changedetection_docker_image_tag }}"--# Ports-changedetection_docker_ports_defaults: []-changedetection_docker_ports_custom: []-changedetection_docker_ports: "{{ changedetection_docker_ports_defaults- + changedetection_docker_ports_custom }}"+changedetection_role_docker_image_pull: true+changedetection_role_docker_image_repo: "lscr.io/linuxserver/changedetection.io"+changedetection_role_docker_image_tag: "latest"+changedetection_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='changedetection') }}:{{ lookup('role_var', '_docker_image_tag', role='changedetection') }}" # Envs-changedetection_docker_envs_default:+changedetection_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"- BASE_URL: "{{ changedetection_web_url }}"-changedetection_docker_envs_custom: {}-changedetection_docker_envs: "{{ changedetection_docker_envs_default- | combine(changedetection_docker_envs_custom) }}"--# Commands-changedetection_docker_commands_default: []-changedetection_docker_commands_custom: []-changedetection_docker_commands: "{{ changedetection_docker_commands_default- + changedetection_docker_commands_custom }}"+ BASE_URL: "{{ lookup('role_var', '_web_url', role='changedetection') }}"+changedetection_role_docker_envs_custom: {}+changedetection_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='changedetection')+ | combine(lookup('role_var', '_docker_envs_custom', role='changedetection')) }}" # Volumes-changedetection_docker_volumes_default:- - "{{ changedetection_paths_location }}:/config"-changedetection_docker_volumes_custom: []-changedetection_docker_volumes: "{{ changedetection_docker_volumes_default- + changedetection_docker_volumes_custom }}"--# Devices-changedetection_docker_devices_default: []-changedetection_docker_devices_custom: []-changedetection_docker_devices: "{{ changedetection_docker_devices_default- + changedetection_docker_devices_custom }}"--# Hosts-changedetection_docker_hosts_default: {}-changedetection_docker_hosts_custom: {}-changedetection_docker_hosts: "{{ docker_hosts_common- | combine(changedetection_docker_hosts_default)- | combine(changedetection_docker_hosts_custom) }}"--# Labels-changedetection_docker_labels_default: {}-changedetection_docker_labels_custom: {}-changedetection_docker_labels: "{{ docker_labels_common- | combine(changedetection_docker_labels_default)- | combine(changedetection_docker_labels_custom) }}"+changedetection_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='changedetection') }}:/config"+changedetection_role_docker_volumes_custom: []+changedetection_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='changedetection')+ + lookup('role_var', '_docker_volumes_custom', role='changedetection') }}" # Hostname-changedetection_docker_hostname: "{{ changedetection_name }}"+changedetection_role_docker_hostname: "{{ changedetection_name }}" # Networks-changedetection_docker_networks_alias: "{{ changedetection_name }}"-changedetection_docker_networks_default: []-changedetection_docker_networks_custom: []-changedetection_docker_networks: "{{ docker_networks_common- + changedetection_docker_networks_default- + changedetection_docker_networks_custom }}"--# Capabilities-changedetection_docker_capabilities_default: []-changedetection_docker_capabilities_custom: []-changedetection_docker_capabilities: "{{ changedetection_docker_capabilities_default- + changedetection_docker_capabilities_custom }}"--# Security Opts-changedetection_docker_security_opts_default: []-changedetection_docker_security_opts_custom: []-changedetection_docker_security_opts: "{{ changedetection_docker_security_opts_default- + changedetection_docker_security_opts_custom }}"+changedetection_role_docker_networks_alias: "{{ changedetection_name }}"+changedetection_role_docker_networks_default: []+changedetection_role_docker_networks_custom: []+changedetection_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='changedetection')+ + lookup('role_var', '_docker_networks_custom', role='changedetection') }}" # Restart Policy-changedetection_docker_restart_policy: unless-stopped+changedetection_role_docker_restart_policy: unless-stopped # State-changedetection_docker_state: started+changedetection_role_docker_state: started
modified
roles/changedetection/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/cherry/defaults/main.yml
@@ -17,133 +17,90 @@ # Paths ################################ -cherry_paths_folder: "{{ cherry_name }}"-cherry_paths_location: "{{ server_appdata_path }}/{{ cherry_paths_folder }}"-cherry_paths_folders_list:- - "{{ cherry_paths_location }}"+cherry_role_paths_folder: "{{ cherry_name }}"+cherry_role_paths_location: "{{ server_appdata_path }}/{{ cherry_role_paths_folder }}"+cherry_role_paths_folders_list:+ - "{{ cherry_role_paths_location }}" ################################ # Web ################################ -cherry_web_subdomain: "{{ cherry_name }}"-cherry_web_domain: "{{ user.domain }}"-cherry_web_port: "8000"-charry_web_url: "{{ 'https://' + (charry_web_subdomain + '.' + charry_web_domain- if (charry_web_subdomain | length > 0)- else charry_web_domain) }}"+cherry_role_web_subdomain: "{{ cherry_name }}"+cherry_role_web_domain: "{{ user.domain }}"+cherry_role_web_port: "8000"+cherry_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='cherry') + '.' + lookup('role_var', '_web_domain', role='cherry')+ if (lookup('role_var', '_web_subdomain', role='cherry') | length > 0)+ else lookup('role_var', '_web_domain', role='cherry')) }}" ################################ # DNS ################################ -cherry_dns_record: "{{ cherry_web_subdomain }}"-cherry_dns_zone: "{{ cherry_web_domain }}"-cherry_dns_proxy: "{{ dns.proxied }}"+cherry_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='cherry') }}"+cherry_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='cherry') }}"+cherry_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -cherry_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-cherry_traefik_middleware_default: "{{ traefik_default_middleware }}"-cherry_traefik_middleware_custom: ""-cherry_traefik_certresolver: "{{ traefik_default_certresolver }}"-cherry_traefik_enabled: true-cherry_traefik_api_enabled: true-cherry_traefik_api_endpoint: "PathPrefix(`/api`)"+cherry_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+cherry_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+cherry_role_traefik_middleware_custom: ""+cherry_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+cherry_role_traefik_enabled: true+cherry_role_traefik_api_enabled: true+cherry_role_traefik_api_endpoint: "PathPrefix(`/api`)" ################################ # Docker ################################ # Container-cherry_docker_container: "{{ cherry_name }}"+cherry_role_docker_container: "{{ cherry_name }}" # Image-cherry_docker_image_pull: true-cherry_docker_image_tag: "latest"-cherry_docker_image: "haishanh/cherry:{{ cherry_docker_image_tag }}"--# Ports-cherry_docker_ports_defaults: []-cherry_docker_ports_custom: []-cherry_docker_ports: "{{ cherry_docker_ports_defaults- + cherry_docker_ports_custom }}"+cherry_role_docker_image_pull: true+cherry_role_docker_image_repo: "haishanh/cherry"+cherry_role_docker_image_tag: "latest"+cherry_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='cherry') }}:{{ lookup('role_var', '_docker_image_tag', role='cherry') }}" # Envs-cherry_docker_envs_default:+cherry_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}" JWT_SECRET: "{{ cherry_secret_key.stdout }}" ENABLE_HTTP_REMOTE_USER: "1"-cherry_docker_envs_custom: {}-cherry_docker_envs: "{{ cherry_docker_envs_default- | combine(cherry_docker_envs_custom) }}"--# Commands-cherry_docker_commands_default: []-cherry_docker_commands_custom: []-cherry_docker_commands: "{{ cherry_docker_commands_default- + cherry_docker_commands_custom }}"+cherry_role_docker_envs_custom: {}+cherry_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='cherry')+ | combine(lookup('role_var', '_docker_envs_custom', role='cherry')) }}" # Volumes-cherry_docker_volumes_default:- - "{{ cherry_paths_location }}:/data"-cherry_docker_volumes_custom: []-cherry_docker_volumes: "{{ cherry_docker_volumes_default- + cherry_docker_volumes_custom }}"--# Devices-cherry_docker_devices_default: []-cherry_docker_devices_custom: []-cherry_docker_devices: "{{ cherry_docker_devices_default- + cherry_docker_devices_custom }}"--# Hosts-cherry_docker_hosts_default: {}-cherry_docker_hosts_custom: {}-cherry_docker_hosts: "{{ docker_hosts_common- | combine(cherry_docker_hosts_default)- | combine(cherry_docker_hosts_custom) }}"--# Labels-cherry_docker_labels_default: {}-cherry_docker_labels_custom: {}-cherry_docker_labels: "{{ docker_labels_common- | combine(cherry_docker_labels_default)- | combine(cherry_docker_labels_custom) }}"+cherry_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='cherry') }}:/data"+cherry_role_docker_volumes_custom: []+cherry_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='cherry')+ + lookup('role_var', '_docker_volumes_custom', role='cherry') }}" # Hostname-cherry_docker_hostname: "{{ cherry_name }}"+cherry_role_docker_hostname: "{{ cherry_name }}" # Networks-cherry_docker_networks_alias: "{{ cherry_name }}"-cherry_docker_networks_default: []-cherry_docker_networks_custom: []-cherry_docker_networks: "{{ docker_networks_common- + cherry_docker_networks_default- + cherry_docker_networks_custom }}"--# Capabilities-cherry_docker_capabilities_default: []-cherry_docker_capabilities_custom: []-cherry_docker_capabilities: "{{ cherry_docker_capabilities_default- + cherry_docker_capabilities_custom }}"--# Security Opts-cherry_docker_security_opts_default: []-cherry_docker_security_opts_custom: []-cherry_docker_security_opts: "{{ cherry_docker_security_opts_default- + cherry_docker_security_opts_custom }}"+cherry_role_docker_networks_alias: "{{ cherry_name }}"+cherry_role_docker_networks_default: []+cherry_role_docker_networks_custom: []+cherry_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='cherry')+ + lookup('role_var', '_docker_networks_custom', role='cherry') }}" # Restart Policy-cherry_docker_restart_policy: unless-stopped+cherry_role_docker_restart_policy: unless-stopped # State-cherry_docker_state: started+cherry_role_docker_state: started # Healthcheck-cherry_docker_healthcheck:+cherry_role_docker_healthcheck: test: ["NONE"]
modified
roles/cherry/tasks/main.yml
@@ -15,9 +15,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/chrome/defaults/main.yml
@@ -17,102 +17,58 @@ # Paths ################################ -chrome_paths_folder: "{{ chrome_name }}"-chrome_paths_location: "{{ server_appdata_path }}/{{ chrome_paths_folder }}"-chrome_paths_folders_list:- - "{{ chrome_paths_location }}"+chrome_role_paths_folder: "{{ chrome_name }}"+chrome_role_paths_location: "{{ server_appdata_path }}/{{ chrome_role_paths_folder }}"+chrome_role_paths_folders_list:+ - "{{ chrome_role_paths_location }}" ################################ # Docker ################################ # Container-chrome_docker_container: "{{ chrome_name }}"+chrome_role_docker_container: "{{ chrome_name }}" # Image-chrome_docker_image_pull: true-chrome_docker_image: "gcr.io/zenika-hub/alpine-chrome"-chrome_docker_image_tag: "123"--# Ports-chrome_docker_ports_defaults:- - "9222:9222"-chrome_docker_ports_custom: []-chrome_docker_ports: "{{ chrome_docker_ports_defaults- + chrome_docker_ports_custom }}"+chrome_role_docker_image_pull: true+chrome_role_docker_image_repo: "gcr.io/zenika-hub/alpine-chrome"+chrome_role_docker_image_tag: "124"+chrome_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='chrome') }}:{{ lookup('role_var', '_docker_image_tag', role='chrome') }}" # Envs-chrome_docker_envs_default:+chrome_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"-chrome_docker_envs_custom: {}-chrome_docker_envs: "{{ chrome_docker_envs_default- | combine(chrome_docker_envs_custom) }}"+chrome_role_docker_envs_custom: {}+chrome_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='chrome')+ | combine(lookup('role_var', '_docker_envs_custom', role='chrome')) }}" # Commands-chrome_docker_commands_default:+chrome_role_docker_commands_default: - "--no-sandbox" - "--disable-gpu" - "--disable-dev-shm-usage" - "--remote-debugging-address=0.0.0.0" - "--remote-debugging-port=9222" - "--hide-scrollbars"-chrome_docker_commands_custom: []-chrome_docker_commands: "{{ chrome_docker_commands_default- + chrome_docker_commands_custom }}"--# Volumes-chrome_docker_volumes_default: []-chrome_docker_volumes_custom: []-chrome_docker_volumes: "{{ chrome_docker_volumes_default- + chrome_docker_volumes_custom }}"--# Devices-chrome_docker_devices_default: []-chrome_docker_devices_custom: []-chrome_docker_devices: "{{ chrome_docker_devices_default- + chrome_docker_devices_custom }}"--# Hosts-chrome_docker_hosts_default: {}-chrome_docker_hosts_custom: {}-chrome_docker_hosts: "{{ docker_hosts_common- | combine(chrome_docker_hosts_default)- | combine(chrome_docker_hosts_custom) }}"--# Labels-chrome_docker_labels_default: {}-chrome_docker_labels_custom: {}-chrome_docker_labels: "{{ docker_labels_common- | combine(chrome_docker_labels_default)- | combine(chrome_docker_labels_custom) }}"+chrome_role_docker_commands_custom: []+chrome_role_docker_commands: "{{ lookup('role_var', '_docker_commands_default', role='chrome')+ + lookup('role_var', '_docker_commands_custom', role='chrome') }}" # Hostname-chrome_docker_hostname: "{{ chrome_name }}"+chrome_role_docker_hostname: "{{ chrome_name }}" # Networks-chrome_docker_networks_alias: "{{ chrome_name }}"-chrome_docker_networks_default: []-chrome_docker_networks_custom: []-chrome_docker_networks: "{{ docker_networks_common- + chrome_docker_networks_default- + chrome_docker_networks_custom }}"--# Capabilities-chrome_docker_capabilities_default: []-chrome_docker_capabilities_custom: []-chrome_docker_capabilities: "{{ chrome_docker_capabilities_default- + chrome_docker_capabilities_custom }}"--# Security Opts-chrome_docker_security_opts_default: []-chrome_docker_security_opts_custom: []-chrome_docker_security_opts: "{{ chrome_docker_security_opts_default- + chrome_docker_security_opts_custom }}"+chrome_role_docker_networks_alias: "{{ chrome_name }}"+chrome_role_docker_networks_default: []+chrome_role_docker_networks_custom: []+chrome_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='chrome')+ + lookup('role_var', '_docker_networks_custom', role='chrome') }}" # Restart Policy-chrome_docker_restart_policy: unless-stopped+chrome_role_docker_restart_policy: unless-stopped # State-chrome_docker_state: started+chrome_role_docker_state: started
modified
roles/cockpit/defaults/main.yml
@@ -17,23 +17,22 @@ # Settings ################################ -cockpit_traefik_enabled: true-cockpit_vm_enabled: false-cockpit_service_after: docker.service-put_cockpit_dpkg_into_hold: true-put_cockpit_machines_dpkg_into_hold: true+cockpit_role_vm_enabled: false+cockpit_role_service_after: docker.service+cockpit_role_put_dpkg_into_hold: true+cockpit_role_put_machines_dpkg_into_hold: true ################################ # Paths ################################ -cockpit_paths_socket_location: "/etc/systemd/system/cockpit.socket.d/listen.conf"-cockpit_paths_socket_override_location: "/etc/systemd/system/cockpit.socket.d/override.conf"-cockpit_paths_config_location: "/etc/cockpit/cockpit.conf"-cockpit_paths_traefik_location: "/opt/traefik/cockpit.yml"-cockpit_paths_service_location: "/lib/systemd/system/cockpit.service"-cockpit_paths_override_location: "/etc/systemd/system/cockpit.service.d/override.conf"-cockpit_paths_folders_list:+cockpit_role_paths_socket_location: "/etc/systemd/system/cockpit.socket.d/listen.conf"+cockpit_role_paths_socket_override_location: "/etc/systemd/system/cockpit.socket.d/override.conf"+cockpit_role_paths_config_location: "/etc/cockpit/cockpit.conf"+cockpit_role_paths_traefik_location: "{{ server_appdata_path }}/traefik/cockpit.yml"+cockpit_role_paths_service_location: "/lib/systemd/system/cockpit.service"+cockpit_role_paths_override_location: "/etc/systemd/system/cockpit.service.d/override.conf"+cockpit_role_paths_folders_list: - "/etc/systemd/system/cockpit.socket.d" - "/etc/systemd/system/cockpit.service.d" - "/etc/cockpit"@@ -42,27 +41,28 @@ # Web ################################ -cockpit_web_subdomain: "{{ cockpit_name }}"-cockpit_web_domain: "{{ user.domain }}"-cockpit_web_port: "1337"-cockpit_web_url: "{{ 'https://' + (cockpit_web_subdomain + '.' + cockpit_web_domain- if (cockpit_web_subdomain | length > 0)- else cockpit_web_domain) }}"+cockpit_role_web_subdomain: "{{ cockpit_name }}"+cockpit_role_web_domain: "{{ user.domain }}"+cockpit_role_web_port: "1337"+cockpit_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='cockpit') + '.' + lookup('role_var', '_web_domain', role='cockpit')+ if (lookup('role_var', '_web_subdomain', role='cockpit') | length > 0)+ else lookup('role_var', '_web_domain', role='cockpit')) }}" ################################ # DNS ################################ -cockpit_dns_record: "{{ cockpit_web_subdomain }}"-cockpit_dns_zone: "{{ cockpit_web_domain }}"-cockpit_dns_proxy: "{{ dns.proxied }}"+cockpit_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='cockpit') }}"+cockpit_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='cockpit') }}"+cockpit_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -cockpit_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-cockpit_traefik_middleware_default: "{{ traefik_default_middleware }}"-cockpit_traefik_middleware_custom: ""-cockpit_traefik_certresolver: "{{ traefik_default_certresolver }}"-cockpit_traefik_api_enabled: false+cockpit_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+cockpit_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+cockpit_role_traefik_middleware_custom: ""+cockpit_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+cockpit_role_traefik_enabled: true+cockpit_role_traefik_api_enabled: false
modified
roles/cockpit/tasks/main.yml
@@ -10,14 +10,14 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"- when: cockpit_traefik_enabled+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}"+ when: lookup('role_var', '_traefik_enabled', role='cockpit') - name: Check if 'cockpit_socket' exists ansible.builtin.stat:- path: "{{ cockpit_paths_socket_location }}"+ path: "{{ lookup('role_var', '_paths_socket_location', role='cockpit') }}" register: cockpit_socket - name: Stop existing 'cockpit_socket'@@ -28,7 +28,7 @@ - name: Check if 'cockpit_service' exists ansible.builtin.stat:- path: "{{ cockpit_paths_service_location }}"+ path: "{{ lookup('role_var', '_paths_service_location', role='cockpit') }}" register: cockpit_service - name: Stop existing 'cockpit_service'@@ -39,14 +39,14 @@ - name: Check if 'cockpit_traefik' exists ansible.builtin.stat:- path: "{{ cockpit_paths_traefik_location }}"+ path: "{{ lookup('role_var', '_paths_traefik_location', role='cockpit') }}" register: cockpit_traefik - name: Remove cockpit_traefik template ansible.builtin.file:- path: "{{ cockpit_paths_traefik_location }}"+ path: "{{ lookup('role_var', '_paths_traefik_location', role='cockpit') }}" state: absent- when: not cockpit_traefik_enabled+ when: (not lookup('role_var', '_traefik_enabled', role='cockpit')) - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"@@ -54,12 +54,12 @@ - name: Import 'cockpit_traefik' Traefik Template ansible.builtin.template: src: cockpit.yml.j2- dest: "{{ cockpit_paths_traefik_location }}"+ dest: "{{ lookup('role_var', '_paths_traefik_location', role='cockpit') }}" mode: "664" owner: "{{ user.name }}" group: "{{ user.name }}" force: true- when: cockpit_traefik_enabled+ when: lookup('role_var', '_traefik_enabled', role='cockpit') - name: "Import Systemd Tasks" ansible.builtin.include_tasks: "subtasks/systemd.yml"@@ -69,10 +69,10 @@ - name: "Import VM Tasks" ansible.builtin.include_tasks: "subtasks/vm.yml"- when: cockpit_vm_enabled+ when: lookup('role_var', '_vm_enabled', role='cockpit') - name: Systemd services- when: not continuous_integration+ when: (not continuous_integration) block: - name: Reload systemd ansible.builtin.systemd_service:@@ -82,10 +82,10 @@ ansible.builtin.systemd: name: cockpit.socket state: started- enabled: yes+ enabled: true - name: Load 'cockpit_service' ansible.builtin.systemd: name: cockpit.service state: started- enabled: yes+ enabled: true
modified
roles/cockpit/tasks/subtasks/package.yml
@@ -14,19 +14,19 @@ ansible.builtin.dpkg_selections: name: "cockpit" selection: install- when: ("cockpit" in ansible_facts.packages)+ when: ("cockpit" in ansible_facts['packages']) - name: Package | Install 'cockpit' from backports ansible.builtin.apt: name: "cockpit"- default_release: "{{ ansible_distribution_release }}-backports"+ default_release: "{{ ansible_facts['distribution_release'] }}-backports" state: latest - name: Package | Put 'cockpit' into hold ansible.builtin.dpkg_selections: name: "cockpit" selection: hold- when: put_cockpit_dpkg_into_hold+ when: lookup('role_var', '_put_dpkg_into_hold', role='cockpit') - name: Package | Get 'cockpit' version ansible.builtin.command: "cockpit-bridge --version"@@ -37,4 +37,4 @@ - name: Package | Display 'cockpit' version ansible.builtin.debug: msg: "Cockpit version {{ cockpit_version.stdout.split()[1] }} installed."- when: cockpit_version is defined and cockpit_version.stdout is defined+ when: (cockpit_version is defined) and (cockpit_version.stdout is defined)
modified
roles/cockpit/tasks/subtasks/systemd.yml
@@ -10,7 +10,7 @@ - name: System | Import 'cockpit_config' ansible.builtin.template: src: cockpit.conf.j2- dest: "{{ cockpit_paths_config_location }}"+ dest: "{{ lookup('role_var', '_paths_config_location', role='cockpit') }}" mode: "0664" owner: root group: root@@ -19,7 +19,7 @@ - name: System | Import 'cockpit_socket' ansible.builtin.template: src: listen.conf.j2- dest: "{{ cockpit_paths_socket_location }}"+ dest: "{{ lookup('role_var', '_paths_socket_location', role='cockpit') }}" mode: "0664" owner: root group: root@@ -28,7 +28,7 @@ - name: System | Import 'socket_override' ansible.builtin.template: src: override.conf.j2- dest: "{{ cockpit_paths_socket_override_location }}"+ dest: "{{ lookup('role_var', '_paths_socket_override_location', role='cockpit') }}" mode: "0664" owner: root group: root@@ -37,7 +37,7 @@ - name: System | Import 'service_override' ansible.builtin.template: src: override.conf.j2- dest: "{{ cockpit_paths_override_location }}"+ dest: "{{ lookup('role_var', '_paths_override_location', role='cockpit') }}" mode: "0664" owner: root group: root
modified
roles/cockpit/tasks/subtasks/vm.yml
@@ -14,19 +14,19 @@ ansible.builtin.dpkg_selections: name: "cockpit-machines" selection: install- when: ("cockpit-machines" in ansible_facts.packages)+ when: ("cockpit-machines" in ansible_facts['packages']) - name: VM | Install 'cockpit-machines' from backports ansible.builtin.apt: name: "cockpit-machines"- default_release: "{{ ansible_distribution_release }}-backports"+ default_release: "{{ ansible_facts['distribution_release'] }}-backports" state: latest - name: VM | Put 'cockpit-machines' into hold ansible.builtin.dpkg_selections: name: "cockpit-machines" selection: hold- when: put_cockpit_machines_dpkg_into_hold+ when: lookup('role_var', '_put_machines_dpkg_into_hold', role='cockpit') - name: VM | Install necessary packages for Cockpit Machines ansible.builtin.package:
modified
roles/cockpit/templates/cockpit.conf.j2
@@ -1,5 +1,5 @@ [WebService]-Origins = {{ cockpit_web_url }}+Origins = {{ lookup('role_var', '_web_url', role='cockpit') }} ProtocolHeader = X-Forwarded-Proto ForwardedForHeader = X-Forwarded-For AllowUnencrypted = true
modified
roles/cockpit/templates/cockpit.yml.j2
@@ -16,10 +16,10 @@ service: "{{ cockpit_name }}" tls: options: securetls@file- certResolver: {{ cockpit_traefik_certresolver }}+ certResolver: {{ lookup('role_var', '_traefik_certresolver', role='cockpit') }} services: {{ cockpit_name }}: loadBalancer: servers:- - url: "http://172.19.0.1:{{ cockpit_web_port }}"+ - url: "http://172.19.0.1:{{ lookup('role_var', '_web_port', role='cockpit') }}"
modified
roles/cockpit/templates/listen.conf.j2
@@ -1,4 +1,4 @@ [Socket] ListenStream=-ListenStream=172.19.0.1:{{ cockpit_web_port }}+ListenStream=172.19.0.1:{{ lookup('role_var', '_web_port', role='cockpit') }} FreeBind=yes
modified
roles/cockpit/templates/override.conf.j2
@@ -9,5 +9,5 @@ ######################################################################### [Unit]-After={{ cockpit_service_after }}-Requires={{ cockpit_service_after }}+After={{ lookup('role_var', '_service_after', role='cockpit') }}+Requires={{ lookup('role_var', '_service_after', role='cockpit') }}
modified
roles/code_server/defaults/main.yml
@@ -17,135 +17,92 @@ # Paths ################################ -code_server_paths_folder: "{{ code_server_name }}"-code_server_paths_location: "{{ server_appdata_path }}/{{ code_server_paths_folder }}"-code_server_paths_folders_list:- - "{{ code_server_paths_location }}"- - "{{ code_server_paths_location }}/project"- - "{{ code_server_paths_location }}/.config"- - "{{ code_server_paths_location }}/.local"+code_server_role_paths_folder: "{{ code_server_name }}"+code_server_role_paths_location: "{{ server_appdata_path }}/{{ code_server_role_paths_folder }}"+code_server_role_paths_folders_list:+ - "{{ code_server_role_paths_location }}"+ - "{{ code_server_role_paths_location }}/project"+ - "{{ code_server_role_paths_location }}/.config"+ - "{{ code_server_role_paths_location }}/.local" ################################ # Web ################################ -code_server_web_subdomain: "{{ code_server_name }}"-code_server_web_domain: "{{ user.domain }}"-code_server_web_port: "8080"-code_server_web_url: "{{ 'https://' + (code_server_web_subdomain + '.' + code_server_web_domain- if (code_server_web_subdomain | length > 0)- else code_server_web_domain) }}"+code_server_role_web_subdomain: "{{ code_server_name }}"+code_server_role_web_domain: "{{ user.domain }}"+code_server_role_web_port: "8080"+code_server_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='code_server') + '.' + lookup('role_var', '_web_domain', role='code_server')+ if (lookup('role_var', '_web_subdomain', role='code_server') | length > 0)+ else lookup('role_var', '_web_domain', role='code_server')) }}" ################################ # DNS ################################ -code_server_dns_record: "{{ code_server_web_subdomain }}"-code_server_dns_zone: "{{ code_server_web_domain }}"-code_server_dns_proxy: "{{ dns.proxied }}"+code_server_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='code_server') }}"+code_server_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='code_server') }}"+code_server_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -code_server_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-code_server_traefik_middleware_default: "{{ traefik_default_middleware }}"-code_server_traefik_middleware_custom: ""-code_server_traefik_certresolver: "{{ traefik_default_certresolver }}"-code_server_traefik_enabled: true+code_server_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+code_server_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+code_server_role_traefik_middleware_custom: ""+code_server_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+code_server_role_traefik_enabled: true ################################ # Docker ################################ # Container-code_server_docker_container: "{{ code_server_name }}"+code_server_role_docker_container: "{{ code_server_name }}" # Image-code_server_docker_image_pull: true-code_server_docker_image_tag: "latest"-code_server_docker_image: "codercom/code-server:{{ code_server_docker_image_tag }}"--# Ports-code_server_docker_ports_defaults: []-code_server_docker_ports_custom: []-code_server_docker_ports: "{{ code_server_docker_ports_defaults- + code_server_docker_ports_custom }}"+code_server_role_docker_image_pull: true+code_server_role_docker_image_repo: "codercom/code-server"+code_server_role_docker_image_tag: "latest"+code_server_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='code_server') }}:{{ lookup('role_var', '_docker_image_tag', role='code_server') }}" # Envs-code_server_docker_envs_default:+code_server_role_docker_envs_default: UMASK: "002" TZ: "{{ tz }}" PASSWORD: "{{ user.pass }}" DOCKER_USER: "{{ user.name }}"-code_server_docker_envs_custom: {}-code_server_docker_envs: "{{ code_server_docker_envs_default- | combine(code_server_docker_envs_custom) }}"--# Commands-code_server_docker_commands_default: []-code_server_docker_commands_custom: []-code_server_docker_commands: "{{ code_server_docker_commands_default- + code_server_docker_commands_custom }}"+code_server_role_docker_envs_custom: {}+code_server_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='code_server')+ | combine(lookup('role_var', '_docker_envs_custom', role='code_server')) }}" # Volumes-code_server_docker_volumes_default:- - "{{ code_server_paths_location }}/project:/home/coder/project"- - "{{ code_server_paths_location }}/.config:/home/coder/.config"- - "{{ code_server_paths_location }}/.local:/home/coder/.local"+code_server_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='code_server') }}/project:/home/coder/project"+ - "{{ lookup('role_var', '_paths_location', role='code_server') }}/.config:/home/coder/.config"+ - "{{ lookup('role_var', '_paths_location', role='code_server') }}/.local:/home/coder/.local" - "{{ server_appdata_path }}:/host_opt"-code_server_docker_volumes_custom: []-code_server_docker_volumes: "{{ code_server_docker_volumes_default- + code_server_docker_volumes_custom }}"--# Devices-code_server_docker_devices_default: []-code_server_docker_devices_custom: []-code_server_docker_devices: "{{ code_server_docker_devices_default- + code_server_docker_devices_custom }}"--# Hosts-code_server_docker_hosts_default: {}-code_server_docker_hosts_custom: {}-code_server_docker_hosts: "{{ docker_hosts_common- | combine(code_server_docker_hosts_default)- | combine(code_server_docker_hosts_custom) }}"--# Labels-code_server_docker_labels_default: {}-code_server_docker_labels_custom: {}-code_server_docker_labels: "{{ docker_labels_common- | combine(code_server_docker_labels_default)- | combine(code_server_docker_labels_custom) }}"+code_server_role_docker_volumes_custom: []+code_server_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='code_server')+ + lookup('role_var', '_docker_volumes_custom', role='code_server') }}" # Hostname-code_server_docker_hostname: "{{ code_server_name }}"+code_server_role_docker_hostname: "{{ code_server_name }}" # Networks-code_server_docker_networks_alias: "{{ code_server_name }}"-code_server_docker_networks_default: []-code_server_docker_networks_custom: []-code_server_docker_networks: "{{ docker_networks_common- + code_server_docker_networks_default- + code_server_docker_networks_custom }}"--# Capabilities-code_server_docker_capabilities_default: []-code_server_docker_capabilities_custom: []-code_server_docker_capabilities: "{{ code_server_docker_capabilities_default- + code_server_docker_capabilities_custom }}"--# Security Opts-code_server_docker_security_opts_default: []-code_server_docker_security_opts_custom: []-code_server_docker_security_opts: "{{ code_server_docker_security_opts_default- + code_server_docker_security_opts_custom }}"+code_server_role_docker_networks_alias: "{{ code_server_name }}"+code_server_role_docker_networks_default: []+code_server_role_docker_networks_custom: []+code_server_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='code_server')+ + lookup('role_var', '_docker_networks_custom', role='code_server') }}" # Restart Policy-code_server_docker_restart_policy: unless-stopped+code_server_role_docker_restart_policy: unless-stopped # State-code_server_docker_state: started+code_server_role_docker_state: started # User-code_server_docker_user: "{{ uid }}:{{ gid }}"+code_server_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/code_server/tasks/main.yml
@@ -14,9 +14,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/code_server/tasks/subtasks/legacy.yml
@@ -7,24 +7,24 @@ # GNU General Public License v3.0 # ######################################################################### ----- name: Legacy | Check if '/opt/coder' folder exists+- name: Legacy | Check if '{{ server_appdata_path }}/coder' folder exists ansible.builtin.stat:- path: "/opt/coder"+ path: "{{ server_appdata_path }}/coder" register: code_server_oldfolder -- name: Legacy | Check if {{ code_server_paths_location }} folder exists+- name: Legacy | Check if {{ lookup('role_var', '_paths_location', role='code_server') }} folder exists ansible.builtin.stat:- path: "{{ code_server_paths_location }}"+ path: "{{ lookup('role_var', '_paths_location', role='code_server') }}" register: code_server_newfolder -- name: "Fail when '/opt/coder' does not exist"+- name: "Legacy | Fail when '{{ server_appdata_path }}/coder' does not exist" ansible.builtin.fail:- msg: "A migration has been attempted, but the /opt/coder folder is missing. If you have already run the migration once, you don't need to pass the -e 'code_server_migrate_coder=true' argument anymore. If this is your first time running the migration but you're using a custom folder, move the folder manually to '/opt/code-server', remove the old 'coder' subdomain then run the tag normally."+ msg: "A migration has been attempted, but the {{ server_appdata_path }}/coder folder is missing. If you have already run the migration once, you don't need to pass the -e 'code_server_migrate_coder=true' argument anymore. If this is your first time running the migration but you're using a custom folder, move the folder manually to '{{ server_appdata_path }}/code-server', remove the old 'coder' subdomain then run the tag normally." when: (not code_server_oldfolder.stat.exists) -- name: "Fail when {{ code_server_paths_location }} already exists"+- name: "Legacy | Fail when {{ lookup('role_var', '_paths_location', role='code_server') }} already exists" ansible.builtin.fail:- msg: "A migration has been attempted, but the {{ code_server_paths_location }} folder already exists. If you have already run the migration once, you don't need to pass the -e 'code_server_migrate_coder=true' argument anymore. If this is your first time running the migration, then you have created a folder manually or have already a container using the {{ code_server_paths_location }} folder. In order for the migration to actually run, an '/opt/coder' folder must exists, while {{ code_server_paths_location }} must not."+ msg: "A migration has been attempted, but the {{ lookup('role_var', '_paths_location', role='code_server') }} folder already exists. If you have already run the migration once, you don't need to pass the -e 'code_server_migrate_coder=true' argument anymore. If this is your first time running the migration, then you have created a folder manually or have already a container using the {{ lookup('role_var', '_paths_location', role='code_server') }} folder. In order for the migration to actually run, an '{{ server_appdata_path }}/coder' folder must exists, while {{ lookup('role_var', '_paths_location', role='code_server') }} must not." when: (code_server_newfolder.stat.exists) - name: Legacy | Delete old DNS record@@ -40,11 +40,11 @@ - name: Legacy | Move opt folder 'coder' to 'code-server' ansible.builtin.shell: |- mv /opt/coder "{{ code_server_paths_location }}"+ mv {{ server_appdata_path }}/coder "{{ lookup('role_var', '_paths_location', role='code_server') }}" - name: Legacy | Set permissions on 'code_server' ansible.builtin.file:- path: "{{ code_server_paths_location }}"+ path: "{{ lookup('role_var', '_paths_location', role='code_server') }}" state: directory recurse: true owner: "{{ user.name }}"
modified
roles/codex/defaults/main.yml
@@ -1,5 +1,5 @@ ##########################################################################-# Title: Sandbox: Codex | Default Variables #+# Title: Sandbox: Codex | Default Variables # # Author(s): CHAIR/Raneydazed # # URL: https://github.com/saltyorg/Sandbox # # -- #@@ -17,130 +17,85 @@ # Paths ################################ -codex_paths_folder: "{{ codex_name }}"-codex_paths_location: "{{ server_appdata_path }}/{{ codex_paths_folder }}"-codex_paths_folders_list:- - "{{ codex_paths_location }}"- - "{{ codex_paths_location }}/config"+codex_role_paths_folder: "{{ codex_name }}"+codex_role_paths_location: "{{ server_appdata_path }}/{{ codex_role_paths_folder }}"+codex_role_paths_folders_list:+ - "{{ codex_role_paths_location }}"+ - "{{ codex_role_paths_location }}/config" ################################ # Web ################################ -codex_web_subdomain: "{{ codex_name }}"-codex_web_domain: "{{ user.domain }}"-codex_web_port: "9810"-codex_web_url: "{{ 'https://' + (codex_web_subdomain + '.' + codex_web_domain- if (codex_web_subdomain | length > 0)- else codex_web_domain) }}"+codex_role_web_subdomain: "{{ codex_name }}"+codex_role_web_domain: "{{ user.domain }}"+codex_role_web_port: "9810"+codex_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='codex') + '.' + lookup('role_var', '_web_domain', role='codex')+ if (lookup('role_var', '_web_subdomain', role='codex') | length > 0)+ else lookup('role_var', '_web_domain', role='codex')) }}" ################################ # DNS ################################ -codex_dns_record: "{{ lookup('vars', codex_name + '_web_subdomain', default=codex_web_subdomain) }}"-codex_dns_zone: "{{ lookup('vars', codex_name + '_web_domain', default=codex_web_domain) }}"-codex_dns_proxy: "{{ dns.proxied }}"+codex_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='codex') }}"+codex_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='codex') }}"+codex_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -codex_traefik_sso_middleware: ""-codex_traefik_middleware_default: "{{ traefik_default_middleware }}"-codex_traefik_middleware_custom: ""-codex_traefik_certresolver: "{{ traefik_default_certresolver }}"-codex_traefik_enabled: true-codex_traefik_api_enabled: false-codex_traefik_api_endpoint: ""+codex_role_traefik_sso_middleware: ""+codex_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+codex_role_traefik_middleware_custom: ""+codex_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+codex_role_traefik_enabled: true+codex_role_traefik_api_enabled: false+codex_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-codex_docker_container: "{{ codex_name }}"+codex_role_docker_container: "{{ codex_name }}" # Image-codex_docker_image_pull: true-codex_docker_image_repo: "docker.io/ajslater/codex"-codex_docker_image_tag: "latest"-codex_docker_image: "{{ lookup('vars', codex_name + '_docker_image_repo', default=codex_docker_image_repo)- + ':' + lookup('vars', codex_name + '_docker_image_tag', default=codex_docker_image_tag) }}"--# Ports-codex_docker_ports_defaults: []-codex_docker_ports_custom: []-codex_docker_ports: "{{ lookup('vars', codex_name + '_docker_ports_defaults', default=codex_docker_ports_defaults)- + lookup('vars', codex_name + '_docker_ports_custom', default=codex_docker_ports_custom) }}"+codex_role_docker_image_pull: true+codex_role_docker_image_repo: "docker.io/ajslater/codex"+codex_role_docker_image_tag: "latest"+codex_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='codex') }}:{{ lookup('role_var', '_docker_image_tag', role='codex') }}" # Envs-codex_docker_envs_default:+codex_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-codex_docker_envs_custom: {}-codex_docker_envs: "{{ lookup('vars', codex_name + '_docker_envs_default', default=codex_docker_envs_default)- | combine(lookup('vars', codex_name + '_docker_envs_custom', default=codex_docker_envs_custom)) }}"--# Commands-codex_docker_commands_default: []-codex_docker_commands_custom: []-codex_docker_commands: "{{ lookup('vars', codex_name + '_docker_commands_default', default=codex_docker_commands_default)- + lookup('vars', codex_name + '_docker_docker_commands_custom', default=codex_docker_commands_custom) }}"+codex_role_docker_envs_custom: {}+codex_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='codex')+ | combine(lookup('role_var', '_docker_envs_custom', role='codex')) }}" # Volumes-codex_docker_volumes_default:- - "{{ codex_paths_location }}:/config"-codex_docker_volumes_custom: []-codex_docker_volumes: "{{ lookup('vars', codex_name + '_docker_volumes_default', default=codex_docker_volumes_default)- + lookup('vars', codex_name + '_docker_volumes_custom', default=codex_docker_volumes_custom) }}"--# Devices-codex_docker_devices_default: []-codex_docker_devices_custom: []-codex_docker_devices: "{{ lookup('vars', codex_name + '_docker_devices_default', default=codex_docker_devices_default)- + lookup('vars', codex_name + '_docker_devices_custom', default=codex_docker_devices_custom) }}"--# Hosts-codex_docker_hosts_default: {}-codex_docker_hosts_custom: {}-codex_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', codex_name + '_docker_hosts_default', default=codex_docker_hosts_default))- | combine(lookup('vars', codex_name + '_docker_hosts_custom', default=codex_docker_hosts_custom)) }}"--# Labels-codex_docker_labels_default: {}-codex_docker_labels_custom: {}-codex_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', codex_name + '_docker_labels_default', default=codex_docker_labels_default))- | combine(lookup('vars', codex_name + '_docker_labels_custom', default=codex_docker_labels_custom)) }}"+codex_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='codex') }}:/config"+codex_role_docker_volumes_custom: []+codex_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='codex')+ + lookup('role_var', '_docker_volumes_custom', role='codex') }}" # Hostname-codex_docker_hostname: "{{ codex_name }}"+codex_role_docker_hostname: "{{ codex_name }}" # Networks-codex_docker_networks_alias: "{{ codex_name }}"-codex_docker_networks_default: []-codex_docker_networks_custom: []-codex_docker_networks: "{{ docker_networks_common- + lookup('vars', codex_name + '_docker_networks_default', default=codex_docker_networks_default)- + lookup('vars', codex_name + '_docker_networks_custom', default=codex_docker_networks_custom) }}"--# Capabilities-codex_docker_capabilities_default: []-codex_docker_capabilities_custom: []-codex_docker_capabilities: "{{ lookup('vars', codex_name + '_docker_capabilities_default', default=codex_docker_capabilities_default)- + lookup('vars', codex_name + '_docker_capabilities_custom', default=codex_docker_capabilities_custom) }}"--# Security Opts-codex_docker_security_opts_default: []-codex_docker_security_opts_custom: []-codex_docker_security_opts: "{{ lookup('vars', codex_name + '_docker_security_opts_default', default=codex_docker_security_opts_default)- + lookup('vars', codex_name + '_docker_security_opts_custom', default=codex_docker_security_opts_custom) }}"+codex_role_docker_networks_alias: "{{ codex_name }}"+codex_role_docker_networks_default: []+codex_role_docker_networks_custom: []+codex_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='codex')+ + lookup('role_var', '_docker_networks_custom', role='codex') }}" # Restart Policy-codex_docker_restart_policy: unless-stopped+codex_role_docker_restart_policy: unless-stopped # State-codex_docker_state: started+codex_role_docker_state: started
modified
roles/codex/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/comixed/defaults/main.yml
@@ -18,124 +18,75 @@ # Paths ################################ -comixed_paths_folder: "{{ comixed_name }}"-comixed_paths_location: "{{ server_appdata_path }}/{{ comixed_paths_folder }}"-comixed_paths_folders_list:- - "{{ comixed_paths_location }}"- - "/mnt/local/Media/Comics"+comixed_role_paths_folder: "{{ comixed_name }}"+comixed_role_paths_location: "{{ server_appdata_path }}/{{ comixed_role_paths_folder }}"+comixed_role_paths_folders_list:+ - "{{ comixed_role_paths_location }}"+ - "{{ server_local_folder_path }}/Media/Comics" ################################ # Web ################################ -comixed_web_subdomain: "{{ comixed_name }}"-comixed_web_domain: "{{ user.domain }}"-comixed_web_port: "7171"-comixed_web_url: "{{ 'https://' + (comixed_web_subdomain + '.' + comixed_web_domain- if (comixed_web_subdomain | length > 0)- else comixed_web_domain) }}"+comixed_role_web_subdomain: "{{ comixed_name }}"+comixed_role_web_domain: "{{ user.domain }}"+comixed_role_web_port: "7171"+comixed_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='comixed') + '.' + lookup('role_var', '_web_domain', role='comixed')+ if (lookup('role_var', '_web_subdomain', role='comixed') | length > 0)+ else lookup('role_var', '_web_domain', role='comixed')) }}" ################################ # DNS ################################ -comixed_dns_record: "{{ comixed_web_subdomain }}"-comixed_dns_zone: "{{ comixed_web_domain }}"-comixed_dns_proxy: "{{ dns.proxied }}"+comixed_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='comixed') }}"+comixed_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='comixed') }}"+comixed_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -comixed_traefik_sso_middleware: ""-comixed_traefik_middleware_default: "{{ traefik_default_middleware }}"-comixed_traefik_middleware_custom: ""-comixed_traefik_certresolver: "{{ traefik_default_certresolver }}"-comixed_traefik_enabled: true+comixed_role_traefik_sso_middleware: ""+comixed_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+comixed_role_traefik_middleware_custom: ""+comixed_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+comixed_role_traefik_enabled: true ################################ # Docker ################################ # Container-comixed_docker_container: "{{ comixed_name }}"+comixed_role_docker_container: "{{ comixed_name }}" # Image-comixed_docker_image_pull: true-comixed_docker_image_tag: "latest"-comixed_docker_image: "comixed/comixed:{{ comixed_docker_image_tag }}"--# Ports-comixed_docker_ports_defaults: []-comixed_docker_ports_custom: []-comixed_docker_ports: "{{ comixed_docker_ports_defaults- + comixed_docker_ports_custom }}"--# Envs-comixed_docker_envs_default: {}-comixed_docker_envs_custom: {}-comixed_docker_envs: "{{ comixed_docker_envs_default- | combine(comixed_docker_envs_custom) }}"--# Commands-comixed_docker_commands_default: []-comixed_docker_commands_custom: []-comixed_docker_commands: "{{ comixed_docker_commands_default- + comixed_docker_commands_custom }}"+comixed_role_docker_image_pull: true+comixed_role_docker_image_repo: "comixed/comixed"+comixed_role_docker_image_tag: "latest"+comixed_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='comixed') }}:{{ lookup('role_var', '_docker_image_tag', role='comixed') }}" # Volumes-comixed_docker_volumes_default:- - "{{ comixed_paths_location }}:/root/.comixed"+comixed_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='comixed') }}:/root/.comixed" - "/mnt/unionfs/Media/Comics:/comic_dir"-comixed_docker_volumes_custom: []-comixed_docker_volumes: "{{ comixed_docker_volumes_default- + comixed_docker_volumes_custom }}"--# Devices-comixed_docker_devices_default: []-comixed_docker_devices_custom: []-comixed_docker_devices: "{{ comixed_docker_devices_default- + comixed_docker_devices_custom }}"--# Hosts-comixed_docker_hosts_default: {}-comixed_docker_hosts_custom: {}-comixed_docker_hosts: "{{ docker_hosts_common- | combine(comixed_docker_hosts_default)- | combine(comixed_docker_hosts_custom) }}"--# Labels-comixed_docker_labels_default: {}-comixed_docker_labels_custom: {}-comixed_docker_labels: "{{ docker_labels_common- | combine(comixed_docker_labels_default)- | combine(comixed_docker_labels_custom) }}"+comixed_role_docker_volumes_custom: []+comixed_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='comixed')+ + lookup('role_var', '_docker_volumes_custom', role='comixed') }}" # Hostname-comixed_docker_hostname: "{{ comixed_name }}"+comixed_role_docker_hostname: "{{ comixed_name }}" # Networks-comixed_docker_networks_alias: "{{ comixed_name }}"-comixed_docker_networks_default: []-comixed_docker_networks_custom: []-comixed_docker_networks: "{{ docker_networks_common- + comixed_docker_networks_default- + comixed_docker_networks_custom }}"--# Capabilities-comixed_docker_capabilities_default: []-comixed_docker_capabilities_custom: []-comixed_docker_capabilities: "{{ comixed_docker_capabilities_default- + comixed_docker_capabilities_custom }}"--# Security Opts-comixed_docker_security_opts_default: []-comixed_docker_security_opts_custom: []-comixed_docker_security_opts: "{{ comixed_docker_security_opts_default- + comixed_docker_security_opts_custom }}"+comixed_role_docker_networks_alias: "{{ comixed_name }}"+comixed_role_docker_networks_default: []+comixed_role_docker_networks_custom: []+comixed_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='comixed')+ + lookup('role_var', '_docker_networks_custom', role='comixed') }}" # Restart Policy-comixed_docker_restart_policy: unless-stopped+comixed_role_docker_restart_policy: unless-stopped # State-comixed_docker_state: started+comixed_role_docker_state: started
modified
roles/comixed/tasks/main.yml
@@ -11,9 +11,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/crafty/defaults/main.yml
@@ -17,163 +17,132 @@ # Paths ################################ -crafty_paths_folder: "{{ crafty_name }}"-crafty_paths_group: "root"-crafty_paths_location: "{{ server_appdata_path }}/{{ crafty_paths_folder }}"-crafty_paths_folders_list:- - "{{ crafty_paths_location }}"- - "{{ crafty_paths_location }}/backups"- - "{{ crafty_paths_location }}/logs"- - "{{ crafty_paths_location }}/servers"- - "{{ crafty_paths_location }}/config"- - "{{ crafty_paths_location }}/import"-crafty_paths_recurse: true+crafty_role_paths_folder: "{{ crafty_name }}"+crafty_role_paths_group: "root"+crafty_role_paths_location: "{{ server_appdata_path }}/{{ crafty_role_paths_folder }}"+crafty_role_paths_folders_list:+ - "{{ crafty_role_paths_location }}"+ - "{{ crafty_role_paths_location }}/backups"+ - "{{ crafty_role_paths_location }}/logs"+ - "{{ crafty_role_paths_location }}/servers"+ - "{{ crafty_role_paths_location }}/config"+ - "{{ crafty_role_paths_location }}/import"+crafty_role_paths_recurse: true ################################ # Web ################################ -crafty_web_subdomain: "{{ crafty_name }}"-crafty_web_domain: "{{ user.domain }}"-crafty_web_port: "8443"-crafty_web_scheme: "https"-crafty_web_serverstransport: "skipverify@file"-crafty_web_url: "{{ 'https://' + (crafty_web_subdomain + '.' + crafty_web_domain- if (crafty_web_subdomain | length > 0)- else crafty_web_domain) }}"+crafty_role_web_subdomain: "{{ crafty_name }}"+crafty_role_web_domain: "{{ user.domain }}"+crafty_role_web_port: "8443"+crafty_role_web_scheme: "https"+crafty_role_web_serverstransport: "skipverify@file"+crafty_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='crafty') + '.' + lookup('role_var', '_web_domain', role='crafty')+ if (lookup('role_var', '_web_subdomain', role='crafty') | length > 0)+ else lookup('role_var', '_web_domain', role='crafty')) }}" -crafty_dynmap_web_subdomain: "{{ crafty_name }}-map"-crafty_dynmap_web_domain: "{{ user.domain }}"-crafty_dynmap_web_port: "8123"-crafty_dynmap_host: "{{ crafty_dynmap_web_subdomain- + '.' + crafty_dynmap_web_domain }}"+crafty_role_dynmap_web_subdomain: "{{ crafty_name }}-map"+crafty_role_dynmap_web_domain: "{{ user.domain }}"+crafty_role_dynmap_web_port: "8123"+crafty_role_dynmap_host: "{{ lookup('role_var', '_dynmap_web_subdomain', role='crafty')+ + '.' + lookup('role_var', '_dynmap_web_domain', role='crafty') }}" ################################ # DNS ################################ -crafty_dns_record: "{{ crafty_web_subdomain }}"-crafty_dns_zone: "{{ crafty_web_domain }}"-crafty_dns_proxy: "{{ dns.proxied }}"-crafty_dynmap_dns_record: "{{ crafty_dynmap_web_subdomain }}"-crafty_dynmap_dns_zone: "{{ crafty_web_domain }}"-crafty_dynmap_dns_proxy: "{{ dns.proxied }}"+crafty_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='crafty') }}"+crafty_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='crafty') }}"+crafty_role_dns_proxy: "{{ dns_proxied }}"+crafty_role_dynmap_dns_record: "{{ lookup('role_var', '_dynmap_web_subdomain', role='crafty') }}"+crafty_role_dynmap_dns_zone: "{{ lookup('role_var', '_web_domain', role='crafty') }}"+crafty_role_dynmap_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -crafty_traefik_sso_middleware: ""-crafty_traefik_middleware_default: "{{ traefik_default_middleware }}"-crafty_traefik_middleware_custom: ""-crafty_traefik_certresolver: "{{ traefik_default_certresolver }}"-crafty_traefik_enabled: true+crafty_role_traefik_sso_middleware: ""+crafty_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+crafty_role_traefik_middleware_custom: ""+crafty_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+crafty_role_traefik_enabled: true ################################ # Docker ################################ # Container-crafty_docker_container: "{{ crafty_name }}"+crafty_role_docker_container: "{{ crafty_name }}" # Image-crafty_docker_image_pull: true-crafty_docker_image_tag: "latest"-crafty_docker_image: "arcadiatechnology/crafty-4:{{ crafty_docker_image_tag }}"+crafty_role_docker_image_pull: true+crafty_role_docker_image_repo: "arcadiatechnology/crafty-4"+crafty_role_docker_image_tag: "latest"+crafty_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='crafty') }}:{{ lookup('role_var', '_docker_image_tag', role='crafty') }}" # Ports-crafty_docker_ports_defaults:+crafty_role_docker_ports_default: - "19132:19132/udp" - "25500-25600:25500-25600"-crafty_docker_ports_custom: []-crafty_docker_ports: "{{ crafty_docker_ports_defaults- + crafty_docker_ports_custom }}"+crafty_role_docker_ports_custom: []+crafty_role_docker_ports: "{{ lookup('role_var', '_docker_ports_default', role='crafty')+ + lookup('role_var', '_docker_ports_custom', role='crafty') }}" # Envs-crafty_docker_envs_default:+crafty_role_docker_envs_default: TZ: "{{ tz }}"-crafty_docker_envs_custom: {}-crafty_docker_envs: "{{ crafty_docker_envs_default- | combine(crafty_docker_envs_custom) }}"--# Commands-crafty_docker_commands_default: []-crafty_docker_commands_custom: []-crafty_docker_commands: "{{ crafty_docker_commands_default- + crafty_docker_commands_custom }}"+crafty_role_docker_envs_custom: {}+crafty_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='crafty')+ | combine(lookup('role_var', '_docker_envs_custom', role='crafty')) }}" # Volumes-crafty_docker_volumes_default:- - "{{ crafty_paths_location }}/backups:/crafty/backups"- - "{{ crafty_paths_location }}/logs:/crafty/logs"- - "{{ crafty_paths_location }}/servers:/crafty/servers"- - "{{ crafty_paths_location }}/config:/crafty/app/config"- - "{{ crafty_paths_location }}/import:/crafty/import"-crafty_docker_volumes_custom: []-crafty_docker_volumes: "{{ crafty_docker_volumes_default- + crafty_docker_volumes_custom }}"--# Devices-crafty_docker_devices_default: []-crafty_docker_devices_custom: []-crafty_docker_devices: "{{ crafty_docker_devices_default- + crafty_docker_devices_custom }}"--# Hosts-crafty_docker_hosts_default: {}-crafty_docker_hosts_custom: {}-crafty_docker_hosts: "{{ docker_hosts_common- | combine(crafty_docker_hosts_default)- | combine(crafty_docker_hosts_custom) }}"+crafty_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='crafty') }}/backups:/crafty/backups"+ - "{{ lookup('role_var', '_paths_location', role='crafty') }}/logs:/crafty/logs"+ - "{{ lookup('role_var', '_paths_location', role='crafty') }}/servers:/crafty/servers"+ - "{{ lookup('role_var', '_paths_location', role='crafty') }}/config:/crafty/app/config"+ - "{{ lookup('role_var', '_paths_location', role='crafty') }}/import:/crafty/import"+crafty_role_docker_volumes_custom: []+crafty_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='crafty')+ + lookup('role_var', '_docker_volumes_custom', role='crafty') }}" # Labels-crafty_docker_labels_default:+crafty_role_docker_labels_default: - '{ "traefik.http.routers.{{ crafty_name }}-map-http.entrypoints": "web" }' - '{ "traefik.http.routers.{{ crafty_name }}-map-http.service": "{{ crafty_name }}-map" }'- - '{ "traefik.http.routers.{{ crafty_name }}-map-http.rule": "Host(`{{ crafty_dynmap_host }}`)" }'+ - '{ "traefik.http.routers.{{ crafty_name }}-map-http.rule": "Host(`{{ lookup("role_var", "_dynmap_host", role="crafty") }}`)" }' - '{ "traefik.http.routers.{{ crafty_name }}-map-http.middlewares": "{{ traefik_default_middleware_http }}" }' - '{ "traefik.http.routers.{{ crafty_name }}-map-http.priority": "20" }' - '{ "traefik.http.routers.{{ crafty_name }}-map.entrypoints": "websecure" }' - '{ "traefik.http.routers.{{ crafty_name }}-map.service": "{{ crafty_name }}-map" }'- - '{ "traefik.http.routers.{{ crafty_name }}-map.rule": "Host(`{{ crafty_dynmap_host }}`)" }'+ - '{ "traefik.http.routers.{{ crafty_name }}-map.rule": "Host(`{{ lookup("role_var", "_dynmap_host", role="crafty") }}`)" }' - '{ "traefik.http.routers.{{ crafty_name }}-map.tls.options": "securetls@file" }'- - '{ "traefik.http.routers.{{ crafty_name }}-map.tls.certresolver": "{{ crafty_traefik_certresolver }}" }'+ - '{ "traefik.http.routers.{{ crafty_name }}-map.tls.certresolver": "{{ lookup("role_var", "_traefik_certresolver", role="crafty") }}" }' - '{ "traefik.http.routers.{{ crafty_name }}-map.middlewares": "{{ traefik_default_middleware }}" }' - '{ "traefik.http.routers.{{ crafty_name }}-map.priority": "20" }'- - '{ "traefik.http.services.{{ crafty_name }}-map.loadbalancer.server.port": "{{ crafty_dynmap_web_port }}" }'-crafty_docker_labels_custom: {}-crafty_docker_labels: "{{ docker_labels_common- | combine(crafty_docker_labels_default)- | combine(crafty_docker_labels_custom) }}"+ - '{ "traefik.http.services.{{ crafty_name }}-map.loadbalancer.server.port": "{{ lookup("role_var", "_dynmap_web_port", role="crafty") }}" }'+crafty_role_docker_labels_custom: {}+crafty_role_docker_labels: "{{ lookup('role_var', '_docker_labels_default', role='crafty')+ | combine(lookup('role_var', '_docker_labels_custom', role='crafty')) }}" # Hostname-crafty_docker_hostname: "{{ crafty_name }}"+crafty_role_docker_hostname: "{{ crafty_name }}" # Networks-crafty_docker_networks_alias: "{{ crafty_name }}"-crafty_docker_networks_default: []-crafty_docker_networks_custom: []-crafty_docker_networks: "{{ docker_networks_common- + crafty_docker_networks_default- + crafty_docker_networks_custom }}"--# Capabilities-crafty_docker_capabilities_default: []-crafty_docker_capabilities_custom: []-crafty_docker_capabilities: "{{ crafty_docker_capabilities_default- + crafty_docker_capabilities_custom }}"--# Security Opts-crafty_docker_security_opts_default: []-crafty_docker_security_opts_custom: []-crafty_docker_security_opts: "{{ crafty_docker_security_opts_default- + crafty_docker_security_opts_custom }}"+crafty_role_docker_networks_alias: "{{ crafty_name }}"+crafty_role_docker_networks_default: []+crafty_role_docker_networks_custom: []+crafty_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='crafty')+ + lookup('role_var', '_docker_networks_custom', role='crafty') }}" # Restart Policy-crafty_docker_restart_policy: unless-stopped+crafty_role_docker_restart_policy: unless-stopped # State-crafty_docker_state: started+crafty_role_docker_state: started # Stop Timeout-crafty_docker_stop_timeout: 900+crafty_role_docker_stop_timeout: 900
modified
roles/crafty/tasks/main.yml
@@ -10,20 +10,20 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dynmap_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dynmap_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dynmap_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dynmap_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dynmap_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dynmap_dns_proxy') }}" -- name: Check if '{{ crafty_paths_location }}' exists+- name: Check if '{{ lookup('role_var', '_paths_location', role='crafty') }}' exists ansible.builtin.stat:- path: "{{ crafty_paths_location }}"+ path: "{{ lookup('role_var', '_paths_location', role='crafty') }}" register: crafty_config - name: Remove existing Docker container@@ -35,7 +35,7 @@ - name: Import 'config.json' ansible.builtin.template: src: config.json.j2- dest: "{{ crafty_paths_location }}/config/default.json"+ dest: "{{ lookup('role_var', '_paths_location', role='crafty') }}/config/default.json" mode: "0664" owner: "{{ user.name }}" group: root
modified
roles/dashdot/defaults/main.yml
@@ -17,158 +17,115 @@ # Settings ################################ -dashdot_show_host: "false"-dashdot_cpu_temps: "false"-dashdot_imperial: "false"-dashdot_always_show_percentages: "false"-dashdot_title: "dash."-dashdot_widget_list: "os,cpu,storage,ram,network"-dashdot_os_label_list: "os,arch,up_since"-dashdot_cpu_label_list: "brand,model,cores,threads,frequency"-dashdot_storage_label_list: "brand,size,type"-dashdot_ram_label_list: "brand,size,type,frequency"-dashdot_network_label_list: "type,speed_up,speed_down,interface_speed"-dashdot_gpu_label_list: "brand,model,memory"+dashdot_role_show_host: "false"+dashdot_role_cpu_temps: "false"+dashdot_role_imperial: "false"+dashdot_role_always_show_percentages: "false"+dashdot_role_title: "dash."+dashdot_role_widget_list: "os,cpu,storage,ram,network"+dashdot_role_os_label_list: "os,arch,up_since"+dashdot_role_cpu_label_list: "brand,model,cores,threads,frequency"+dashdot_role_storage_label_list: "brand,size,type"+dashdot_role_ram_label_list: "brand,size,type,frequency"+dashdot_role_network_label_list: "type,speed_up,speed_down,interface_speed"+dashdot_role_gpu_label_list: "brand,model,memory" ################################ # Paths ################################ -dashdot_paths_folder: "{{ dashdot_name }}"-dashdot_paths_location: "{{ server_appdata_path }}/{{ dashdot_paths_folder }}"-dashdot_paths_folders_list:- - "{{ dashdot_paths_location }}"+dashdot_role_paths_folder: "{{ dashdot_name }}"+dashdot_role_paths_location: "{{ server_appdata_path }}/{{ dashdot_role_paths_folder }}"+dashdot_role_paths_folders_list:+ - "{{ dashdot_role_paths_location }}" ################################ # Web ################################ -dashdot_web_subdomain: "{{ dashdot_name }}"-dashdot_web_domain: "{{ user.domain }}"-dashdot_web_port: "3001"-dashdot_web_url: "{{ 'https://' + (dashdot_web_subdomain + '.' + dashdot_web_domain- if (dashdot_web_subdomain | length > 0)- else dashdot_web_domain) }}"+dashdot_role_web_subdomain: "{{ dashdot_name }}"+dashdot_role_web_domain: "{{ user.domain }}"+dashdot_role_web_port: "3001"+dashdot_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='dashdot') + '.' + lookup('role_var', '_web_domain', role='dashdot')+ if (lookup('role_var', '_web_subdomain', role='dashdot') | length > 0)+ else lookup('role_var', '_web_domain', role='dashdot')) }}" ################################ # DNS ################################ -dashdot_dns_record: "{{ dashdot_web_subdomain }}"-dashdot_dns_zone: "{{ dashdot_web_domain }}"-dashdot_dns_proxy: "{{ dns.proxied }}"+dashdot_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='dashdot') }}"+dashdot_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='dashdot') }}"+dashdot_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -dashdot_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-dashdot_traefik_middleware_default: "{{ traefik_default_middleware }}"-dashdot_traefik_middleware_custom: ""-dashdot_traefik_certresolver: "{{ traefik_default_certresolver }}"-dashdot_traefik_enabled: true-dashdot_traefik_api_enabled: false-dashdot_traefik_api_endpoint: ""+dashdot_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+dashdot_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+dashdot_role_traefik_middleware_custom: ""+dashdot_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+dashdot_role_traefik_enabled: true+dashdot_role_traefik_api_enabled: false+dashdot_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-dashdot_docker_container: "{{ dashdot_name }}"+dashdot_role_docker_container: "{{ dashdot_name }}" # Image-dashdot_docker_image_pull: true-dashdot_docker_image_tag: "latest"-dashdot_docker_image: "mauricenino/dashdot:{{ dashdot_docker_image_tag }}"--# Ports-dashdot_docker_ports_defaults: []-dashdot_docker_ports_custom: []-dashdot_docker_ports: "{{ dashdot_docker_ports_defaults- + dashdot_docker_ports_custom }}"+dashdot_role_docker_image_pull: true+dashdot_role_docker_image_repo: "mauricenino/dashdot"+dashdot_role_docker_image_tag: "latest"+dashdot_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='dashdot') }}:{{ lookup('role_var', '_docker_image_tag', role='dashdot') }}" # Envs-dashdot_docker_envs_default:- DASHDOT_SHOW_HOST: "{{ dashdot_show_host }}"- DASHDOT_CUSTOM_HOST: "{{ dashdot_web_subdomain + '.' + dashdot_web_domain }}"- DASHDOT_ENABLE_CPU_TEMPS: "{{ dashdot_cpu_temps }}"- DASHDOT_USE_IMPERIAL: "{{ dashdot_imperial }}"- DASHDOT_ALWAYS_SHOW_PERCENTAGES: "{{ dashdot_always_show_percentages }}"- DASHDOT_PAGE_TITLE: "{{ dashdot_title }}"- DASHDOT_WIDGET_LIST: "{{ dashdot_widget_list }}"- DASHDOT_OS_LABEL_LIST: "{{ dashdot_os_label_list }}"- DASHDOT_CPU_LABEL_LIST: "{{ dashdot_cpu_label_list }}"- DASHDOT_STORAGE_LABEL_LIST: "{{ dashdot_storage_label_list }}"- DASHDOT_RAM_LABEL_LIST: "{{ dashdot_ram_label_list }}"- DASHDOT_NETWORK_LABEL_LIST: "{{ dashdot_network_label_list }}"- DASHDOT_GPU_LABEL_LIST: "{{ dashdot_gpu_label_list }}"+dashdot_role_docker_envs_default:+ DASHDOT_SHOW_HOST: "{{ lookup('role_var', '_show_host', role='dashdot') }}"+ DASHDOT_CUSTOM_HOST: "{{ lookup('role_var', '_web_subdomain', role='dashdot') + '.' + lookup('role_var', '_web_domain', role='dashdot') }}"+ DASHDOT_ENABLE_CPU_TEMPS: "{{ lookup('role_var', '_cpu_temps', role='dashdot') }}"+ DASHDOT_USE_IMPERIAL: "{{ lookup('role_var', '_imperial', role='dashdot') }}"+ DASHDOT_ALWAYS_SHOW_PERCENTAGES: "{{ lookup('role_var', '_always_show_percentages', role='dashdot') }}"+ DASHDOT_PAGE_TITLE: "{{ lookup('role_var', '_title', role='dashdot') }}"+ DASHDOT_WIDGET_LIST: "{{ lookup('role_var', '_widget_list', role='dashdot') }}"+ DASHDOT_OS_LABEL_LIST: "{{ lookup('role_var', '_os_label_list', role='dashdot') }}"+ DASHDOT_CPU_LABEL_LIST: "{{ lookup('role_var', '_cpu_label_list', role='dashdot') }}"+ DASHDOT_STORAGE_LABEL_LIST: "{{ lookup('role_var', '_storage_label_list', role='dashdot') }}"+ DASHDOT_RAM_LABEL_LIST: "{{ lookup('role_var', '_ram_label_list', role='dashdot') }}"+ DASHDOT_NETWORK_LABEL_LIST: "{{ lookup('role_var', '_network_label_list', role='dashdot') }}"+ DASHDOT_GPU_LABEL_LIST: "{{ lookup('role_var', '_gpu_label_list', role='dashdot') }}" DASHDOT_ACCEPT_OOKLA_EULA: "true"-dashdot_docker_envs_custom: {}-dashdot_docker_envs: "{{ dashdot_docker_envs_default- | combine(dashdot_docker_envs_custom) }}"--# Commands-dashdot_docker_commands_default: []-dashdot_docker_commands_custom: []-dashdot_docker_commands: "{{ dashdot_docker_commands_default- + dashdot_docker_commands_custom }}"+dashdot_role_docker_envs_custom: {}+dashdot_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='dashdot')+ | combine(lookup('role_var', '_docker_envs_custom', role='dashdot')) }}" # Volumes-dashdot_docker_volumes_default:+dashdot_role_docker_volumes_default: - "/:/mnt/host:ro"-dashdot_docker_volumes_custom: []-dashdot_docker_volumes: "{{ dashdot_docker_volumes_default- + dashdot_docker_volumes_custom }}"--# Devices-dashdot_docker_devices_default: []-dashdot_docker_devices_custom: []-dashdot_docker_devices: "{{ dashdot_docker_devices_default- + dashdot_docker_devices_custom }}"--# Hosts-dashdot_docker_hosts_default: {}-dashdot_docker_hosts_custom: {}-dashdot_docker_hosts: "{{ docker_hosts_common- | combine(dashdot_docker_hosts_default)- | combine(dashdot_docker_hosts_custom) }}"--# Labels-dashdot_docker_labels_default: {}-dashdot_docker_labels_custom: {}-dashdot_docker_labels: "{{ docker_labels_common- | combine(dashdot_docker_labels_default)- | combine(dashdot_docker_labels_custom) }}"+dashdot_role_docker_volumes_custom: []+dashdot_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='dashdot')+ + lookup('role_var', '_docker_volumes_custom', role='dashdot') }}" # Hostname-dashdot_docker_hostname: "{{ dashdot_name }}"+dashdot_role_docker_hostname: "{{ dashdot_name }}" # Networks-dashdot_docker_networks_alias: "{{ dashdot_name }}"-dashdot_docker_networks_default: []-dashdot_docker_networks_custom: []-dashdot_docker_networks: "{{ docker_networks_common- + dashdot_docker_networks_default- + dashdot_docker_networks_custom }}"--# Capabilities-dashdot_docker_capabilities_default: []-dashdot_docker_capabilities_custom: []-dashdot_docker_capabilities: "{{ dashdot_docker_capabilities_default- + dashdot_docker_capabilities_custom }}"--# Security Opts-dashdot_docker_security_opts_default: []-dashdot_docker_security_opts_custom: []-dashdot_docker_security_opts: "{{ dashdot_docker_security_opts_default- + dashdot_docker_security_opts_custom }}"+dashdot_role_docker_networks_alias: "{{ dashdot_name }}"+dashdot_role_docker_networks_default: []+dashdot_role_docker_networks_custom: []+dashdot_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='dashdot')+ + lookup('role_var', '_docker_networks_custom', role='dashdot') }}" # Restart Policy-dashdot_docker_restart_policy: unless-stopped+dashdot_role_docker_restart_policy: unless-stopped # State-dashdot_docker_state: started+dashdot_role_docker_state: started # Privileged-dashdot_docker_privileged: true+dashdot_role_docker_privileged: true
modified
roles/dashdot/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/dashy/defaults/main.yml
@@ -17,131 +17,82 @@ # Paths ################################ -dashy_paths_folder: "{{ dashy_name }}"-dashy_paths_location: "{{ server_appdata_path }}/{{ dashy_paths_folder }}"-dashy_paths_folders_list:- - "{{ dashy_paths_location }}"-dashy_paths_config_location: "{{ dashy_paths_location }}/conf.yml"+dashy_role_paths_folder: "{{ dashy_name }}"+dashy_role_paths_location: "{{ server_appdata_path }}/{{ dashy_role_paths_folder }}"+dashy_role_paths_folders_list:+ - "{{ dashy_role_paths_location }}"+dashy_role_paths_config_location: "{{ dashy_role_paths_location }}/conf.yml" ################################ # Web ################################ -dashy_web_subdomain: "{{ dashy_name }}"-dashy_web_domain: "{{ user.domain }}"-dashy_web_port: "8080"-dashy_web_url: "{{ 'https://' + (dashy_web_subdomain + '.' + dashy_web_domain- if (dashy_web_subdomain | length > 0)- else dashy_web_domain) }}"+dashy_role_web_subdomain: "{{ dashy_name }}"+dashy_role_web_domain: "{{ user.domain }}"+dashy_role_web_port: "8080"+dashy_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='dashy') + '.' + lookup('role_var', '_web_domain', role='dashy')+ if (lookup('role_var', '_web_subdomain', role='dashy') | length > 0)+ else lookup('role_var', '_web_domain', role='dashy')) }}" ################################ # DNS ################################ -dashy_dns_record: "{{ dashy_web_subdomain }}"-dashy_dns_zone: "{{ dashy_web_domain }}"-dashy_dns_proxy: "{{ dns.proxied }}"+dashy_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='dashy') }}"+dashy_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='dashy') }}"+dashy_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -dashy_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-dashy_traefik_middleware_default: "{{ traefik_default_middleware }}"-dashy_traefik_middleware_custom: ""-dashy_traefik_certresolver: "{{ traefik_default_certresolver }}"-dashy_traefik_enabled: true-dashy_traefik_api_enabled: false-dashy_traefik_api_endpoint: ""+dashy_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+dashy_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+dashy_role_traefik_middleware_custom: ""+dashy_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+dashy_role_traefik_enabled: true+dashy_role_traefik_api_enabled: false+dashy_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-dashy_docker_container: "{{ dashy_name }}"+dashy_role_docker_container: "{{ dashy_name }}" # Image-dashy_docker_image_pull: true-dashy_docker_image_tag: "latest"-dashy_docker_image: "lissy93/dashy:{{ dashy_docker_image_tag }}"--# Ports-dashy_docker_ports_defaults: []-dashy_docker_ports_custom: []-dashy_docker_ports: "{{ dashy_docker_ports_defaults- + dashy_docker_ports_custom }}"--# Envs-dashy_docker_envs_default: {}-dashy_docker_envs_custom: {}-dashy_docker_envs: "{{ dashy_docker_envs_default- | combine(dashy_docker_envs_custom) }}"--# Commands-dashy_docker_commands_default: []-dashy_docker_commands_custom: []-dashy_docker_commands: "{{ dashy_docker_commands_default- + dashy_docker_commands_custom }}"+dashy_role_docker_image_pull: true+dashy_role_docker_image_repo: "lissy93/dashy"+dashy_role_docker_image_tag: "latest"+dashy_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='dashy') }}:{{ lookup('role_var', '_docker_image_tag', role='dashy') }}" # Volumes-dashy_docker_volumes_default:- - "{{ dashy_paths_location }}:/app/user-data"-dashy_docker_volumes_custom: []-dashy_docker_volumes: "{{ dashy_docker_volumes_default- + dashy_docker_volumes_custom }}"--# Devices-dashy_docker_devices_default: []-dashy_docker_devices_custom: []-dashy_docker_devices: "{{ dashy_docker_devices_default- + dashy_docker_devices_custom }}"--# Hosts-dashy_docker_hosts_default: {}-dashy_docker_hosts_custom: {}-dashy_docker_hosts: "{{ docker_hosts_common- | combine(dashy_docker_hosts_default)- | combine(dashy_docker_hosts_custom) }}"--# Labels-dashy_docker_labels_default: {}-dashy_docker_labels_custom: {}-dashy_docker_labels: "{{ docker_labels_common- | combine(dashy_docker_labels_default)- | combine(dashy_docker_labels_custom) }}"+dashy_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='dashy') }}:/app/user-data"+dashy_role_docker_volumes_custom: []+dashy_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='dashy')+ + lookup('role_var', '_docker_volumes_custom', role='dashy') }}" # Hostname-dashy_docker_hostname: "{{ dashy_name }}"+dashy_role_docker_hostname: "{{ dashy_name }}" # Networks-dashy_docker_networks_alias: "{{ dashy_name }}"-dashy_docker_networks_default: []-dashy_docker_networks_custom: []-dashy_docker_networks: "{{ docker_networks_common- + dashy_docker_networks_default- + dashy_docker_networks_custom }}"--# Capabilities-dashy_docker_capabilities_default: []-dashy_docker_capabilities_custom: []-dashy_docker_capabilities: "{{ dashy_docker_capabilities_default- + dashy_docker_capabilities_custom }}"--# Security Opts-dashy_docker_security_opts_default: []-dashy_docker_security_opts_custom: []-dashy_docker_security_opts: "{{ dashy_docker_security_opts_default- + dashy_docker_security_opts_custom }}"+dashy_role_docker_networks_alias: "{{ dashy_name }}"+dashy_role_docker_networks_default: []+dashy_role_docker_networks_custom: []+dashy_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='dashy')+ + lookup('role_var', '_docker_networks_custom', role='dashy') }}" # Restart Policy-dashy_docker_restart_policy: unless-stopped+dashy_role_docker_restart_policy: unless-stopped # State-dashy_docker_state: started+dashy_role_docker_state: started # Healthcheck-dashy_docker_healthcheck:+dashy_role_docker_healthcheck: test: ["CMD", "yarn", "health-check"] interval: 10s timeout: 5s
modified
roles/dashy/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -20,18 +20,18 @@ - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" -- name: Check if `{{ dashy_paths_config_location | basename }}` exists+- name: Check if `{{ lookup('role_var', '_paths_config_location', role='dashy') | basename }}` exists ansible.builtin.stat:- path: "{{ dashy_paths_config_location }}"+ path: "{{ lookup('role_var', '_paths_config_location', role='dashy') }}" register: dashy_config -- name: New `{{ dashy_paths_config_location | basename }}` tasks+- name: New `{{ lookup('role_var', '_paths_config_location', role='dashy') | basename }}` tasks when: not dashy_config.stat.exists block:- - name: Import default `{{ dashy_paths_config_location | basename }}`+ - name: Import default `{{ lookup('role_var', '_paths_config_location', role='dashy') | basename }}` ansible.builtin.template: src: conf.yml.j2- dest: "{{ dashy_paths_config_location }}"+ dest: "{{ lookup('role_var', '_paths_config_location', role='dashy') }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"
modified
roles/deemix/defaults/main.yml
@@ -17,129 +17,86 @@ # Paths ################################ -deemix_paths_folder: "{{ deemix_name }}"-deemix_paths_location: "{{ server_appdata_path }}/{{ deemix_paths_folder }}"-deemix_paths_folders_list:- - "{{ deemix_paths_location }}"+deemix_role_paths_folder: "{{ deemix_name }}"+deemix_role_paths_location: "{{ server_appdata_path }}/{{ deemix_role_paths_folder }}"+deemix_role_paths_folders_list:+ - "{{ deemix_role_paths_location }}" ################################ # Web ################################ -deemix_web_subdomain: "{{ deemix_name }}"-deemix_web_domain: "{{ user.domain }}"-deemix_web_port: "6595"-deemix_web_url: "{{ 'https://' + (deemix_web_subdomain + '.' + deemix_web_domain- if (deemix_web_subdomain | length > 0)- else deemix_web_domain) }}"+deemix_role_web_subdomain: "{{ deemix_name }}"+deemix_role_web_domain: "{{ user.domain }}"+deemix_role_web_port: "6595"+deemix_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='deemix') + '.' + lookup('role_var', '_web_domain', role='deemix')+ if (lookup('role_var', '_web_subdomain', role='deemix') | length > 0)+ else lookup('role_var', '_web_domain', role='deemix')) }}" ################################ # DNS ################################ -deemix_dns_record: "{{ deemix_web_subdomain }}"-deemix_dns_zone: "{{ deemix_web_domain }}"-deemix_dns_proxy: "{{ dns.proxied }}"+deemix_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='deemix') }}"+deemix_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='deemix') }}"+deemix_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -deemix_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-deemix_traefik_middleware_default: "{{ traefik_default_middleware }}"-deemix_traefik_middleware_custom: ""-deemix_traefik_certresolver: "{{ traefik_default_certresolver }}"-deemix_traefik_enabled: true-deemix_traefik_api_enabled: false-deemix_traefik_api_endpoint: ""+deemix_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+deemix_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+deemix_role_traefik_middleware_custom: ""+deemix_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+deemix_role_traefik_enabled: true+deemix_role_traefik_api_enabled: false+deemix_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-deemix_docker_container: "{{ deemix_name }}"+deemix_role_docker_container: "{{ deemix_name }}" # Image-deemix_docker_image_pull: true-deemix_docker_image_tag: "latest"-deemix_docker_image: "registry.gitlab.com/bockiii/deemix-docker:{{ deemix_docker_image_tag }}"--# Ports-deemix_docker_ports_defaults: []-deemix_docker_ports_custom: []-deemix_docker_ports: "{{ deemix_docker_ports_defaults- + deemix_docker_ports_custom }}"+deemix_role_docker_image_pull: true+deemix_role_docker_image_repo: "registry.gitlab.com/bockiii/deemix-docker"+deemix_role_docker_image_tag: "latest"+deemix_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='deemix') }}:{{ lookup('role_var', '_docker_image_tag', role='deemix') }}" # Envs-deemix_docker_envs_default:+deemix_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}" UMASK_SET: "022" REVERSEPROXY: "true"-deemix_docker_envs_custom: {}-deemix_docker_envs: "{{ deemix_docker_envs_default- | combine(deemix_docker_envs_custom) }}"--# Commands-deemix_docker_commands_default: []-deemix_docker_commands_custom: []-deemix_docker_commands: "{{ deemix_docker_commands_default- + deemix_docker_commands_custom }}"+deemix_role_docker_envs_custom: {}+deemix_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='deemix')+ | combine(lookup('role_var', '_docker_envs_custom', role='deemix')) }}" # Volumes-deemix_docker_volumes_default:- - "{{ deemix_paths_location }}:/config"-deemix_docker_volumes_custom: []-deemix_docker_volumes: "{{ deemix_docker_volumes_default- + deemix_docker_volumes_custom }}"--# Devices-deemix_docker_devices_default: []-deemix_docker_devices_custom: []-deemix_docker_devices: "{{ deemix_docker_devices_default- + deemix_docker_devices_custom }}"--# Hosts-deemix_docker_hosts_default: {}-deemix_docker_hosts_custom: {}-deemix_docker_hosts: "{{ docker_hosts_common- | combine(deemix_docker_hosts_default)- | combine(deemix_docker_hosts_custom) }}"--# Labels-deemix_docker_labels_default: {}-deemix_docker_labels_custom: {}-deemix_docker_labels: "{{ docker_labels_common- | combine(deemix_docker_labels_default)- | combine(deemix_docker_labels_custom) }}"+deemix_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='deemix') }}:/config"+deemix_role_docker_volumes_custom: []+deemix_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='deemix')+ + lookup('role_var', '_docker_volumes_custom', role='deemix') }}" # Hostname-deemix_docker_hostname: "{{ deemix_name }}"+deemix_role_docker_hostname: "{{ deemix_name }}" # Networks-deemix_docker_networks_alias: "{{ deemix_name }}"-deemix_docker_networks_default: []-deemix_docker_networks_custom: []-deemix_docker_networks: "{{ docker_networks_common- + deemix_docker_networks_default- + deemix_docker_networks_custom }}"--# Capabilities-deemix_docker_capabilities_default: []-deemix_docker_capabilities_custom: []-deemix_docker_capabilities: "{{ deemix_docker_capabilities_default- + deemix_docker_capabilities_custom }}"--# Security Opts-deemix_docker_security_opts_default: []-deemix_docker_security_opts_custom: []-deemix_docker_security_opts: "{{ deemix_docker_security_opts_default- + deemix_docker_security_opts_custom }}"+deemix_role_docker_networks_alias: "{{ deemix_name }}"+deemix_role_docker_networks_default: []+deemix_role_docker_networks_custom: []+deemix_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='deemix')+ + lookup('role_var', '_docker_networks_custom', role='deemix') }}" # Restart Policy-deemix_docker_restart_policy: unless-stopped+deemix_role_docker_restart_policy: unless-stopped # State-deemix_docker_state: started+deemix_role_docker_state: started
modified
roles/deemix/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/delugevpn/defaults/main.yml
@@ -16,21 +16,25 @@ ################################ # Settings ################################--delugevpn_log_level_daemon: info-delugevpn_log_level_web: info-delugevpn_name_servers: "84.200.69.80,1.1.1.1,84.200.70.40,1.0.0.1"-delugevpn_lan_network: "172.19.0.0/16"+# https://github.com/binhex/arch-delugevpn for options+delugevpn_role_log_level_daemon: info+delugevpn_role_log_level_web: info+delugevpn_role_name_servers: "84.200.69.80,1.1.1.1,84.200.70.40,1.0.0.1"+delugevpn_role_lan_network: "172.19.0.0/16"+delugevpn_role_vpn_user: ""+delugevpn_role_vpn_pass: ""+delugevpn_role_vpn_prov: "pia"+delugevpn_role_vpn_client: "wireguard" ################################ # Paths ################################ -delugevpn_paths_folder: "{{ delugevpn_name }}"-delugevpn_paths_location: "{{ server_appdata_path }}/{{ delugevpn_paths_folder }}"-delugevpn_paths_folders_list:- - "{{ delugevpn_paths_location }}"- - "{{ delugevpn_paths_location }}/wireguard"+delugevpn_role_paths_folder: "{{ delugevpn_name }}"+delugevpn_role_paths_location: "{{ server_appdata_path }}/{{ delugevpn_role_paths_folder }}"+delugevpn_role_paths_folders_list:+ - "{{ delugevpn_role_paths_location }}"+ - "{{ delugevpn_role_paths_location }}/wireguard" - "{{ downloads_torrents_path }}" - "{{ downloads_torrents_path }}/delugevpn" - "{{ downloads_torrents_path }}/delugevpn/completed"@@ -41,142 +45,105 @@ # Web ################################ -delugevpn_web_subdomain: "{{ delugevpn_name }}"-delugevpn_web_domain: "{{ user.domain }}"-delugevpn_web_port: "8112"-delugevpn_web_url: "{{ 'https://' + (delugevpn_web_subdomain + '.' + delugevpn_web_domain- if (delugevpn_web_subdomain | length > 0)- else delugevpn_web_domain) }}"+delugevpn_role_web_subdomain: "{{ delugevpn_name }}"+delugevpn_role_web_domain: "{{ user.domain }}"+delugevpn_role_web_port: "8112"+delugevpn_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='delugevpn') + '.' + lookup('role_var', '_web_domain', role='delugevpn')+ if (lookup('role_var', '_web_subdomain', role='delugevpn') | length > 0)+ else lookup('role_var', '_web_domain', role='delugevpn')) }}" ################################ # DNS ################################ -delugevpn_dns_record: "{{ delugevpn_web_subdomain }}"-delugevpn_dns_zone: "{{ delugevpn_web_domain }}"-delugevpn_dns_proxy: "{{ dns.proxied }}"+delugevpn_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='delugevpn') }}"+delugevpn_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='delugevpn') }}"+delugevpn_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -delugevpn_traefik_sso_middleware: ""-delugevpn_traefik_middleware_default: "{{ traefik_default_middleware }}"-delugevpn_traefik_middleware_custom: ""-delugevpn_traefik_certresolver: "{{ traefik_default_certresolver }}"-delugevpn_traefik_enabled: true-delugevpn_traefik_api_enabled: false-delugevpn_traefik_api_endpoint: ""+delugevpn_role_traefik_sso_middleware: ""+delugevpn_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+delugevpn_role_traefik_middleware_custom: ""+delugevpn_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+delugevpn_role_traefik_enabled: true+delugevpn_role_traefik_api_enabled: false+delugevpn_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-delugevpn_docker_container: "{{ delugevpn_name }}"+delugevpn_role_docker_container: "{{ delugevpn_name }}" # Image-delugevpn_docker_image_pull: true-delugevpn_docker_image_tag: "latest"-delugevpn_docker_image: "binhex/arch-delugevpn:{{ delugevpn_docker_image_tag }}"+delugevpn_role_docker_image_pull: true+delugevpn_role_docker_image_repo: "binhex/arch-delugevpn"+delugevpn_role_docker_image_tag: "latest"+delugevpn_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='delugevpn') }}:{{ lookup('role_var', '_docker_image_tag', role='delugevpn') }}" # Ports-delugevpn_docker_ports_defaults:+delugevpn_role_docker_ports_default: - "58112:58112" - "58846:58846"-delugevpn_docker_ports_custom: []-delugevpn_docker_ports: "{{ delugevpn_docker_ports_defaults- + delugevpn_docker_ports_custom }}"+delugevpn_role_docker_ports_custom: []+delugevpn_role_docker_ports: "{{ lookup('role_var', '_docker_ports_default', role='delugevpn')+ + lookup('role_var', '_docker_ports_custom', role='delugevpn') }}" # Envs-delugevpn_docker_envs_default:+delugevpn_role_docker_envs_default:+ DEBUG: "false"+ DELUGE_DAEMON_LOG_LEVEL: "{{ lookup('role_var', '_log_level_daemon', role='delugevpn') }}"+ DELUGE_WEB_LOG_LEVEL: "{{ lookup('role_var', '_log_level_web', role='delugevpn') }}"+ ENABLE_PRIVOXY: "no"+ LAN_NETWORK: "{{ lookup('role_var', '_lan_network', role='delugevpn') }}"+ NAME_SERVERS: "{{ lookup('role_var', '_name_servers', role='delugevpn') }}"+ PGID: "{{ gid }}" PUID: "{{ uid }}"- PGID: "{{ gid }}"+ STRICT_PORT_FORWARD: "yes" TZ: "{{ tz }}"+ UMASK: "022"+ VPN_CLIENT: "{{ lookup('role_var', '_vpn_client', role='delugevpn') }}" VPN_ENABLED: "yes"- VPN_USER: "{{ delugevpn.vpn_user | default('username', true) }}"- VPN_PASS: "{{ delugevpn.vpn_pass | default('password', true) }}"- VPN_PROV: "{{ delugevpn.vpn_prov | default('pia', true) }}"- VPN_CLIENT: "{{ delugevpn.vpn_client | default('wireguard', true) }}"- STRICT_PORT_FORWARD: "yes"- ENABLE_PRIVOXY: "no"- LAN_NETWORK: "{{ delugevpn_lan_network }}"- NAME_SERVERS: "{{ delugevpn_name_servers }}"- DELUGE_DAEMON_LOG_LEVEL: "{{ delugevpn_log_level_daemon }}"- DELUGE_WEB_LOG_LEVEL: "{{ delugevpn_log_level_web }}"- DEBUG: "false"- UMASK: "022"-delugevpn_docker_envs_custom: {}-delugevpn_docker_envs: "{{ delugevpn_docker_envs_default- | combine(delugevpn_docker_envs_custom) }}"--# Commands-delugevpn_docker_commands_default: []-delugevpn_docker_commands_custom: []-delugevpn_docker_commands: "{{ delugevpn_docker_commands_default- + delugevpn_docker_commands_custom }}"+ VPN_PASS: "{{ lookup('role_var', '_vpn_pass', role='delugevpn') }}"+ VPN_PROV: "{{ lookup('role_var', '_vpn_prov', role='delugevpn') }}"+ VPN_USER: "{{ lookup('role_var', '_vpn_user', role='delugevpn') }}"+delugevpn_role_docker_envs_custom: {}+delugevpn_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='delugevpn')+ | combine(lookup('role_var', '_docker_envs_custom', role='delugevpn')) }}" # Volumes-delugevpn_docker_volumes_default:- - "{{ delugevpn_paths_location }}:/config"+delugevpn_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='delugevpn') }}:/config" - "/etc/localtime:/etc/localtime:ro"- - "/opt/scripts:/scripts"-delugevpn_docker_volumes_custom: []-delugevpn_docker_volumes: "{{ delugevpn_docker_volumes_default- + delugevpn_docker_volumes_custom }}"--# Devices-delugevpn_docker_devices_default: []-delugevpn_docker_devices_custom: []-delugevpn_docker_devices: "{{ delugevpn_docker_devices_default- + delugevpn_docker_devices_custom }}"--# Hosts-delugevpn_docker_hosts_default: {}-delugevpn_docker_hosts_custom: {}-delugevpn_docker_hosts: "{{ docker_hosts_common- | combine(delugevpn_docker_hosts_default)- | combine(delugevpn_docker_hosts_custom) }}"--# Labels-delugevpn_docker_labels_default: {}-delugevpn_docker_labels_custom: {}-delugevpn_docker_labels: "{{ docker_labels_common- | combine(delugevpn_docker_labels_default)- | combine(delugevpn_docker_labels_custom) }}"+ - "{{ server_appdata_path }}/scripts:/scripts"+delugevpn_role_docker_volumes_custom: []+delugevpn_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='delugevpn')+ + lookup('role_var', '_docker_volumes_custom', role='delugevpn') }}" # Hostname-delugevpn_docker_hostname: "{{ delugevpn_name }}"+delugevpn_role_docker_hostname: "{{ delugevpn_name }}" # Networks-delugevpn_docker_networks_alias: "{{ delugevpn_name }}"-delugevpn_docker_networks_default: []-delugevpn_docker_networks_custom: []-delugevpn_docker_networks: "{{ docker_networks_common- + delugevpn_docker_networks_default- + delugevpn_docker_networks_custom }}"--# Capabilities-delugevpn_docker_capabilities_default: []-delugevpn_docker_capabilities_custom: []-delugevpn_docker_capabilities: "{{ delugevpn_docker_capabilities_default- + delugevpn_docker_capabilities_custom }}"--# Security Opts-delugevpn_docker_security_opts_default: []-delugevpn_docker_security_opts_custom: []-delugevpn_docker_security_opts: "{{ delugevpn_docker_security_opts_default- + delugevpn_docker_security_opts_custom }}"+delugevpn_role_docker_networks_alias: "{{ delugevpn_name }}"+delugevpn_role_docker_networks_default: []+delugevpn_role_docker_networks_custom: []+delugevpn_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='delugevpn')+ + lookup('role_var', '_docker_networks_custom', role='delugevpn') }}" # Restart Policy-delugevpn_docker_restart_policy: unless-stopped+delugevpn_role_docker_restart_policy: unless-stopped # State-delugevpn_docker_state: started+delugevpn_role_docker_state: started # Sysctls-delugevpn_docker_sysctls:+delugevpn_role_docker_sysctls: net.ipv4.conf.all.src_valid_mark: "1" # Privileged-delugevpn_docker_privileged: "yes"+delugevpn_role_docker_privileged: true
modified
roles/delugevpn/tasks/main.yml
@@ -7,12 +7,19 @@ # GNU General Public License v3.0 # ######################################################################### ---+- name: Check for required variables+ ansible.builtin.fail:+ msg: "You need to set delugevpn_role_vpn_user and delugevpn_role_vpn_pass when delugevpn_role_vpn_prov is set to pia using the inventory."+ when: (not continuous_integration)+ and ((delugevpn_role_vpn_user | length == 0) or (delugevpn_role_vpn_pass | length == 0))+ and (delugevpn_role_vpn_prov == "pia")+ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/discoflix/defaults/main.yml
@@ -17,123 +17,81 @@ # Paths ################################ -discoflix_paths_folder: "{{ discoflix_name }}"-discoflix_paths_location: "{{ server_appdata_path }}/{{ discoflix_paths_folder }}"-discoflix_paths_folders_list:- - "{{ discoflix_paths_location }}"+discoflix_role_paths_folder: "{{ discoflix_name }}"+discoflix_role_paths_location: "{{ server_appdata_path }}/{{ discoflix_role_paths_folder }}"+discoflix_role_paths_folders_list:+ - "{{ discoflix_role_paths_location }}" ################################ # Web ################################ -discoflix_web_subdomain: "{{ discoflix_name }}"-discoflix_web_domain: "{{ user.domain }}"-discoflix_web_port: "5454"-discoflix_web_url: "{{ 'https://' + (discoflix_web_subdomain + '.' + discoflix_web_domain- if (discoflix_web_subdomain | length > 0)- else discoflix_web_domain) }}"+discoflix_role_web_subdomain: "{{ discoflix_name }}"+discoflix_role_web_domain: "{{ user.domain }}"+discoflix_role_web_port: "5454"+discoflix_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='discoflix') + '.' + lookup('role_var', '_web_domain', role='discoflix')+ if (lookup('role_var', '_web_subdomain', role='discoflix') | length > 0)+ else lookup('role_var', '_web_domain', role='discoflix')) }}" ################################ # DNS ################################ -discoflix_dns_record: "{{ discoflix_web_subdomain }}"-discoflix_dns_zone: "{{ discoflix_web_domain }}"-discoflix_dns_proxy: "{{ dns.proxied }}"+discoflix_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='discoflix') }}"+discoflix_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='discoflix') }}"+discoflix_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -discoflix_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-discoflix_traefik_middleware_default: "{{ traefik_default_middleware }}"-discoflix_traefik_certresolver: "{{ traefik_default_certresolver }}"-discoflix_traefik_enabled: true-discoflix_traefik_api_enabled: false-discoflix_traefik_api_endpoint: ""+discoflix_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+discoflix_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+discoflix_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+discoflix_role_traefik_enabled: true+discoflix_role_traefik_api_enabled: false+discoflix_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-discoflix_docker_container: "{{ discoflix_name }}"+discoflix_role_docker_container: "{{ discoflix_name }}" # Image-discoflix_docker_image_pull: true-discoflix_docker_image_tag: "latest"-discoflix_docker_image: "nickheyer/discoflix:{{ discoflix_docker_image_tag }}"--# Ports-discoflix_docker_ports_defaults: []-discoflix_docker_ports_custom: []-discoflix_docker_ports: "{{ discoflix_docker_ports_defaults- + discoflix_docker_ports_custom }}"+discoflix_role_docker_image_pull: true+discoflix_role_docker_image_repo: "nickheyer/discoflix"+discoflix_role_docker_image_tag: "latest"+discoflix_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='discoflix') }}:{{ lookup('role_var', '_docker_image_tag', role='discoflix') }}" # Envs-discoflix_docker_envs_default: {"internal_df_url":"http://{{ discoflix_name }}:{{ discoflix_web_port }}"}-discoflix_docker_envs_custom: {}-discoflix_docker_envs: "{{ discoflix_docker_envs_default- | combine(discoflix_docker_envs_custom) }}"--# Commands-discoflix_docker_commands_default: []-discoflix_docker_commands_custom: []-discoflix_docker_commands: "{{ discoflix_docker_commands_default- + discoflix_docker_commands_custom }}"+discoflix_role_docker_envs_default:+ internal_df_url: "http://{{ discoflix_name }}:{{ lookup('role_var', '_web_port', role='discoflix') }}"+discoflix_role_docker_envs_custom: {}+discoflix_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='discoflix')+ | combine(lookup('role_var', '_docker_envs_custom', role='discoflix')) }}" # Volumes-discoflix_docker_volumes_default:- - "{{ discoflix_paths_location }}/data:/app/data"-discoflix_docker_volumes_custom: []-discoflix_docker_volumes: "{{ discoflix_docker_volumes_default- + discoflix_docker_volumes_custom }}"--# Devices-discoflix_docker_devices_default: []-discoflix_docker_devices_custom: []-discoflix_docker_devices: "{{ discoflix_docker_devices_default- + discoflix_docker_devices_custom }}"--# Hosts-discoflix_docker_hosts_default: {}-discoflix_docker_hosts_custom: {}-discoflix_docker_hosts: "{{ docker_hosts_common- | combine(discoflix_docker_hosts_default)- | combine(discoflix_docker_hosts_custom) }}"--# Labels-discoflix_docker_labels_default: {}-discoflix_docker_labels_custom: {}-discoflix_docker_labels: "{{ docker_labels_common- | combine(discoflix_docker_labels_default)- | combine(discoflix_docker_labels_custom) }}"+discoflix_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='discoflix') }}/data:/app/data"+discoflix_role_docker_volumes_custom: []+discoflix_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='discoflix')+ + lookup('role_var', '_docker_volumes_custom', role='discoflix') }}" # Hostname-discoflix_docker_hostname: "{{ discoflix_name }}"+discoflix_role_docker_hostname: "{{ discoflix_name }}" # Networks-discoflix_docker_networks_alias: "{{ discoflix_name }}"-discoflix_docker_networks_default: []-discoflix_docker_networks_custom: []-discoflix_docker_networks: "{{ docker_networks_common- + discoflix_docker_networks_default- + discoflix_docker_networks_custom }}"--# Capabilities-discoflix_docker_capabilities_default: []-discoflix_docker_capabilities_custom: []-discoflix_docker_capabilities: "{{ discoflix_docker_capabilities_default- + discoflix_docker_capabilities_custom }}"--# Security Opts-discoflix_docker_security_opts_default: []-discoflix_docker_security_opts_custom: []-discoflix_docker_security_opts: "{{ discoflix_docker_security_opts_default- + discoflix_docker_security_opts_custom }}"+discoflix_role_docker_networks_alias: "{{ discoflix_name }}"+discoflix_role_docker_networks_default: []+discoflix_role_docker_networks_custom: []+discoflix_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='discoflix')+ + lookup('role_var', '_docker_networks_custom', role='discoflix') }}" # Restart Policy-discoflix_docker_restart_policy: unless-stopped+discoflix_role_docker_restart_policy: unless-stopped # State-discoflix_docker_state: started+discoflix_role_docker_state: started
modified
roles/discoflix/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/dockwatch/defaults/main.yml
@@ -8,16 +8,22 @@ ########################################################################## --- ################################+# Basics+################################++dockwatch_name: dockwatch++################################ # Settings ################################ -dockwatch_post_enable: false+dockwatch_role_post_enable: false ################################ # Docker Socket Proxy ################################ -dockwatch_docker_socket_proxy_envs:+dockwatch_role_docker_socket_proxy_envs: ALLOW_START: "1" ALLOW_STOP: "1" ALLOW_RESTARTS: "1"@@ -25,147 +31,100 @@ IMAGES: "1" NETWORKS: "1" PORTS: "1"- POST: "{{ '1' if dockwatch_post_enable else omit }}"+ POST: "{{ '1'+ if lookup('role_var', '_post_enable', role='dockwatch')+ else omit }}" VOLUMES: "1"--################################-# Basics-################################--dockwatch_name: dockwatch ################################ # Paths ################################ -dockwatch_paths_folder: "{{ dockwatch_name }}"-dockwatch_paths_location: "{{ server_appdata_path }}/{{ dockwatch_paths_folder }}"-dockwatch_paths_folders_list:- - "{{ dockwatch_paths_location }}"- - "{{ dockwatch_paths_location }}/icons"+dockwatch_role_paths_folder: "{{ dockwatch_name }}"+dockwatch_role_paths_location: "{{ server_appdata_path }}/{{ dockwatch_role_paths_folder }}"+dockwatch_role_paths_folders_list:+ - "{{ dockwatch_role_paths_location }}"+ - "{{ dockwatch_role_paths_location }}/icons" ################################ # Web ################################ -dockwatch_web_subdomain: "{{ dockwatch_name }}"-dockwatch_web_domain: "{{ user.domain }}"-dockwatch_web_port: "80"-dockwatch_web_url: "{{ 'https://' + (dockwatch_web_subdomain + '.' + dockwatch_web_domain- if (dockwatch_web_subdomain | length > 0)- else dockwatch_web_domain) }}"+dockwatch_role_web_subdomain: "{{ dockwatch_name }}"+dockwatch_role_web_domain: "{{ user.domain }}"+dockwatch_role_web_port: "80"+dockwatch_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='dockwatch') + '.' + lookup('role_var', '_web_domain', role='dockwatch')+ if (lookup('role_var', '_web_subdomain', role='dockwatch') | length > 0)+ else lookup('role_var', '_web_domain', role='dockwatch')) }}" ################################ # DNS ################################ -dockwatch_dns_record: "{{ dockwatch_web_subdomain }}"-dockwatch_dns_zone: "{{ dockwatch_web_domain }}"-dockwatch_dns_proxy: "{{ dns.proxied }}"+dockwatch_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='dockwatch') }}"+dockwatch_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='dockwatch') }}"+dockwatch_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -dockwatch_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-dockwatch_traefik_middleware_default: "{{ traefik_default_middleware }}"-dockwatch_traefik_middleware_custom: ""-dockwatch_traefik_certresolver: "{{ traefik_default_certresolver }}"-dockwatch_traefik_enabled: true-dockwatch_traefik_api_enabled: true-dockwatch_traefik_api_endpoint: "PathPrefix(`/api`)"+dockwatch_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+dockwatch_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+dockwatch_role_traefik_middleware_custom: ""+dockwatch_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+dockwatch_role_traefik_enabled: true+dockwatch_role_traefik_api_enabled: true+dockwatch_role_traefik_api_endpoint: "PathPrefix(`/api`)" ################################ # Docker ################################ # Container-dockwatch_docker_container: "{{ dockwatch_name }}"+dockwatch_role_docker_container: "{{ dockwatch_name }}" # Image-dockwatch_docker_image_pull: true-dockwatch_docker_image_tag: "main"-dockwatch_docker_image: "ghcr.io/notifiarr/dockwatch:{{ dockwatch_docker_image_tag }}"--# Ports-dockwatch_docker_ports_defaults: []-dockwatch_docker_ports_custom: []-dockwatch_docker_ports: "{{ dockwatch_docker_ports_defaults- + dockwatch_docker_ports_custom }}"+dockwatch_role_docker_image_pull: true+dockwatch_role_docker_image_repo: "ghcr.io/notifiarr/dockwatch"+dockwatch_role_docker_image_tag: "main"+dockwatch_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='dockwatch') }}:{{ lookup('role_var', '_docker_image_tag', role='dockwatch') }}" # Envs-dockwatch_docker_envs_default:+dockwatch_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}" DOCKER_HOST: "{{ dockwatch_name }}-docker-socket-proxy:2375"-dockwatch_docker_envs_custom: {}-dockwatch_docker_envs: "{{ dockwatch_docker_envs_default- | combine(dockwatch_docker_envs_custom) }}"--# Commands-dockwatch_docker_commands_default: []-dockwatch_docker_commands_custom: []-dockwatch_docker_commands: "{{ dockwatch_docker_commands_default- + dockwatch_docker_commands_custom }}"+dockwatch_role_docker_envs_custom: {}+dockwatch_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='dockwatch')+ | combine(lookup('role_var', '_docker_envs_custom', role='dockwatch')) }}" # Volumes-dockwatch_docker_volumes_default:- - "{{ dockwatch_paths_location }}:/config"-dockwatch_docker_volumes_custom: []-dockwatch_docker_volumes: "{{ dockwatch_docker_volumes_default- + dockwatch_docker_volumes_custom }}"--# Devices-dockwatch_docker_devices_default: []-dockwatch_docker_devices_custom: []-dockwatch_docker_devices: "{{ dockwatch_docker_devices_default- + dockwatch_docker_devices_custom }}"--# Hosts-dockwatch_docker_hosts_default: {}-dockwatch_docker_hosts_custom: {}-dockwatch_docker_hosts: "{{ docker_hosts_common- | combine(dockwatch_docker_hosts_default)- | combine(dockwatch_docker_hosts_custom) }}"--# Labels-dockwatch_docker_labels_default: {}-dockwatch_docker_labels_custom: {}-dockwatch_docker_labels: "{{ docker_labels_common- | combine(dockwatch_docker_labels_default)- | combine(dockwatch_docker_labels_custom) }}"+dockwatch_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='dockwatch') }}:/config"+dockwatch_role_docker_volumes_custom: []+dockwatch_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='dockwatch')+ + lookup('role_var', '_docker_volumes_custom', role='dockwatch') }}" # Hostname-dockwatch_docker_hostname: "{{ dockwatch_name }}"+dockwatch_role_docker_hostname: "{{ dockwatch_name }}" # Networks-dockwatch_docker_networks_alias: "{{ dockwatch_name }}"-dockwatch_docker_networks_default: []-dockwatch_docker_networks_custom: []-dockwatch_docker_networks: "{{ docker_networks_common- + dockwatch_docker_networks_default- + dockwatch_docker_networks_custom }}"--# Capabilities-dockwatch_docker_capabilities_default: []-dockwatch_docker_capabilities_custom: []-dockwatch_docker_capabilities: "{{ dockwatch_docker_capabilities_default- + dockwatch_docker_capabilities_custom }}"--# Security Opts-dockwatch_docker_security_opts_default: []-dockwatch_docker_security_opts_custom: []-dockwatch_docker_security_opts: "{{ dockwatch_docker_security_opts_default- + dockwatch_docker_security_opts_custom }}"+dockwatch_role_docker_networks_alias: "{{ dockwatch_name }}"+dockwatch_role_docker_networks_default: []+dockwatch_role_docker_networks_custom: []+dockwatch_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='dockwatch')+ + lookup('role_var', '_docker_networks_custom', role='dockwatch') }}" # Restart Policy-dockwatch_docker_restart_policy: unless-stopped+dockwatch_role_docker_restart_policy: unless-stopped # State-dockwatch_docker_state: started+dockwatch_role_docker_state: started # Dependencies-dockwatch_depends_on: "{{ dockwatch_name }}-docker-socket-proxy"-dockwatch_depends_on_delay: "0"-dockwatch_depends_on_healthchecks: "false"+dockwatch_role_depends_on: "{{ dockwatch_name }}-docker-socket-proxy"+dockwatch_role_depends_on_delay: "0"+dockwatch_role_depends_on_healthchecks: "false"
modified
roles/dockwatch/tasks/main.yml
@@ -12,14 +12,14 @@ name: docker_socket_proxy vars: docker_socket_proxy_name: "{{ dockwatch_name }}-docker-socket-proxy"- docker_socket_proxy_docker_envs: "{{ dockwatch_docker_socket_proxy_envs }}"+ docker_socket_proxy_role_docker_envs_custom: "{{ lookup('role_var', '_docker_socket_proxy_envs', role='dockwatch') }}" - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/doplarr/defaults/main.yml
@@ -14,99 +14,77 @@ doplarr_name: doplarr ################################+# Settings+################################++doplarr_role_discord_token: ""+doplarr_role_overseerr_url: ""+doplarr_role_overseerr_api: ""+doplarr_role_radarr_api: ""+doplarr_role_radarr_url: ""+doplarr_role_sonarr_api: ""+doplarr_role_sonarr_url: ""+doplarr_role_discord_max_results: "25"+doplarr_role_discord_role_id: ""+doplarr_role_discord_requested_msg_style: ":plain"+doplarr_role_sonarr_quality_profile: ""+doplarr_role_radarr_quality_profile: ""+doplarr_role_sonarr_language_profile: ""+doplarr_role_overseer_default_id: ""+doplarr_role_partial_seasons: "true"+doplarr_role_log_level: ":info"++################################ # Docker ################################ # Container-doplarr_docker_container: "{{ doplarr_name }}"+doplarr_role_docker_container: "{{ doplarr_name }}" # Image-doplarr_docker_image_pull: true-doplarr_docker_image_tag: "latest"-doplarr_docker_image: "lscr.io/linuxserver/doplarr:{{ doplarr_docker_image_tag }}"+doplarr_role_docker_image_pull: true+doplarr_role_docker_image_repo: "lscr.io/linuxserver/doplarr"+doplarr_role_docker_image_tag: "latest"+doplarr_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='doplarr') }}:{{ lookup('role_var', '_docker_image_tag', role='doplarr') }}" # Envs-doplarr_docker_envs_default:+doplarr_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"- DISCORD__TOKEN: "{{ doplarr.discord_token }}"- OVERSEERR__URL: "{{ doplarr.overseerr_url | default('', true) }}"- OVERSEERR__API: "{{ doplarr.overseerr_api }}"- RADARR__API: "{{ doplarr.radarr_api | default('', true) }}"- RADARR__URL: "{{ doplarr.radarr_url | default('', true) }}"- SONARR__API: "{{ doplarr.sonarr_api | default('', true) }}"- SONARR__URL: "{{ doplarr.sonarr_url | default('', true) }}"- DISCORD__MAX_RESULTS: "{{ doplarr.discord_max_results | default('25', true) }}"- DISCORD__ROLE_ID: "{{ doplarr.discord_role_id | default('', true) }}"- DISCORD__REQUESTED_MSG_STYLE: "{{ doplarr.discord_requested_msg_style | default(':plain', true) }}"- SONARR__QUALITY_PROFILE: "{{ doplarr.sonarr_quality_profile | default('', true) }}"- RADARR__QUALITY_PROFILE: "{{ doplarr.radarr_quality_profile | default('', true) }}"- SONARR__LANGUAGE_PROFILE: "{{ doplarr.sonarr_language_profile | default('', true) }}"- OVERSEERR__DEFAULT_ID: "{{ doplarr.overseer_default_id | default('', true) }}"- PARTIAL_SEASONS: "{{ doplarr.partial_seasons | default('true', true) }}"- LOG_LEVEL: "{{ doplarr.log_level | default(':info', true) }}"-doplarr_docker_envs_custom: []-doplarr_docker_envs: "{{ doplarr_docker_envs_default- | combine(doplarr_docker_envs_custom) }}"--# Commands-doplarr_docker_commands_default: []-doplarr_docker_commands_custom: []-doplarr_docker_commands: "{{ doplarr_docker_commands_default- + doplarr_docker_commands_custom }}"--# Volumes-doplarr_docker_volumes_default: []-doplarr_docker_volumes_custom: []-doplarr_docker_volumes: "{{ doplarr_docker_volumes_default- + doplarr_docker_volumes_custom }}"--# Devices-doplarr_docker_devices_default: []-doplarr_docker_devices_custom: []-doplarr_docker_devices: "{{ doplarr_docker_devices_default- + doplarr_docker_devices_custom }}"--# Hosts-doplarr_docker_hosts_default: {}-doplarr_docker_hosts_custom: {}-doplarr_docker_hosts: "{{ docker_hosts_common- | combine(doplarr_docker_hosts_default)- | combine(doplarr_docker_hosts_custom) }}"--# Labels-doplarr_docker_labels_default: {}-doplarr_docker_labels_custom: {}-doplarr_docker_labels: "{{ docker_labels_common- | combine(doplarr_docker_labels_default)- | combine(doplarr_docker_labels_custom) }}"+ DISCORD__TOKEN: "{{ lookup('role_var', '_discord_token', role='doplarr') }}"+ OVERSEERR__URL: "{{ lookup('role_var', '_overseerr_url', role='doplarr') }}"+ OVERSEERR__API: "{{ lookup('role_var', '_overseerr_api', role='doplarr') }}"+ RADARR__API: "{{ lookup('role_var', '_radarr_api', role='doplarr') }}"+ RADARR__URL: "{{ lookup('role_var', '_radarr_url', role='doplarr') }}"+ SONARR__API: "{{ lookup('role_var', '_sonarr_api', role='doplarr') }}"+ SONARR__URL: "{{ lookup('role_var', '_sonarr_url', role='doplarr') }}"+ DISCORD__MAX_RESULTS: "{{ lookup('role_var', '_discord_max_results', role='doplarr') }}"+ DISCORD__ROLE_ID: "{{ lookup('role_var', '_discord_role_id', role='doplarr') }}"+ DISCORD__REQUESTED_MSG_STYLE: "{{ lookup('role_var', '_discord_requested_msg_style', role='doplarr') }}"+ SONARR__QUALITY_PROFILE: "{{ lookup('role_var', '_sonarr_quality_profile', role='doplarr') }}"+ RADARR__QUALITY_PROFILE: "{{ lookup('role_var', '_radarr_quality_profile', role='doplarr') }}"+ SONARR__LANGUAGE_PROFILE: "{{ lookup('role_var', '_sonarr_language_profile', role='doplarr') }}"+ OVERSEERR__DEFAULT_ID: "{{ lookup('role_var', '_overseer_default_id', role='doplarr') }}"+ PARTIAL_SEASONS: "{{ lookup('role_var', '_partial_seasons', role='doplarr') }}"+ LOG_LEVEL: "{{ lookup('role_var', '_log_level', role='doplarr') }}"+doplarr_role_docker_envs_custom: []+doplarr_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='doplarr')+ | combine(lookup('role_var', '_docker_envs_custom', role='doplarr')) }}" # Hostname-doplarr_docker_hostname: "{{ doplarr_name }}"+doplarr_role_docker_hostname: "{{ doplarr_name }}" # Networks-doplarr_docker_networks_alias: "{{ doplarr_name }}"-doplarr_docker_networks_default: []-doplarr_docker_networks_custom: []-doplarr_docker_networks: "{{ docker_networks_common- + doplarr_docker_networks_default- + doplarr_docker_networks_custom }}"--# Capabilities-doplarr_docker_capabilities_default: []-doplarr_docker_capabilities_custom: []-doplarr_docker_capabilities: "{{ doplarr_docker_capabilities_default- + doplarr_docker_capabilities_custom }}"--# Security Opts-doplarr_docker_security_opts_default: []-doplarr_docker_security_opts_custom: []-doplarr_docker_security_opts: "{{ doplarr_docker_security_opts_default- + doplarr_docker_security_opts_custom }}"+doplarr_role_docker_networks_alias: "{{ doplarr_name }}"+doplarr_role_docker_networks_default: []+doplarr_role_docker_networks_custom: []+doplarr_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='doplarr')+ + lookup('role_var', '_docker_networks_custom', role='doplarr') }}" # Restart Policy-doplarr_docker_restart_policy: unless-stopped+doplarr_role_docker_restart_policy: unless-stopped # State-doplarr_docker_state: started+doplarr_role_docker_state: started
modified
roles/doplarr/tasks/main.yml
@@ -7,11 +7,18 @@ # GNU General Public License v3.0 # ######################################################################### ----- name: Fail when default doplarr.discord_token is specified+- name: Check for required variables ansible.builtin.fail:- msg: "You must specify a Discord bot token in the settings under doplarr.discord_token."- when: (doplarr.discord_token == 'your_discord_bot_token') and- (not continuous_integration)+ msg: "You need to set doplarr_role_discord_token, doplarr_role_overseerr_url, doplarr_role_overseerr_api, doplarr_role_radarr_api, doplarr_role_radarr_url, doplarr_role_sonarr_api, doplarr_role_sonarr_url, and doplarr_role_discord_role_id using the inventory."+ when: (not continuous_integration) and+ ((doplarr_role_discord_token | length == 0) or+ (doplarr_role_overseerr_url | length == 0) or+ (doplarr_role_overseerr_api | length == 0) or+ (doplarr_role_radarr_api | length == 0) or+ (doplarr_role_radarr_url | length == 0) or+ (doplarr_role_sonarr_api | length == 0) or+ (doplarr_role_sonarr_url | length == 0) or+ (doplarr_role_discord_role_id | length == 0)) - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/duplicati/defaults/main.yml
@@ -18,129 +18,86 @@ # Paths ################################ -duplicati_paths_folder: "{{ duplicati_name }}"-duplicati_paths_location: "{{ server_appdata_path }}/{{ duplicati_paths_folder }}"-duplicati_paths_folders_list:- - "{{ duplicati_paths_location }}"+duplicati_role_paths_folder: "{{ duplicati_name }}"+duplicati_role_paths_location: "{{ server_appdata_path }}/{{ duplicati_role_paths_folder }}"+duplicati_role_paths_folders_list:+ - "{{ duplicati_role_paths_location }}" ################################ # Web ################################ -duplicati_web_subdomain: "{{ duplicati_name }}"-duplicati_web_domain: "{{ user.domain }}"-duplicati_web_port: "8200"-duplicati_web_url: "{{ 'https://' + (duplicati_web_subdomain + '.' + duplicati_web_domain- if (duplicati_web_subdomain | length > 0)- else duplicati_web_domain) }}"+duplicati_role_web_subdomain: "{{ duplicati_name }}"+duplicati_role_web_domain: "{{ user.domain }}"+duplicati_role_web_port: "8200"+duplicati_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='duplicati') + '.' + lookup('role_var', '_web_domain', role='duplicati')+ if (lookup('role_var', '_web_subdomain', role='duplicati') | length > 0)+ else lookup('role_var', '_web_domain', role='duplicati')) }}" ################################ # DNS ################################ -duplicati_dns_record: "{{ duplicati_web_subdomain }}"-duplicati_dns_zone: "{{ duplicati_web_domain }}"-duplicati_dns_proxy: "{{ dns.proxied }}"+duplicati_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='duplicati') }}"+duplicati_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='duplicati') }}"+duplicati_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -duplicati_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-duplicati_traefik_middleware_default: "{{ traefik_default_middleware }}"-duplicati_traefik_middleware_custom: ""-duplicati_traefik_certresolver: "{{ traefik_default_certresolver }}"-duplicati_traefik_enabled: true-duplicati_traefik_api_enabled: true-duplicati_traefik_api_endpoint: "PathPrefix(`/api`)"+duplicati_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+duplicati_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+duplicati_role_traefik_middleware_custom: ""+duplicati_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+duplicati_role_traefik_enabled: true+duplicati_role_traefik_api_enabled: true+duplicati_role_traefik_api_endpoint: "PathPrefix(`/api`)" ################################ # Docker ################################ # Container-duplicati_docker_container: "{{ duplicati_name }}"+duplicati_role_docker_container: "{{ duplicati_name }}" # Image-duplicati_docker_image_pull: true-duplicati_docker_image_tag: "latest"-duplicati_docker_image: "linuxserver/duplicati:{{ duplicati_docker_image_tag }}"--# Ports-duplicati_docker_ports_defaults: []-duplicati_docker_ports_custom: []-duplicati_docker_ports: "{{ duplicati_docker_ports_defaults- + duplicati_docker_ports_custom }}"+duplicati_role_docker_image_pull: true+duplicati_role_docker_image_repo: "linuxserver/duplicati"+duplicati_role_docker_image_tag: "latest"+duplicati_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='duplicati') }}:{{ lookup('role_var', '_docker_image_tag', role='duplicati') }}" # Envs-duplicati_docker_envs_default:+duplicati_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"-duplicati_docker_envs_custom: {}-duplicati_docker_envs: "{{ duplicati_docker_envs_default- | combine(duplicati_docker_envs_custom) }}"--# Commands-duplicati_docker_commands_default: []-duplicati_docker_commands_custom: []-duplicati_docker_commands: "{{ duplicati_docker_commands_default- + duplicati_docker_commands_custom }}"+duplicati_role_docker_envs_custom: {}+duplicati_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='duplicati')+ | combine(lookup('role_var', '_docker_envs_custom', role='duplicati')) }}" # Volumes-duplicati_docker_volumes_default:- - "{{ duplicati_paths_location }}:/config"- - "/opt:/saltbox/opt"+duplicati_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='duplicati') }}:/config"+ - "{{ server_appdata_path }}:/saltbox/opt" - "/srv/git/saltbox:/saltbox/saltbox"-duplicati_docker_volumes_custom: []-duplicati_docker_volumes: "{{ duplicati_docker_volumes_default- + duplicati_docker_volumes_custom }}"--# Devices-duplicati_docker_devices_default: []-duplicati_docker_devices_custom: []-duplicati_docker_devices: "{{ duplicati_docker_devices_default- + duplicati_docker_devices_custom }}"--# Hosts-duplicati_docker_hosts_default: {}-duplicati_docker_hosts_custom: {}-duplicati_docker_hosts: "{{ docker_hosts_common- | combine(duplicati_docker_hosts_default)- | combine(duplicati_docker_hosts_custom) }}"--# Labels-duplicati_docker_labels_default: {}-duplicati_docker_labels_custom: {}-duplicati_docker_labels: "{{ docker_labels_common- | combine(duplicati_docker_labels_default)- | combine(duplicati_docker_labels_custom) }}"+duplicati_role_docker_volumes_custom: []+duplicati_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='duplicati')+ + lookup('role_var', '_docker_volumes_custom', role='duplicati') }}" # Hostname-duplicati_docker_hostname: "{{ duplicati_name }}"+duplicati_role_docker_hostname: "{{ duplicati_name }}" # Networks-duplicati_docker_networks_alias: "{{ duplicati_name }}"-duplicati_docker_networks_default: []-duplicati_docker_networks_custom: []-duplicati_docker_networks: "{{ docker_networks_common- + duplicati_docker_networks_default- + duplicati_docker_networks_custom }}"--# Capabilities-duplicati_docker_capabilities_default: []-duplicati_docker_capabilities_custom: []-duplicati_docker_capabilities: "{{ duplicati_docker_capabilities_default- + duplicati_docker_capabilities_custom }}"--# Security Opts-duplicati_docker_security_opts_default: []-duplicati_docker_security_opts_custom: []-duplicati_docker_security_opts: "{{ duplicati_docker_security_opts_default- + duplicati_docker_security_opts_custom }}"+duplicati_role_docker_networks_alias: "{{ duplicati_name }}"+duplicati_role_docker_networks_default: []+duplicati_role_docker_networks_custom: []+duplicati_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='duplicati')+ + lookup('role_var', '_docker_networks_custom', role='duplicati') }}" # Restart Policy-duplicati_docker_restart_policy: unless-stopped+duplicati_role_docker_restart_policy: unless-stopped # State-duplicati_docker_state: started+duplicati_role_docker_state: started
modified
roles/duplicati/tasks/main.yml
@@ -11,9 +11,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/elasticsearch/defaults/main.yml
@@ -17,113 +17,68 @@ # Settings ################################ -elasticsearch_docker_env_password: "elastic789"-elasticsearch_docker_env_http_port: "9200"-elasticsearch_docker_env_transport_port: "9300"-elasticsearch_sysctl_vm_max_map_count: "262144"+elasticsearch_role_docker_env_password: "elastic789"+elasticsearch_role_docker_env_http_port: "9200"+elasticsearch_role_docker_env_transport_port: "9300"+elasticsearch_role_sysctl_vm_max_map_count: "262144" ################################ # Paths ################################ -elasticsearch_paths_folder: "{{ elasticsearch_name }}"-elasticsearch_paths_location: "{{ server_appdata_path }}/{{ elasticsearch_paths_folder }}"-elasticsearch_paths_folders_list:- - "{{ elasticsearch_paths_location }}"-elasticsearch_paths_recursive: true+elasticsearch_role_paths_folder: "{{ elasticsearch_name }}"+elasticsearch_role_paths_location: "{{ server_appdata_path }}/{{ elasticsearch_role_paths_folder }}"+elasticsearch_role_paths_folders_list:+ - "{{ elasticsearch_role_paths_location }}"+elasticsearch_role_paths_recursive: true ################################ # Docker ################################ # Container-elasticsearch_docker_container: "{{ elasticsearch_name }}"+elasticsearch_role_docker_container: "{{ elasticsearch_name }}" # Image-elasticsearch_docker_image_pull: true-elasticsearch_docker_image_tag: "8.11.0"-elasticsearch_docker_image: "docker.elastic.co/elasticsearch/elasticsearch:{{ elasticsearch_docker_image_tag }}"--# Ports-elasticsearch_docker_ports_defaults: []-elasticsearch_docker_ports_custom: []-elasticsearch_docker_ports: "{{ elasticsearch_docker_ports_defaults- + elasticsearch_docker_ports_custom }}"+elasticsearch_role_docker_image_pull: true+elasticsearch_role_docker_image_repo: "docker.elastic.co/elasticsearch/elasticsearch"+elasticsearch_role_docker_image_tag: "8.11.0"+elasticsearch_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='elasticsearch') }}:{{ lookup('role_var', '_docker_image_tag', role='elasticsearch') }}" # Envs-elasticsearch_docker_envs_default:+elasticsearch_role_docker_envs_default: TZ: "{{ tz }}" discovery.type: "single-node" node.name: "{{ elasticsearch_name }}" xpack.security.enabled: "false"- ELASTIC_PASSWORD: "{{ elasticsearch_docker_env_password }}"- # ES_JAVA_OPTS: "-Xms1g -Xmx1g"- # ENROLLMENT_TOKEN: "<token>"-elasticsearch_docker_envs_custom: {}-elasticsearch_docker_envs: "{{ elasticsearch_docker_envs_default- | combine(elasticsearch_docker_envs_custom) }}"--# Commands-elasticsearch_docker_commands_default: []-elasticsearch_docker_commands_custom: []-elasticsearch_docker_commands: "{{ elasticsearch_docker_commands_default- + elasticsearch_docker_commands_custom }}"+ ELASTIC_PASSWORD: "{{ lookup('role_var', '_docker_env_password', role='elasticsearch') }}"+elasticsearch_role_docker_envs_custom: {}+elasticsearch_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='elasticsearch')+ | combine(lookup('role_var', '_docker_envs_custom', role='elasticsearch')) }}" # Volumes-elasticsearch_docker_volumes_default:- - "{{ elasticsearch_paths_location }}:/usr/share/elasticsearch/data"-elasticsearch_docker_volumes_custom: []-elasticsearch_docker_volumes: "{{ elasticsearch_docker_volumes_default- + elasticsearch_docker_volumes_custom }}"--# Devices-elasticsearch_docker_devices_default: []-elasticsearch_docker_devices_custom: []-elasticsearch_docker_devices: "{{ elasticsearch_docker_devices_default- + elasticsearch_docker_devices_custom }}"--# Hosts-elasticsearch_docker_hosts_default: {}-elasticsearch_docker_hosts_custom: {}-elasticsearch_docker_hosts: "{{ docker_hosts_common- | combine(elasticsearch_docker_hosts_default)- | combine(elasticsearch_docker_hosts_custom) }}"--# Labels-elasticsearch_docker_labels_default: {}-elasticsearch_docker_labels_custom: {}-elasticsearch_docker_labels: "{{ docker_labels_common- | combine(elasticsearch_docker_labels_default)- | combine(elasticsearch_docker_labels_custom) }}"+elasticsearch_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='elasticsearch') }}:/usr/share/elasticsearch/data"+elasticsearch_role_docker_volumes_custom: []+elasticsearch_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='elasticsearch')+ + lookup('role_var', '_docker_volumes_custom', role='elasticsearch') }}" # Hostname-elasticsearch_docker_hostname: "{{ elasticsearch_name }}"+elasticsearch_role_docker_hostname: "{{ elasticsearch_name }}" # Networks-elasticsearch_docker_networks_alias: "{{ elasticsearch_name }}"-elasticsearch_docker_networks_default: []-elasticsearch_docker_networks_custom: []-elasticsearch_docker_networks: "{{ docker_networks_common- + elasticsearch_docker_networks_default- + elasticsearch_docker_networks_custom }}"--# Capabilities-elasticsearch_docker_capabilities_default: []-elasticsearch_docker_capabilities_custom: []-elasticsearch_docker_capabilities: "{{ elasticsearch_docker_capabilities_default- + elasticsearch_docker_capabilities_custom }}"--# Security Opts-elasticsearch_docker_security_opts_default: []-elasticsearch_docker_security_opts_custom: []-elasticsearch_docker_security_opts: "{{ elasticsearch_docker_security_opts_default- + elasticsearch_docker_security_opts_custom }}"+elasticsearch_role_docker_networks_alias: "{{ elasticsearch_name }}"+elasticsearch_role_docker_networks_default: []+elasticsearch_role_docker_networks_custom: []+elasticsearch_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='elasticsearch')+ + lookup('role_var', '_docker_networks_custom', role='elasticsearch') }}" # Restart Policy-elasticsearch_docker_restart_policy: always+elasticsearch_role_docker_restart_policy: unless-stopped # State-elasticsearch_docker_state: started+elasticsearch_role_docker_state: started # User-elasticsearch_docker_user: "{{ uid }}"+elasticsearch_role_docker_user: "{{ uid }}"
modified
roles/elasticsearch/tasks/main.yml
@@ -17,7 +17,7 @@ ignore_errors: true ansible.posix.sysctl: name: "vm.max_map_count"- value: "{{ elasticsearch_sysctl_vm_max_map_count }}"+ value: "{{ lookup('role_var', '_sysctl_vm_max_map_count', role='elasticsearch') }}" state: present - name: Create Docker container
modified
roles/embystat/defaults/main.yml
@@ -17,125 +17,76 @@ # Paths ################################ -embystat_paths_folder: "{{ embystat_name }}"-embystat_paths_location: "{{ server_appdata_path }}/{{ embystat_paths_folder }}"-embystat_paths_folders_list:- - "{{ embystat_paths_location }}"- - "{{ embystat_paths_location }}/config"+embystat_role_paths_folder: "{{ embystat_name }}"+embystat_role_paths_location: "{{ server_appdata_path }}/{{ embystat_role_paths_folder }}"+embystat_role_paths_folders_list:+ - "{{ embystat_role_paths_location }}"+ - "{{ embystat_role_paths_location }}/config" ################################ # Web ################################ -embystat_web_subdomain: "{{ embystat_name }}"-embystat_web_domain: "{{ user.domain }}"-embystat_web_port: "6555"-embystat_web_url: "{{ 'https://' + (embystat_web_subdomain + '.' + embystat_web_domain- if (embystat_web_subdomain | length > 0)- else embystat_web_domain) }}"+embystat_role_web_subdomain: "{{ embystat_name }}"+embystat_role_web_domain: "{{ user.domain }}"+embystat_role_web_port: "6555"+embystat_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='embystat') + '.' + lookup('role_var', '_web_domain', role='embystat')+ if (lookup('role_var', '_web_subdomain', role='embystat') | length > 0)+ else lookup('role_var', '_web_domain', role='embystat')) }}" ################################ # DNS ################################ -embystat_dns_record: "{{ embystat_web_subdomain }}"-embystat_dns_zone: "{{ embystat_web_domain }}"-embystat_dns_proxy: "{{ dns.proxied }}"+embystat_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='embystat') }}"+embystat_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='embystat') }}"+embystat_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -embystat_traefik_sso_middleware: ""-embystat_traefik_middleware_default: "{{ traefik_default_middleware }}"-embystat_traefik_middleware_custom: ""-embystat_traefik_certresolver: "{{ traefik_default_certresolver }}"-embystat_traefik_enabled: true-embystat_traefik_api_enabled: false-embystat_traefik_api_endpoint: ""+embystat_role_traefik_sso_middleware: ""+embystat_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+embystat_role_traefik_middleware_custom: ""+embystat_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+embystat_role_traefik_enabled: true+embystat_role_traefik_api_enabled: false+embystat_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-embystat_docker_container: "{{ embystat_name }}"+embystat_role_docker_container: "{{ embystat_name }}" # Image-embystat_docker_image_pull: true-embystat_docker_image_tag: "beta-linux-x64"-embystat_docker_image: "uping/embystat:{{ embystat_docker_image_tag }}"--# Ports-embystat_docker_ports_defaults: []-embystat_docker_ports_custom: []-embystat_docker_ports: "{{ embystat_docker_ports_defaults- + embystat_docker_ports_custom }}"--# Envs-embystat_docker_envs_default: {}-embystat_docker_envs_custom: {}-embystat_docker_envs: "{{ embystat_docker_envs_default- | combine(embystat_docker_envs_custom) }}"--# Commands-embystat_docker_commands_default: []-embystat_docker_commands_custom: []-embystat_docker_commands: "{{ embystat_docker_commands_default- + embystat_docker_commands_custom }}"+embystat_role_docker_image_pull: true+embystat_role_docker_image_repo: "uping/embystat"+embystat_role_docker_image_tag: "beta-linux-x64"+embystat_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='embystat') }}:{{ lookup('role_var', '_docker_image_tag', role='embystat') }}" # Volumes-embystat_docker_volumes_default:- - "{{ embystat_paths_location }}/config:/app/data"-embystat_docker_volumes_custom: []-embystat_docker_volumes: "{{ embystat_docker_volumes_default- + embystat_docker_volumes_custom }}"--# Devices-embystat_docker_devices_default: []-embystat_docker_devices_custom: []-embystat_docker_devices: "{{ embystat_docker_devices_default- + embystat_docker_devices_custom }}"--# Hosts-embystat_docker_hosts_default: {}-embystat_docker_hosts_custom: {}-embystat_docker_hosts: "{{ docker_hosts_common- | combine(embystat_docker_hosts_default)- | combine(embystat_docker_hosts_custom) }}"--# Labels-embystat_docker_labels_default: {}-embystat_docker_labels_custom: {}-embystat_docker_labels: "{{ docker_labels_common- | combine(embystat_docker_labels_default)- | combine(embystat_docker_labels_custom) }}"+embystat_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='embystat') }}/config:/app/data"+embystat_role_docker_volumes_custom: []+embystat_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='embystat')+ + lookup('role_var', '_docker_volumes_custom', role='embystat') }}" # Hostname-embystat_docker_hostname: "{{ embystat_name }}"+embystat_role_docker_hostname: "{{ embystat_name }}" # Networks-embystat_docker_networks_alias: "{{ embystat_name }}"-embystat_docker_networks_default: []-embystat_docker_networks_custom: []-embystat_docker_networks: "{{ docker_networks_common- + embystat_docker_networks_default- + embystat_docker_networks_custom }}"--# Capabilities-embystat_docker_capabilities_default: []-embystat_docker_capabilities_custom: []-embystat_docker_capabilities: "{{ embystat_docker_capabilities_default- + embystat_docker_capabilities_custom }}"--# Security Opts-embystat_docker_security_opts_default: []-embystat_docker_security_opts_custom: []-embystat_docker_security_opts: "{{ embystat_docker_security_opts_default- + embystat_docker_security_opts_custom }}"+embystat_role_docker_networks_alias: "{{ embystat_name }}"+embystat_role_docker_networks_default: []+embystat_role_docker_networks_custom: []+embystat_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='embystat')+ + lookup('role_var', '_docker_networks_custom', role='embystat') }}" # Restart Policy-embystat_docker_restart_policy: unless-stopped+embystat_role_docker_restart_policy: unless-stopped # State-embystat_docker_state: started+embystat_role_docker_state: started
modified
roles/embystat/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -34,4 +34,4 @@ owner: "{{ user.name }}" group: "{{ user.name }}" recurse: true- with_items: "{{ lookup('vars', role_name + '_paths_folders_list') }}"+ with_items: "{{ lookup('role_var', '_paths_folders_list', role='embystat') }}"
modified
roles/epms/tasks/main.yml
@@ -26,7 +26,6 @@ stop_timeout: "180" comparisons: '*': ignore- when: ('plex' in docker_running_containers) - name: Create Extended Personal Media Scanner directories@@ -38,19 +37,19 @@ group: "{{ user.name }}" recurse: true with_items:- - '/opt/plex/Library/Application Support/Plex Media Server/Scanners'- - '/opt/plex/Library/Application Support/Plex Media Server/Scanners/Series'+ - '{{ server_appdata_path }}/plex/Library/Application Support/Plex Media Server/Scanners'+ - '{{ server_appdata_path }}/plex/Library/Application Support/Plex Media Server/Scanners/Series' - name: Get latest Extended Personal Media Scanner.py ansible.builtin.get_url: url: https://bitbucket.org/mjarends/plex-scanners/raw/8aa4517831e440512a9a0cb4110e786bf041feb5/Series/Extended%20Personal%20Media%20Scanner.py - dest: '/opt/plex/Library/Application Support/Plex Media Server/Scanners/Series/Extended Personal Media Scanner.py'+ dest: '{{ server_appdata_path }}/plex/Library/Application Support/Plex Media Server/Scanners/Series/Extended Personal Media Scanner.py' mode: '0775' - name: Set Extended Personal Media Scanner directory permissions ansible.builtin.file:- path: '/opt/plex/Library/Application Support/Plex Media Server/Scanners'+ path: '{{ server_appdata_path }}/plex/Library/Application Support/Plex Media Server/Scanners' state: directory mode: "0775" owner: "{{ user.name }}"@@ -60,7 +59,7 @@ - name: Clone Extended Personal Media Scanner Bundle ansible.builtin.git: repo: https://bitbucket.org/mjarends/extendedpersonalmedia-agent.bundle.git- dest: '/opt/plex/Library/Application Support/Plex Media Server/Plug-ins/ExtendedPersonalMedia-Agent.bundle'+ dest: '{{ server_appdata_path }}/plex/Library/Application Support/Plex Media Server/Plug-ins/ExtendedPersonalMedia-Agent.bundle' clone: true version: HEAD force: true@@ -69,7 +68,7 @@ - name: Set Extended Personal Media Scanner directory permissions ansible.builtin.file:- path: '/opt/plex/Library/Application Support/Plex Media Server/Plug-ins/ExtendedPersonalMedia-Agent.bundle'+ path: '{{ server_appdata_path }}/plex/Library/Application Support/Plex Media Server/Plug-ins/ExtendedPersonalMedia-Agent.bundle' state: directory mode: "0775" owner: "{{ user.name }}"@@ -84,5 +83,4 @@ tls_hostname: localhost comparisons: '*': ignore- when: ('plex' in docker_running_containers)
modified
roles/esphome/defaults/main.yml
@@ -17,135 +17,92 @@ # Paths ################################ -esphome_paths_folder: "{{ esphome_name }}"-esphome_paths_location: "{{ server_appdata_path }}/{{ esphome_paths_folder }}"-esphome_paths_conf: "{{ esphome_paths_location }}/configuration.yaml"-esphome_paths_folders_list:- - "{{ esphome_paths_location }}"+esphome_role_paths_folder: "{{ esphome_name }}"+esphome_role_paths_location: "{{ server_appdata_path }}/{{ esphome_role_paths_folder }}"+esphome_role_paths_conf: "{{ esphome_role_paths_location }}/configuration.yaml"+esphome_role_paths_folders_list:+ - "{{ esphome_role_paths_location }}" ################################ # Web ################################ -esphome_web_subdomain: "{{ esphome_name }}"-esphome_web_domain: "{{ user.domain }}"-esphome_web_port: "6052"-esphome_web_url: "{{ 'https://' + (esphome_web_subdomain + '.' + esphome_web_domain- if (esphome_web_subdomain | length > 0)- else esphome_web_domain) }}"+esphome_role_web_subdomain: "{{ esphome_name }}"+esphome_role_web_domain: "{{ user.domain }}"+esphome_role_web_port: "6052"+esphome_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='esphome') + '.' + lookup('role_var', '_web_domain', role='esphome')+ if (lookup('role_var', '_web_subdomain', role='esphome') | length > 0)+ else lookup('role_var', '_web_domain', role='esphome')) }}" ################################ # DNS ################################ -esphome_dns_record: "{{ esphome_web_subdomain }}"-esphome_dns_zone: "{{ esphome_web_domain }}"-esphome_dns_proxy: "{{ dns.proxied }}"+esphome_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='esphome') }}"+esphome_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='esphome') }}"+esphome_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -esphome_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-esphome_traefik_middleware_default: "{{ traefik_default_middleware }}"-esphome_traefik_middleware_custom: ""-esphome_traefik_certresolver: "{{ traefik_default_certresolver }}"-esphome_traefik_enabled: true-esphome_traefik_api_enabled: false-esphome_traefik_api_endpoint: ""+esphome_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+esphome_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+esphome_role_traefik_middleware_custom: ""+esphome_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+esphome_role_traefik_enabled: true+esphome_role_traefik_api_enabled: false+esphome_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-esphome_docker_container: "{{ esphome_name }}"+esphome_role_docker_container: "{{ esphome_name }}" # Image-esphome_docker_image_pull: true-esphome_docker_image_tag: "latest"-esphome_docker_image: "ghcr.io/imagegenius/esphome:latest"--# Ports-esphome_docker_ports_defaults: []-esphome_docker_ports_custom: []-esphome_docker_ports: "{{ esphome_docker_ports_defaults- + esphome_docker_ports_custom }}"+esphome_role_docker_image_pull: true+esphome_role_docker_image_repo: "ghcr.io/imagegenius/esphome"+esphome_role_docker_image_tag: "latest"+esphome_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='esphome') }}:{{ lookup('role_var', '_docker_image_tag', role='esphome') }}" # Envs-esphome_docker_envs_default:+esphome_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"-esphome_docker_envs_custom: {}-esphome_docker_envs: "{{ esphome_docker_envs_default- | combine(esphome_docker_envs_custom) }}"--# Commands-esphome_docker_commands_default: []-esphome_docker_commands_custom: []-esphome_docker_commands: "{{ esphome_docker_commands_default- + esphome_docker_commands_custom }}"+esphome_role_docker_envs_custom: {}+esphome_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='esphome')+ | combine(lookup('role_var', '_docker_envs_custom', role='esphome')) }}" # Volumes-esphome_docker_volumes_default:- - "{{ esphome_paths_location }}:/config"+esphome_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='esphome') }}:/config" - /etc/localtime:/etc/localtime:ro-esphome_docker_volumes_custom: []-esphome_docker_volumes: "{{ esphome_docker_volumes_default- + esphome_docker_volumes_custom }}"--# Extended Privileges-esphome_docker_privileged: "yes"--# Devices-esphome_docker_devices_default: []-esphome_docker_devices_custom: []-esphome_docker_devices: "{{ esphome_docker_devices_default- + esphome_docker_devices_custom }}"--# Hosts-esphome_docker_hosts_default: {}-esphome_docker_hosts_custom: {}-esphome_docker_hosts: "{{ docker_hosts_common- | combine(esphome_docker_hosts_default)- | combine(esphome_docker_hosts_custom) }}"--# Labels-esphome_docker_labels_default: {}-esphome_docker_labels_custom: {}-esphome_docker_labels: "{{ docker_labels_common- | combine(esphome_docker_labels_default)- | combine(esphome_docker_labels_custom) }}"+esphome_role_docker_volumes_custom: []+esphome_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='esphome')+ + lookup('role_var', '_docker_volumes_custom', role='esphome') }}" # Hostname-esphome_docker_hostname: "{{ esphome_name }}"+esphome_role_docker_hostname: "{{ esphome_name }}" # Networks-esphome_docker_networks_alias: "{{ esphome_name }}"-esphome_docker_networks_default: []-esphome_docker_networks_custom: []-esphome_docker_networks: "{{ docker_networks_common- + esphome_docker_networks_default- + esphome_docker_networks_custom }}"--# Capabilities-esphome_docker_capabilities_default: []-esphome_docker_capabilities_custom: []-esphome_docker_capabilities: "{{ esphome_docker_capabilities_default- + esphome_docker_capabilities_custom }}"+esphome_role_docker_networks_alias: "{{ esphome_name }}"+esphome_role_docker_networks_default: []+esphome_role_docker_networks_custom: []+esphome_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='esphome')+ + lookup('role_var', '_docker_networks_custom', role='esphome') }}" # Network Mode-esphome_docker_network_mode: "host"--# Security Opts-esphome_docker_security_opts_default: []-esphome_docker_security_opts_custom: []-esphome_docker_security_opts: "{{ esphome_docker_security_opts_default- + esphome_docker_security_opts_custom }}"+esphome_role_docker_network_mode: "host" # Restart Policy-esphome_docker_restart_policy: unless-stopped+esphome_role_docker_restart_policy: unless-stopped # State-esphome_docker_state: started+esphome_role_docker_state: started++# Privileged+esphome_role_docker_privileged: true
modified
roles/esphome/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/factorio/defaults/main.yml
@@ -17,114 +17,77 @@ # Paths ################################ -factorio_paths_folder: "{{ factorio_name }}"-factorio_paths_location: "{{ server_appdata_path }}/{{ factorio_paths_folder }}"-factorio_paths_folders_list:- - "{{ factorio_paths_location }}"+factorio_role_paths_folder: "{{ factorio_name }}"+factorio_role_paths_location: "{{ server_appdata_path }}/{{ factorio_role_paths_folder }}"+factorio_role_paths_folders_list:+ - "{{ factorio_role_paths_location }}" ################################ # Web ################################ -factorio_web_subdomain: "{{ factorio_name }}"-factorio_web_domain: "{{ user.domain }}"-factorio_web_port: ""+factorio_role_web_subdomain: "{{ factorio_name }}"+factorio_role_web_domain: "{{ user.domain }}"+factorio_role_web_port: "" ################################ # DNS ################################ -factorio_dns_record: "{{ factorio_web_subdomain }}"-factorio_dns_zone: "{{ factorio_web_domain }}"-factorio_dns_proxy: false+factorio_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='factorio') }}"+factorio_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='factorio') }}"+factorio_role_dns_proxy: false ################################ # Docker ################################ # Container-factorio_docker_container: "{{ factorio_name }}"+factorio_role_docker_container: "{{ factorio_name }}" # Image-factorio_docker_image_pull: true-factorio_docker_image_tag: "experimental"-factorio_docker_image: "goofball222/factorio:{{ factorio_docker_image_tag }}"+factorio_role_docker_image_pull: true+factorio_role_docker_image_repo: "goofball222/factorio"+factorio_role_docker_image_tag: "experimental"+factorio_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='factorio') }}:{{ lookup('role_var', '_docker_image_tag', role='factorio') }}" # Ports-factorio_docker_ports_defaults:+factorio_role_docker_ports_default: - "27015:27015/tcp" - "34197:34197/udp"-factorio_docker_ports_custom: []-factorio_docker_ports: "{{ factorio_docker_ports_defaults- + factorio_docker_ports_custom }}"+factorio_role_docker_ports_custom: []+factorio_role_docker_ports: "{{ lookup('role_var', '_docker_ports_default', role='factorio')+ + lookup('role_var', '_docker_ports_custom', role='factorio') }}" # Envs-factorio_docker_envs_default:+factorio_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-factorio_docker_envs_custom: {}-factorio_docker_envs: "{{ factorio_docker_envs_default- | combine(factorio_docker_envs_custom) }}"--# Commands-factorio_docker_commands_default: []-factorio_docker_commands_custom: []-factorio_docker_commands: "{{ factorio_docker_commands_default- + factorio_docker_commands_custom }}"+factorio_role_docker_envs_custom: {}+factorio_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='factorio')+ | combine(lookup('role_var', '_docker_envs_custom', role='factorio')) }}" # Volumes-factorio_docker_volumes_default:- - "{{ factorio_paths_location }}:/factorio"-factorio_docker_volumes_custom: []-factorio_docker_volumes: "{{ factorio_docker_volumes_default- + factorio_docker_volumes_custom }}"--# Devices-factorio_docker_devices_default: []-factorio_docker_devices_custom: []-factorio_docker_devices: "{{ factorio_docker_devices_default- + factorio_docker_devices_custom }}"--# Hosts-factorio_docker_hosts_default: {}-factorio_docker_hosts_custom: {}-factorio_docker_hosts: "{{ docker_hosts_common- | combine(factorio_docker_hosts_default)- | combine(factorio_docker_hosts_custom) }}"--# Labels-factorio_docker_labels_default: {}-factorio_docker_labels_custom: {}-factorio_docker_labels: "{{ docker_labels_common- | combine(factorio_docker_labels_default)- | combine(factorio_docker_labels_custom) }}"+factorio_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='factorio') }}:/factorio"+factorio_role_docker_volumes_custom: []+factorio_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='factorio')+ + lookup('role_var', '_docker_volumes_custom', role='factorio') }}" # Hostname-factorio_docker_hostname: "{{ factorio_name }}"+factorio_role_docker_hostname: "{{ factorio_name }}" # Networks-factorio_docker_networks_alias: "{{ factorio_name }}"-factorio_docker_networks_default: []-factorio_docker_networks_custom: []-factorio_docker_networks: "{{ docker_networks_common- + factorio_docker_networks_default- + factorio_docker_networks_custom }}"--# Capabilities-factorio_docker_capabilities_default: []-factorio_docker_capabilities_custom: []-factorio_docker_capabilities: "{{ factorio_docker_capabilities_default- + factorio_docker_capabilities_custom }}"--# Security Opts-factorio_docker_security_opts_default: []-factorio_docker_security_opts_custom: []-factorio_docker_security_opts: "{{ factorio_docker_security_opts_default- + factorio_docker_security_opts_custom }}"+factorio_role_docker_networks_alias: "{{ factorio_name }}"+factorio_role_docker_networks_default: []+factorio_role_docker_networks_custom: []+factorio_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='factorio')+ + lookup('role_var', '_docker_networks_custom', role='factorio') }}" # Restart Policy-factorio_docker_restart_policy: unless-stopped+factorio_role_docker_restart_policy: unless-stopped # State-factorio_docker_state: started+factorio_role_docker_state: started
modified
roles/factorio/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/filebot/defaults/main.yml
@@ -17,131 +17,88 @@ # Paths ################################ -filebot_paths_folder: "{{ filebot_name }}"-filebot_paths_location: "{{ server_appdata_path }}/{{ filebot_paths_folder }}"-filebot_paths_folders_list:- - "{{ filebot_paths_location }}"-filebot_paths_config_location: "{{ filebot_paths_location }}/config.yml"+filebot_role_paths_folder: "{{ filebot_name }}"+filebot_role_paths_location: "{{ server_appdata_path }}/{{ filebot_role_paths_folder }}"+filebot_role_paths_folders_list:+ - "{{ filebot_role_paths_location }}"+filebot_role_paths_config_location: "{{ filebot_role_paths_location }}/config.yml" ################################ # Web ################################ -filebot_web_subdomain: "{{ filebot_name }}"-filebot_web_domain: "{{ user.domain }}"-filebot_web_port: "5800"-filebot_web_url: "{{ 'https://' + (filebot_web_subdomain + '.' + filebot_web_domain- if (filebot_web_subdomain | length > 0)- else filebot_web_domain) }}"+filebot_role_web_subdomain: "{{ filebot_name }}"+filebot_role_web_domain: "{{ user.domain }}"+filebot_role_web_port: "5800"+filebot_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='filebot') + '.' + lookup('role_var', '_web_domain', role='filebot')+ if (lookup('role_var', '_web_subdomain', role='filebot') | length > 0)+ else lookup('role_var', '_web_domain', role='filebot')) }}" ################################ # DNS ################################ -filebot_dns_record: "{{ filebot_web_subdomain }}"-filebot_dns_zone: "{{ filebot_web_domain }}"-filebot_dns_proxy: "{{ dns.proxied }}"+filebot_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='filebot') }}"+filebot_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='filebot') }}"+filebot_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -filebot_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-filebot_traefik_middleware_default: "{{ traefik_default_middleware }}"-filebot_traefik_middleware_custom: ""-filebot_traefik_certresolver: "{{ traefik_default_certresolver }}"-filebot_traefik_enabled: true-filebot_traefik_api_enabled: true-filebot_traefik_api_endpoint: "PathPrefix(`/websockify`)"+filebot_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+filebot_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+filebot_role_traefik_middleware_custom: ""+filebot_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+filebot_role_traefik_enabled: true+filebot_role_traefik_api_enabled: true+filebot_role_traefik_api_endpoint: "PathPrefix(`/websockify`)" ################################ # Docker ################################ # Container-filebot_docker_container: "{{ filebot_name }}"+filebot_role_docker_container: "{{ filebot_name }}" # Image-filebot_docker_image_pull: true-filebot_docker_image_tag: "latest"-filebot_docker_image: "jlesage/filebot:{{ filebot_docker_image_tag }}"--# Ports-filebot_docker_ports_defaults: []-filebot_docker_ports_custom: []-filebot_docker_ports: "{{ filebot_docker_ports_defaults- + filebot_docker_ports_custom }}"+filebot_role_docker_image_pull: true+filebot_role_docker_image_repo: "jlesage/filebot"+filebot_role_docker_image_tag: "latest"+filebot_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='filebot') }}:{{ lookup('role_var', '_docker_image_tag', role='filebot') }}" # Envs-filebot_docker_envs_default:+filebot_role_docker_envs_default: TZ: "{{ tz }}" USER_ID: "{{ uid }}" GROUP_ID: "{{ gid }}" UMASK: "022"-filebot_docker_envs_custom: {}-filebot_docker_envs: "{{ filebot_docker_envs_default- | combine(filebot_docker_envs_custom) }}"--# Commands-filebot_docker_commands_default: []-filebot_docker_commands_custom: []-filebot_docker_commands: "{{ filebot_docker_commands_default- + filebot_docker_commands_custom }}"+filebot_role_docker_envs_custom: {}+filebot_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='filebot')+ | combine(lookup('role_var', '_docker_envs_custom', role='filebot')) }}" # Volumes-filebot_docker_volumes_default:- - "{{ filebot_paths_location }}:/config"+filebot_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='filebot') }}:/config" - "/mnt/unionfs/Media/:/storage/Media/"- - "/mnt/local/downloads:/storage/downloads"-filebot_docker_volumes_custom: []-filebot_docker_volumes: "{{ filebot_docker_volumes_default- + filebot_docker_volumes_custom }}"--# Devices-filebot_docker_devices_default: []-filebot_docker_devices_custom: []-filebot_docker_devices: "{{ filebot_docker_devices_default- + filebot_docker_devices_custom }}"--# Hosts-filebot_docker_hosts_default: {}-filebot_docker_hosts_custom: {}-filebot_docker_hosts: "{{ docker_hosts_common- | combine(filebot_docker_hosts_default)- | combine(filebot_docker_hosts_custom) }}"--# Labels-filebot_docker_labels_default: {}-filebot_docker_labels_custom: {}-filebot_docker_labels: "{{ docker_labels_common- | combine(filebot_docker_labels_default)- | combine(filebot_docker_labels_custom) }}"+ - "/mnt/unionfs/downloads:/storage/downloads"+filebot_role_docker_volumes_custom: []+filebot_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='filebot')+ + lookup('role_var', '_docker_volumes_custom', role='filebot') }}" # Hostname-filebot_docker_hostname: "{{ filebot_name }}"+filebot_role_docker_hostname: "{{ filebot_name }}" # Networks-filebot_docker_networks_alias: "{{ filebot_name }}"-filebot_docker_networks_default: []-filebot_docker_networks_custom: []-filebot_docker_networks: "{{ docker_networks_common- + filebot_docker_networks_default- + filebot_docker_networks_custom }}"--# Capabilities-filebot_docker_capabilities_default: []-filebot_docker_capabilities_custom: []-filebot_docker_capabilities: "{{ filebot_docker_capabilities_default- + filebot_docker_capabilities_custom }}"--# Security Opts-filebot_docker_security_opts_default: []-filebot_docker_security_opts_custom: []-filebot_docker_security_opts: "{{ filebot_docker_security_opts_default- + filebot_docker_security_opts_custom }}"+filebot_role_docker_networks_alias: "{{ filebot_name }}"+filebot_role_docker_networks_default: []+filebot_role_docker_networks_custom: []+filebot_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='filebot')+ + lookup('role_var', '_docker_networks_custom', role='filebot') }}" # Restart Policy-filebot_docker_restart_policy: unless-stopped+filebot_role_docker_restart_policy: unless-stopped # State-filebot_docker_state: started+filebot_role_docker_state: started
modified
roles/filebot/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/filebrowser/defaults/main.yml
@@ -17,136 +17,93 @@ # Paths ################################ -filebrowser_paths_folder: "{{ filebrowser_name }}"-filebrowser_paths_location: "{{ server_appdata_path }}/{{ filebrowser_paths_folder }}"-filebrowser_paths_folders_list:- - "{{ filebrowser_paths_location }}"- - "{{ filebrowser_paths_location }}/config"- - "{{ filebrowser_paths_location }}/database"-filebrowser_paths_config_location: "{{ filebrowser_paths_location }}/filebrowser.json"-filebrowser_paths_config_folder: "{{ filebrowser_paths_location }}/config"-filebrowser_paths_db_location: "{{ filebrowser_paths_location }}/filebrowser.db"-filebrowser_paths_db_folder: "{{ filebrowser_paths_location }}/database"+filebrowser_role_paths_folder: "{{ filebrowser_name }}"+filebrowser_role_paths_location: "{{ server_appdata_path }}/{{ filebrowser_role_paths_folder }}"+filebrowser_role_paths_folders_list:+ - "{{ filebrowser_role_paths_location }}"+ - "{{ filebrowser_role_paths_location }}/config"+ - "{{ filebrowser_role_paths_location }}/database"+filebrowser_role_paths_config_location: "{{ filebrowser_role_paths_location }}/filebrowser.json"+filebrowser_role_paths_config_folder: "{{ filebrowser_role_paths_location }}/config"+filebrowser_role_paths_db_location: "{{ filebrowser_role_paths_location }}/filebrowser.db"+filebrowser_role_paths_db_folder: "{{ filebrowser_role_paths_location }}/database" ################################ # Web ################################ -filebrowser_web_subdomain: "{{ filebrowser_name }}"-filebrowser_web_domain: "{{ user.domain }}"-filebrowser_web_port: "80"-filebrowser_web_url: "{{ 'https://' + (filebrowser_web_subdomain + '.' + filebrowser_web_domain- if (filebrowser_web_subdomain | length > 0)- else filebrowser_web_domain) }}"+filebrowser_role_web_subdomain: "{{ filebrowser_name }}"+filebrowser_role_web_domain: "{{ user.domain }}"+filebrowser_role_web_port: "80"+filebrowser_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='filebrowser') + '.' + lookup('role_var', '_web_domain', role='filebrowser')+ if (lookup('role_var', '_web_subdomain', role='filebrowser') | length > 0)+ else lookup('role_var', '_web_domain', role='filebrowser')) }}" ################################ # DNS ################################ -filebrowser_dns_record: "{{ filebrowser_web_subdomain }}"-filebrowser_dns_zone: "{{ filebrowser_web_domain }}"-filebrowser_dns_proxy: "{{ dns.proxied }}"+filebrowser_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='filebrowser') }}"+filebrowser_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='filebrowser') }}"+filebrowser_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -filebrowser_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-filebrowser_traefik_middleware_default: "{{ traefik_default_middleware }}"-filebrowser_traefik_middleware_custom: ""-filebrowser_traefik_certresolver: "{{ traefik_default_certresolver }}"-filebrowser_traefik_enabled: true-filebrowser_traefik_api_enabled: true-filebrowser_traefik_api_endpoint: "PathPrefix(`/api`) || PathPrefix(`/share`) || PathPrefix(`/static`) || PathPrefix(`/api/public`)"+filebrowser_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+filebrowser_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+filebrowser_role_traefik_middleware_custom: ""+filebrowser_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+filebrowser_role_traefik_enabled: true+filebrowser_role_traefik_api_enabled: true+filebrowser_role_traefik_api_endpoint: "PathPrefix(`/api`) || PathPrefix(`/share`) || PathPrefix(`/static`) || PathPrefix(`/api/public`)" ################################ # Docker ################################ # Container-filebrowser_docker_container: "{{ filebrowser_name }}"+filebrowser_role_docker_container: "{{ filebrowser_name }}" # Image-filebrowser_docker_image_pull: true-filebrowser_docker_image_tag: "latest"-filebrowser_docker_image: "filebrowser/filebrowser:{{ filebrowser_docker_image_tag }}"--# Ports-filebrowser_docker_ports_defaults: []-filebrowser_docker_ports_custom: []-filebrowser_docker_ports: "{{ filebrowser_docker_ports_defaults- + filebrowser_docker_ports_custom }}"+filebrowser_role_docker_image_pull: true+filebrowser_role_docker_image_repo: "filebrowser/filebrowser"+filebrowser_role_docker_image_tag: "latest"+filebrowser_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='filebrowser') }}:{{ lookup('role_var', '_docker_image_tag', role='filebrowser') }}" # Envs-filebrowser_docker_envs_default:+filebrowser_role_docker_envs_default: TZ: "{{ tz }}"-filebrowser_docker_envs_custom: {}-filebrowser_docker_envs: "{{ filebrowser_docker_envs_default- | combine(filebrowser_docker_envs_custom) }}"--# Commands-filebrowser_docker_commands_default: []-filebrowser_docker_commands_custom: []-filebrowser_docker_commands: "{{ filebrowser_docker_commands_default- + filebrowser_docker_commands_custom }}"+filebrowser_role_docker_envs_custom: {}+filebrowser_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='filebrowser')+ | combine(lookup('role_var', '_docker_envs_custom', role='filebrowser')) }}" # Volumes-filebrowser_docker_volumes_default:- - "{{ filebrowser_paths_db_folder }}:/database"- - "{{ filebrowser_paths_config_folder }}:/config"+filebrowser_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_db_folder', role='filebrowser') }}:/database"+ - "{{ lookup('role_var', '_paths_config_folder', role='filebrowser') }}:/config" - "/mnt/unionfs:/srv:rslave"-filebrowser_docker_volumes_custom: []-filebrowser_docker_volumes: "{{ filebrowser_docker_volumes_default- + filebrowser_docker_volumes_custom }}"--# Devices-filebrowser_docker_devices_default: []-filebrowser_docker_devices_custom: []-filebrowser_docker_devices: "{{ filebrowser_docker_devices_default- + filebrowser_docker_devices_custom }}"--# Hosts-filebrowser_docker_hosts_default: {}-filebrowser_docker_hosts_custom: {}-filebrowser_docker_hosts: "{{ docker_hosts_common- | combine(filebrowser_docker_hosts_default)- | combine(filebrowser_docker_hosts_custom) }}"--# Labels-filebrowser_docker_labels_default: {}-filebrowser_docker_labels_custom: {}-filebrowser_docker_labels: "{{ docker_labels_common- | combine(filebrowser_docker_labels_default)- | combine(filebrowser_docker_labels_custom) }}"+filebrowser_role_docker_volumes_custom: []+filebrowser_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='filebrowser')+ + lookup('role_var', '_docker_volumes_custom', role='filebrowser') }}" # Hostname-filebrowser_docker_hostname: "{{ filebrowser_name }}"+filebrowser_role_docker_hostname: "{{ filebrowser_name }}" # Networks-filebrowser_docker_networks_alias: "{{ filebrowser_name }}"-filebrowser_docker_networks_default: []-filebrowser_docker_networks_custom: []-filebrowser_docker_networks: "{{ docker_networks_common- + filebrowser_docker_networks_default- + filebrowser_docker_networks_custom }}"--# Capabilities-filebrowser_docker_capabilities_default: []-filebrowser_docker_capabilities_custom: []-filebrowser_docker_capabilities: "{{ filebrowser_docker_capabilities_default- + filebrowser_docker_capabilities_custom }}"--# Security Opts-filebrowser_docker_security_opts_default: []-filebrowser_docker_security_opts_custom: []-filebrowser_docker_security_opts: "{{ filebrowser_docker_security_opts_default- + filebrowser_docker_security_opts_custom }}"+filebrowser_role_docker_networks_alias: "{{ filebrowser_name }}"+filebrowser_role_docker_networks_default: []+filebrowser_role_docker_networks_custom: []+filebrowser_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='filebrowser')+ + lookup('role_var', '_docker_networks_custom', role='filebrowser') }}" # Restart Policy-filebrowser_docker_restart_policy: unless-stopped+filebrowser_role_docker_restart_policy: unless-stopped # State-filebrowser_docker_state: started+filebrowser_role_docker_state: started # User-filebrowser_docker_user: "{{ uid }}:{{ gid }}"+filebrowser_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/filebrowser/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/filebrowser/tasks/subtasks/settings.yml
@@ -7,67 +7,67 @@ # GNU General Public License v3.0 # ######################################################################### ----- name: "Settings | Check if '{{ filebrowser_paths_config_location | basename }}' exists"+- name: "Settings | Check if '{{ lookup('role_var', '_paths_config_location', role='filebrowser') | basename }}' exists" ansible.builtin.stat:- path: "{{ filebrowser_paths_config_location }}"+ path: "{{ lookup('role_var', '_paths_config_location', role='filebrowser') }}" register: filebrowser_json -- name: "Settings | Check if '{{ filebrowser_paths_config_folder | basename }}' exists"+- name: "Settings | Check if '{{ lookup('role_var', '_paths_config_folder', role='filebrowser') | basename }}' exists" ansible.builtin.stat:- path: "{{ filebrowser_paths_config_folder }}"+ path: "{{ lookup('role_var', '_paths_config_folder', role='filebrowser') }}" register: filebrowser_config_folder -- name: "Settings | Check if '{{ filebrowser_paths_config_folder | basename }}/settings.json' exists"+- name: "Settings | Check if '{{ lookup('role_var', '_paths_config_folder', role='filebrowser') | basename }}/settings.json' exists" ansible.builtin.stat:- path: "{{ filebrowser_paths_config_folder }}/settings.json"+ path: "{{ lookup('role_var', '_paths_config_folder', role='filebrowser') }}/settings.json" register: filebrowser_config_folder_json -- name: Settings | Migrate `{{ filebrowser_paths_config_location | basename }}` tasks+- name: Settings | Migrate `{{ lookup('role_var', '_paths_config_location', role='filebrowser') | basename }}` tasks when: (filebrowser_json.stat.exists) and (not filebrowser_config_folder_json.stat.exists) block: - name: Settings | Migrate filebrowser.json to settings.json ansible.builtin.copy:- src: "{{ filebrowser_paths_config_location }}"- dest: "{{ filebrowser_paths_config_folder }}/settings.json"+ src: "{{ lookup('role_var', '_paths_config_location', role='filebrowser') }}"+ dest: "{{ lookup('role_var', '_paths_config_folder', role='filebrowser') }}/settings.json" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664" - name: Settings | Migrate JSON database path- ansible.builtin.shell: jq '.database = "/database/filebrowser.db"' {{ filebrowser_paths_config_folder }}/settings.json | sponge {{ filebrowser_paths_config_folder }}/settings.json+ ansible.builtin.shell: jq '.database = "/database/filebrowser.db"' {{ lookup('role_var', '_paths_config_folder', role='filebrowser') }}/settings.json | sponge {{ lookup('role_var', '_paths_config_folder', role='filebrowser') }}/settings.json - name: Settings | Remove legacy filebrowser.json ansible.builtin.file:- path: "{{ filebrowser_paths_config_location }}"+ path: "{{ lookup('role_var', '_paths_config_location', role='filebrowser') }}" state: absent -- name: "Settings | Check if '{{ filebrowser_paths_db_location | basename }}' exists"+- name: "Settings | Check if '{{ lookup('role_var', '_paths_db_location', role='filebrowser') | basename }}' exists" ansible.builtin.stat:- path: "{{ filebrowser_paths_db_location }}"+ path: "{{ lookup('role_var', '_paths_db_location', role='filebrowser') }}" register: filebrowser_db -- name: "Settings | Check if '{{ filebrowser_paths_db_folder | basename }}' exists"+- name: "Settings | Check if '{{ lookup('role_var', '_paths_db_folder', role='filebrowser') | basename }}' exists" ansible.builtin.stat:- path: "{{ filebrowser_paths_db_folder }}"+ path: "{{ lookup('role_var', '_paths_db_folder', role='filebrowser') }}" register: filebrowser_db_folder -- name: "Settings | Check if '{{ filebrowser_paths_db_folder | basename }}/filebrowser.db' exists"+- name: "Settings | Check if '{{ lookup('role_var', '_paths_db_folder', role='filebrowser') | basename }}/filebrowser.db' exists" ansible.builtin.stat:- path: "{{ filebrowser_paths_db_folder }}/filebrowser.db"+ path: "{{ lookup('role_var', '_paths_db_folder', role='filebrowser') }}/filebrowser.db" register: filebrowser_db_folder_db - name: Settings | Migrate filebrowser.db tasks when: (filebrowser_db.stat.exists) and (not filebrowser_db_folder_db.stat.exists) block:- - name: Settings | Migrate `{{ filebrowser_paths_db_location | basename }}`+ - name: Settings | Migrate `{{ lookup('role_var', '_paths_db_location', role='filebrowser') | basename }}` ansible.builtin.copy:- src: "{{ filebrowser_paths_db_location }}"- dest: "{{ filebrowser_paths_db_folder }}/filebrowser.db"+ src: "{{ lookup('role_var', '_paths_db_location', role='filebrowser') }}"+ dest: "{{ lookup('role_var', '_paths_db_folder', role='filebrowser') }}/filebrowser.db" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664" - name: Settings | Remove legacy filebrowser.db ansible.builtin.file:- path: "{{ filebrowser_paths_db_location }}"+ path: "{{ lookup('role_var', '_paths_db_location', role='filebrowser') }}" state: absent
modified
roles/filezilla/defaults/main.yml
@@ -17,130 +17,87 @@ # Paths ################################ -filezilla_paths_folder: "{{ filezilla_name }}"-filezilla_paths_location: "{{ server_appdata_path }}/{{ filezilla_paths_folder }}"-filezilla_paths_folders_list:- - "{{ filezilla_paths_location }}"- - "{{ filezilla_paths_location }}/config"+filezilla_role_paths_folder: "{{ filezilla_name }}"+filezilla_role_paths_location: "{{ server_appdata_path }}/{{ filezilla_role_paths_folder }}"+filezilla_role_paths_folders_list:+ - "{{ filezilla_role_paths_location }}"+ - "{{ filezilla_role_paths_location }}/config" ################################ # Web ################################ -filezilla_web_subdomain: "{{ filezilla_name }}"-filezilla_web_domain: "{{ user.domain }}"-filezilla_web_port: "5800"-filezilla_web_url: "{{ 'https://' + (filezilla_web_subdomain + '.' + filezilla_web_domain- if (filezilla_web_subdomain | length > 0)- else filezilla_web_domain) }}"+filezilla_role_web_subdomain: "{{ filezilla_name }}"+filezilla_role_web_domain: "{{ user.domain }}"+filezilla_role_web_port: "5800"+filezilla_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='filezilla') + '.' + lookup('role_var', '_web_domain', role='filezilla')+ if (lookup('role_var', '_web_subdomain', role='filezilla') | length > 0)+ else lookup('role_var', '_web_domain', role='filezilla')) }}" ################################ # DNS ################################ -filezilla_dns_record: "{{ filezilla_web_subdomain }}"-filezilla_dns_zone: "{{ filezilla_web_domain }}"-filezilla_dns_proxy: "{{ dns.proxied }}"+filezilla_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='filezilla') }}"+filezilla_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='filezilla') }}"+filezilla_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -filezilla_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-filezilla_traefik_middleware_default: "{{ traefik_default_middleware }}"-filezilla_traefik_middleware_custom: ""-filezilla_traefik_certresolver: "{{ traefik_default_certresolver }}"-filezilla_traefik_enabled: true-filezilla_traefik_api_enabled: false-filezilla_traefik_api_endpoint: ""+filezilla_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+filezilla_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+filezilla_role_traefik_middleware_custom: ""+filezilla_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+filezilla_role_traefik_enabled: true+filezilla_role_traefik_api_enabled: false+filezilla_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-filezilla_docker_container: "{{ filezilla_name }}"+filezilla_role_docker_container: "{{ filezilla_name }}" # Image-filezilla_docker_image_pull: true-filezilla_docker_image_tag: "latest"-filezilla_docker_image: "jlesage/filezilla:{{ filezilla_docker_image_tag }}"--# Ports-filezilla_docker_ports_defaults: []-filezilla_docker_ports_custom: []-filezilla_docker_ports: "{{ filezilla_docker_ports_defaults- + filezilla_docker_ports_custom }}"+filezilla_role_docker_image_pull: true+filezilla_role_docker_image_repo: "jlesage/filezilla"+filezilla_role_docker_image_tag: "latest"+filezilla_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='filezilla') }}:{{ lookup('role_var', '_docker_image_tag', role='filezilla') }}" # Envs-filezilla_docker_envs_default:+filezilla_role_docker_envs_default: USER_ID: "{{ uid }}" GROUP_ID: "{{ gid }}" TZ: "{{ tz }}" KEEP_APP_RUNNING: "1"-filezilla_docker_envs_custom: {}-filezilla_docker_envs: "{{ filezilla_docker_envs_default- | combine(filezilla_docker_envs_custom) }}"--# Commands-filezilla_docker_commands_default: []-filezilla_docker_commands_custom: []-filezilla_docker_commands: "{{ filezilla_docker_commands_default- + filezilla_docker_commands_custom }}"+filezilla_role_docker_envs_custom: {}+filezilla_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='filezilla')+ | combine(lookup('role_var', '_docker_envs_custom', role='filezilla')) }}" # Volumes-filezilla_docker_volumes_default:- - "{{ filezilla_paths_location }}/config:/config"+filezilla_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='filezilla') }}/config:/config" - "/home/{{ user.name }}:/storage"-filezilla_docker_volumes_custom: []-filezilla_docker_volumes: "{{ filezilla_docker_volumes_default- + filezilla_docker_volumes_custom }}"--# Devices-filezilla_docker_devices_default: []-filezilla_docker_devices_custom: []-filezilla_docker_devices: "{{ filezilla_docker_devices_default- + filezilla_docker_devices_custom }}"--# Hosts-filezilla_docker_hosts_default: {}-filezilla_docker_hosts_custom: {}-filezilla_docker_hosts: "{{ docker_hosts_common- | combine(filezilla_docker_hosts_default)- | combine(filezilla_docker_hosts_custom) }}"--# Labels-filezilla_docker_labels_default: {}-filezilla_docker_labels_custom: {}-filezilla_docker_labels: "{{ docker_labels_common- | combine(filezilla_docker_labels_default)- | combine(filezilla_docker_labels_custom) }}"+filezilla_role_docker_volumes_custom: []+filezilla_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='filezilla')+ + lookup('role_var', '_docker_volumes_custom', role='filezilla') }}" # Hostname-filezilla_docker_hostname: "{{ filezilla_name }}"+filezilla_role_docker_hostname: "{{ filezilla_name }}" # Networks-filezilla_docker_networks_alias: "{{ filezilla_name }}"-filezilla_docker_networks_default: []-filezilla_docker_networks_custom: []-filezilla_docker_networks: "{{ docker_networks_common- + filezilla_docker_networks_default- + filezilla_docker_networks_custom }}"--# Capabilities-filezilla_docker_capabilities_default: []-filezilla_docker_capabilities_custom: []-filezilla_docker_capabilities: "{{ filezilla_docker_capabilities_default- + filezilla_docker_capabilities_custom }}"--# Security Opts-filezilla_docker_security_opts_default: []-filezilla_docker_security_opts_custom: []-filezilla_docker_security_opts: "{{ filezilla_docker_security_opts_default- + filezilla_docker_security_opts_custom }}"+filezilla_role_docker_networks_alias: "{{ filezilla_name }}"+filezilla_role_docker_networks_default: []+filezilla_role_docker_networks_custom: []+filezilla_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='filezilla')+ + lookup('role_var', '_docker_networks_custom', role='filezilla') }}" # Restart Policy-filezilla_docker_restart_policy: unless-stopped+filezilla_role_docker_restart_policy: unless-stopped # State-filezilla_docker_state: started+filezilla_role_docker_state: started
modified
roles/filezilla/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -35,4 +35,4 @@ group: "{{ user.name }}" mode: "0775" recurse: true- with_items: "{{ lookup('vars', role_name + '_paths_folders_list') }}"+ with_items: "{{ lookup('role_var', '_paths_folders_list', role='filezilla') }}"
modified
roles/fireflyiii/defaults/main.yml
@@ -17,73 +17,68 @@ # Settings ################################ -fireflyiii_mariadb_name: "{{ fireflyiii_name }}-mariadb"-fireflyiii_mariadb_paths_folder: "{{ fireflyiii_name }}"-fireflyiii_mariadb_paths_location: "{{ server_appdata_path }}/{{ mariadb_paths_folder }}/mariadb"-fireflyiii_mariadb_docker_image_tag: "lts"-fireflyiii_mariadb_docker_env_password: "{{ fireflyiii_db_password_saltbox_facts.facts.secret_key }}"-fireflyiii_mariadb_docker_env_db: "{{ fireflyiii_name }}-mariadb"+fireflyiii_role_mariadb_name: "{{ fireflyiii_name }}-mariadb"+fireflyiii_role_mariadb_paths_folder: "{{ fireflyiii_name }}"+fireflyiii_role_mariadb_paths_location: "{{ server_appdata_path }}/{{ lookup('role_var', '_paths_folder', role='mariadb') }}/mariadb"+fireflyiii_role_mariadb_docker_image_tag: "lts"+fireflyiii_role_mariadb_docker_env_password: "{{ fireflyiii_db_password_saltbox_facts.facts.secret_key }}"+fireflyiii_role_mariadb_docker_env_db: "{{ fireflyiii_name }}-mariadb" ################################ # Paths ################################ -fireflyiii_paths_folder: "{{ fireflyiii_name }}"-fireflyiii_paths_location: "{{ server_appdata_path }}/{{ fireflyiii_paths_folder }}"-fireflyiii_paths_folders_list:- - "{{ fireflyiii_paths_location }}"+fireflyiii_role_paths_folder: "{{ fireflyiii_name }}"+fireflyiii_role_paths_location: "{{ server_appdata_path }}/{{ fireflyiii_role_paths_folder }}"+fireflyiii_role_paths_folders_list:+ - "{{ fireflyiii_role_paths_location }}" ################################ # Web ################################ -fireflyiii_web_subdomain: "{{ fireflyiii_name }}"-fireflyiii_web_domain: "{{ user.domain }}"-fireflyiii_web_port: "8080"-fireflyiii_web_url: "{{ 'https://' + (fireflyiii_web_subdomain + '.' + fireflyiii_web_domain- if (fireflyiii_web_subdomain | length > 0)- else fireflyiii_web_domain) }}"+fireflyiii_role_web_subdomain: "{{ fireflyiii_name }}"+fireflyiii_role_web_domain: "{{ user.domain }}"+fireflyiii_role_web_port: "8080"+fireflyiii_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='fireflyiii') + '.' + lookup('role_var', '_web_domain', role='fireflyiii')+ if (lookup('role_var', '_web_subdomain', role='fireflyiii') | length > 0)+ else lookup('role_var', '_web_domain', role='fireflyiii')) }}" ################################ # DNS ################################ -fireflyiii_dns_record: "{{ fireflyiii_web_subdomain }}"-fireflyiii_dns_zone: "{{ fireflyiii_web_domain }}"-fireflyiii_dns_proxy: "{{ dns.proxied }}"+fireflyiii_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='fireflyiii') }}"+fireflyiii_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='fireflyiii') }}"+fireflyiii_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -fireflyiii_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-fireflyiii_traefik_middleware_default: "{{ traefik_default_middleware }}"-fireflyiii_traefik_middleware_custom: ""-fireflyiii_traefik_certresolver: "{{ traefik_default_certresolver }}"-fireflyiii_traefik_enabled: true-fireflyiii_traefik_api_enabled: true-fireflyiii_traefik_api_endpoint: "PathPrefix(`/api`)"+fireflyiii_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+fireflyiii_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+fireflyiii_role_traefik_middleware_custom: ""+fireflyiii_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+fireflyiii_role_traefik_enabled: true+fireflyiii_role_traefik_api_enabled: true+fireflyiii_role_traefik_api_endpoint: "PathPrefix(`/api`)" ################################ # Docker ################################ # Container-fireflyiii_docker_container: "{{ fireflyiii_name }}"+fireflyiii_role_docker_container: "{{ fireflyiii_name }}" # Image-fireflyiii_docker_image_pull: true-fireflyiii_docker_image_tag: "latest"-fireflyiii_docker_image: "fireflyiii/core:{{ fireflyiii_docker_image_tag }}"--# Ports-fireflyiii_docker_ports_defaults: []-fireflyiii_docker_ports_custom: []-fireflyiii_docker_ports: "{{ fireflyiii_docker_ports_defaults- + fireflyiii_docker_ports_custom }}"+fireflyiii_role_docker_image_pull: true+fireflyiii_role_docker_image_repo: "fireflyiii/core"+fireflyiii_role_docker_image_tag: "latest"+fireflyiii_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='fireflyiii') }}:{{ lookup('role_var', '_docker_image_tag', role='fireflyiii') }}" # Envs-fireflyiii_docker_envs_default:+fireflyiii_role_docker_envs_default: APP_ENV: "production" SITE_OWNER: "{{ user.email }}" APP_KEY: "{{ fireflyiii_appkey_saltbox_facts.facts.secret_key }}"@@ -101,77 +96,39 @@ DB_USERNAME: "root" DB_PASSWORD: "{{ fireflyiii_db_password_saltbox_facts.facts.secret_key }}" AUTHENTICATION_GUARD: "web"- APP_URL: "{{ fireflyiii_web_url }}"+ APP_URL: "{{ lookup('role_var', '_web_url', role='fireflyiii') }}" ALLOW_WEBHOOKS: "True"-fireflyiii_docker_envs_custom: {}-fireflyiii_docker_envs: "{{ fireflyiii_docker_envs_default- | combine(fireflyiii_docker_envs_custom) }}"--# Commands-fireflyiii_docker_commands_default: []-fireflyiii_docker_commands_custom: []-fireflyiii_docker_commands: "{{ fireflyiii_docker_commands_default- + fireflyiii_docker_commands_custom }}"+fireflyiii_role_docker_envs_custom: {}+fireflyiii_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='fireflyiii')+ | combine(lookup('role_var', '_docker_envs_custom', role='fireflyiii')) }}" # Volumes-fireflyiii_docker_volumes_default:- - "{{ fireflyiii_paths_location }}/upload:/var/www/html/storage/upload"+fireflyiii_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='fireflyiii') }}/upload:/var/www/html/storage/upload" - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro-fireflyiii_docker_volumes_custom: []-fireflyiii_docker_volumes: "{{ fireflyiii_docker_volumes_default- + fireflyiii_docker_volumes_custom }}"--# Devices-fireflyiii_docker_devices_default: []-fireflyiii_docker_devices_custom: []-fireflyiii_docker_devices: "{{ fireflyiii_docker_devices_default- + fireflyiii_docker_devices_custom }}"--# Hosts-fireflyiii_docker_hosts_default: {}-fireflyiii_docker_hosts_custom: {}-fireflyiii_docker_hosts: "{{ docker_hosts_common- | combine(fireflyiii_docker_hosts_default)- | combine(fireflyiii_docker_hosts_custom) }}"--# Labels-fireflyiii_docker_labels_default: {}-fireflyiii_docker_labels_custom: {}-fireflyiii_docker_labels: "{{ docker_labels_common- | combine(fireflyiii_docker_labels_default)- | combine(fireflyiii_docker_labels_custom) }}"+fireflyiii_role_docker_volumes_custom: []+fireflyiii_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='fireflyiii')+ + lookup('role_var', '_docker_volumes_custom', role='fireflyiii') }}" # Hostname-fireflyiii_docker_hostname: "{{ fireflyiii_name }}"+fireflyiii_role_docker_hostname: "{{ fireflyiii_name }}" # Networks-fireflyiii_docker_networks_alias: "{{ fireflyiii_name }}"-fireflyiii_docker_networks_default: []-fireflyiii_docker_networks_custom: []-fireflyiii_docker_networks: "{{ docker_networks_common- + fireflyiii_docker_networks_default- + fireflyiii_docker_networks_custom }}"--# Capabilities-fireflyiii_docker_capabilities_default: []-fireflyiii_docker_capabilities_custom: []-fireflyiii_docker_capabilities: "{{ fireflyiii_docker_capabilities_default- + fireflyiii_docker_capabilities_custom }}"--# Security Opts-fireflyiii_docker_security_opts_default: []-fireflyiii_docker_security_opts_custom: []-fireflyiii_docker_security_opts: "{{ fireflyiii_docker_security_opts_default- + fireflyiii_docker_security_opts_custom }}"+fireflyiii_role_docker_networks_alias: "{{ fireflyiii_name }}"+fireflyiii_role_docker_networks_default: []+fireflyiii_role_docker_networks_custom: []+fireflyiii_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='fireflyiii')+ + lookup('role_var', '_docker_networks_custom', role='fireflyiii') }}" # Restart Policy-fireflyiii_docker_restart_policy: unless-stopped+fireflyiii_role_docker_restart_policy: unless-stopped # State-fireflyiii_docker_state: started+fireflyiii_role_docker_state: started # Dependencies-fireflyiii_depends_on: "{{ fireflyiii_name }}-mariadb"-fireflyiii_depends_on_delay: "0"-fireflyiii_depends_on_healthchecks: "false"+fireflyiii_role_depends_on: "{{ fireflyiii_name }}-mariadb"+fireflyiii_role_depends_on_delay: "0"+fireflyiii_role_depends_on_healthchecks: "false"
modified
roles/fireflyiii/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: "Save Fireflyiii Mariadb Password Saltbox facts" saltbox_facts:@@ -23,6 +23,7 @@ owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0755"+ base_path: "{{ server_appdata_path }}" register: fireflyiii_db_password_saltbox_facts - name: "Save Fireflyiii AppKey Saltbox facts"@@ -34,18 +35,19 @@ owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0755"+ base_path: "{{ server_appdata_path }}" register: fireflyiii_appkey_saltbox_facts - name: MariaDB Role ansible.builtin.include_role: name: mariadb vars:- mariadb_instances: ["{{ fireflyiii_mariadb_name }}"]- mariadb_paths_folder: "{{ fireflyiii_mariadb_paths_folder }}"- mariadb_paths_location: "{{ fireflyiii_mariadb_paths_location }}"- mariadb_docker_image_tag: "{{ fireflyiii_mariadb_docker_image_tag }}"- mariadb_docker_env_db: "{{ fireflyiii_mariadb_docker_env_db }}"- mariadb_docker_env_password: "{{ fireflyiii_mariadb_docker_env_password }}"+ mariadb_instances: ["{{ lookup('role_var', '_mariadb_name', role='fireflyiii') }}"]+ mariadb_role_paths_folder: "{{ lookup('role_var', '_mariadb_paths_folder', role='fireflyiii') }}"+ mariadb_role_paths_location: "{{ lookup('role_var', '_mariadb_paths_location', role='fireflyiii') }}"+ mariadb_role_docker_image_tag: "{{ lookup('role_var', '_mariadb_docker_image_tag', role='fireflyiii') }}"+ mariadb_role_docker_env_db: "{{ lookup('role_var', '_mariadb_docker_env_db', role='fireflyiii') }}"+ mariadb_role_docker_env_password: "{{ lookup('role_var', '_mariadb_docker_env_password', role='fireflyiii') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/fireflyiii_importer/defaults/main.yml
@@ -17,137 +17,94 @@ # Paths ################################ -fireflyiii_importer_paths_folder: "{{ fireflyiii_name }}"-fireflyiii_importer_paths_location: "{{ server_appdata_path }}/{{ fireflyiii_importer_paths_folder }}"-fireflyiii_importer_paths_folders_list:- - "{{ fireflyiii_importer_paths_location }}"- - "{{ fireflyiii_importer_paths_location }}/import"+fireflyiii_importer_role_paths_folder: "{{ fireflyiii_name }}"+fireflyiii_importer_role_paths_location: "{{ server_appdata_path }}/{{ fireflyiii_importer_role_paths_folder }}"+fireflyiii_importer_role_paths_folders_list:+ - "{{ fireflyiii_importer_role_paths_location }}"+ - "{{ fireflyiii_importer_role_paths_location }}/import" ################################ # Web ################################ -fireflyiii_importer_web_subdomain: "{{ fireflyiii_importer_name }}"-fireflyiii_importer_web_domain: "{{ user.domain }}"-fireflyiii_importer_web_port: "8080"-fireflyiii_importer_web_url: "{{ 'https://' + (fireflyiii_importer_web_subdomain + '.' + fireflyiii_importer_web_domain- if (fireflyiii_importer_web_subdomain | length > 0)- else fireflyiii_importer_web_domain) }}"+fireflyiii_importer_role_web_subdomain: "{{ fireflyiii_importer_name }}"+fireflyiii_importer_role_web_domain: "{{ user.domain }}"+fireflyiii_importer_role_web_port: "8080"+fireflyiii_importer_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='fireflyiii_importer') + '.' + lookup('role_var', '_web_domain', role='fireflyiii_importer')+ if (lookup('role_var', '_web_subdomain', role='fireflyiii_importer') | length > 0)+ else lookup('role_var', '_web_domain', role='fireflyiii_importer')) }}" ################################ # DNS ################################ -fireflyiii_importer_dns_record: "{{ fireflyiii_importer_web_subdomain }}"-fireflyiii_importer_dns_zone: "{{ fireflyiii_importer_web_domain }}"-fireflyiii_importer_dns_proxy: "{{ dns.proxied }}"+fireflyiii_importer_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='fireflyiii_importer') }}"+fireflyiii_importer_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='fireflyiii_importer') }}"+fireflyiii_importer_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -fireflyiii_importer_traefik_sso_middleware: ""-fireflyiii_importer_traefik_middleware_default: "{{ traefik_default_middleware }}"-fireflyiii_importer_traefik_middleware_custom: ""-fireflyiii_importer_traefik_certresolver: "{{ traefik_default_certresolver }}"-fireflyiii_importer_traefik_enabled: true-fireflyiii_importer_traefik_api_enabled: false-fireflyiii_importer_traefik_api_endpoint: ""+fireflyiii_importer_role_traefik_sso_middleware: ""+fireflyiii_importer_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+fireflyiii_importer_role_traefik_middleware_custom: ""+fireflyiii_importer_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+fireflyiii_importer_role_traefik_enabled: true+fireflyiii_importer_role_traefik_api_enabled: false+fireflyiii_importer_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-fireflyiii_importer_docker_container: "{{ fireflyiii_importer_name }}"+fireflyiii_importer_role_docker_container: "{{ fireflyiii_importer_name }}" # Image-fireflyiii_importer_docker_image_pull: true-fireflyiii_importer_docker_image_tag: "latest"-fireflyiii_importer_docker_image: "fireflyiii/data-importer:{{ fireflyiii_importer_docker_image_tag }}"--# Ports-fireflyiii_importer_docker_ports_defaults: []-fireflyiii_importer_docker_ports_custom: []-fireflyiii_importer_docker_ports: "{{ fireflyiii_importer_docker_ports_defaults- + fireflyiii_importer_docker_ports_custom }}"+fireflyiii_importer_role_docker_image_pull: true+fireflyiii_importer_role_docker_image_repo: "fireflyiii/data-importer"+fireflyiii_importer_role_docker_image_tag: "latest"+fireflyiii_importer_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='fireflyiii_importer') }}:{{ lookup('role_var', '_docker_image_tag', role='fireflyiii_importer') }}" # Envs-fireflyiii_importer_docker_envs_default:+fireflyiii_importer_role_docker_envs_default: IMPORT_DIR_ALLOWLIST: /import FIREFLY_III_URL: "http://{{ fireflyiii_name }}:8080"- VANITY_URL: "{{ fireflyiii_web_url }}"+ VANITY_URL: "{{ lookup('role_var', '_web_url', role='fireflyiii') }}" TRUSTED_PROXIES: "**" TZ: "{{ tz }}"-fireflyiii_importer_docker_envs_custom: {}-fireflyiii_importer_docker_envs: "{{ fireflyiii_importer_docker_envs_default- | combine(fireflyiii_importer_docker_envs_custom) }}"--# Commands-fireflyiii_importer_docker_commands_default: []-fireflyiii_importer_docker_commands_custom: []-fireflyiii_importer_docker_commands: "{{ fireflyiii_importer_docker_commands_default- + fireflyiii_importer_docker_commands_custom }}"+fireflyiii_importer_role_docker_envs_custom: {}+fireflyiii_importer_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='fireflyiii_importer')+ | combine(lookup('role_var', '_docker_envs_custom', role='fireflyiii_importer')) }}" # Volumes-fireflyiii_importer_docker_volumes_default:- - "{{ fireflyiii_paths_location }}/import:/import"- - /etc/timezone:/etc/timezone:ro- - /etc/localtime:/etc/localtime:ro-fireflyiii_importer_docker_volumes_custom: []-fireflyiii_importer_docker_volumes: "{{ fireflyiii_importer_docker_volumes_default- + fireflyiii_importer_docker_volumes_custom }}"--# Devices-fireflyiii_importer_docker_devices_default: []-fireflyiii_importer_docker_devices_custom: []-fireflyiii_importer_docker_devices: "{{ fireflyiii_importer_docker_devices_default- + fireflyiii_importer_docker_devices_custom }}"--# Hosts-fireflyiii_importer_docker_hosts_default: {}-fireflyiii_importer_docker_hosts_custom: {}-fireflyiii_importer_docker_hosts: "{{ docker_hosts_common- | combine(fireflyiii_importer_docker_hosts_default)- | combine(fireflyiii_importer_docker_hosts_custom) }}"--# Labels-fireflyiii_importer_docker_labels_default: {}-fireflyiii_importer_docker_labels_custom: {}-fireflyiii_importer_docker_labels: "{{ docker_labels_common- | combine(fireflyiii_importer_docker_labels_default)- | combine(fireflyiii_importer_docker_labels_custom) }}"+fireflyiii_importer_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='fireflyiii') }}/import:/import"+ - "/etc/timezone:/etc/timezone:ro"+ - "/etc/localtime:/etc/localtime:ro"+fireflyiii_importer_role_docker_volumes_custom: []+fireflyiii_importer_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='fireflyiii_importer')+ + lookup('role_var', '_docker_volumes_custom', role='fireflyiii_importer') }}" # Hostname-fireflyiii_importer_docker_hostname: "{{ fireflyiii_importer_name }}"+fireflyiii_importer_role_docker_hostname: "{{ fireflyiii_importer_name }}" # Networks-fireflyiii_importer_docker_networks_alias: "{{ fireflyiii_importer_name }}"-fireflyiii_importer_docker_networks_default: []-fireflyiii_importer_docker_networks_custom: []-fireflyiii_importer_docker_networks: "{{ docker_networks_common- + fireflyiii_importer_docker_networks_default- + fireflyiii_importer_docker_networks_custom }}"--# Capabilities-fireflyiii_importer_docker_capabilities_default: []-fireflyiii_importer_docker_capabilities_custom: []-fireflyiii_importer_docker_capabilities: "{{ fireflyiii_importer_docker_capabilities_default- + fireflyiii_importer_docker_capabilities_custom }}"--# Security Opts-fireflyiii_importer_docker_security_opts_default: []-fireflyiii_importer_docker_security_opts_custom: []-fireflyiii_importer_docker_security_opts: "{{ fireflyiii_importer_docker_security_opts_default- + fireflyiii_importer_docker_security_opts_custom }}"+fireflyiii_importer_role_docker_networks_alias: "{{ fireflyiii_importer_name }}"+fireflyiii_importer_role_docker_networks_default: []+fireflyiii_importer_role_docker_networks_custom: []+fireflyiii_importer_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='fireflyiii_importer')+ + lookup('role_var', '_docker_networks_custom', role='fireflyiii_importer') }}" # Restart Policy-fireflyiii_importer_docker_restart_policy: unless-stopped+fireflyiii_importer_role_docker_restart_policy: unless-stopped # State-fireflyiii_importer_docker_state: started+fireflyiii_importer_role_docker_state: started # Dependencies-fireflyiii_importer_depends_on: "{{ fireflyiii_name }}"-fireflyiii_importer_depends_on_delay: "0"-fireflyiii_importer_depends_on_healthchecks: "false"+fireflyiii_importer_role_depends_on: "{{ fireflyiii_name }}"+fireflyiii_importer_role_depends_on_delay: "0"+fireflyiii_importer_role_depends_on_healthchecks: "false"
modified
roles/fireflyiii_importer/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove legacy Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/firefox/defaults/main.yml
@@ -17,131 +17,94 @@ # Paths ################################ -firefox_paths_folder: "{{ firefox_name }}"-firefox_paths_location: "{{ server_appdata_path }}/{{ firefox_paths_folder }}"-firefox_paths_downloads_location: "{{ downloads_root_path }}/{{ firefox_paths_folder }}"-firefox_paths_folders_list:- - "{{ firefox_paths_location }}"- - "{{ firefox_paths_downloads_location }}"-firefox_paths_env_file_location: "{{ firefox_paths_location }}/.env"+firefox_role_paths_folder: "{{ firefox_name }}"+firefox_role_paths_location: "{{ server_appdata_path }}/{{ firefox_role_paths_folder }}"+firefox_role_paths_downloads_location: "{{ downloads_root_path }}/{{ firefox_role_paths_folder }}"+firefox_role_paths_folders_list:+ - "{{ firefox_role_paths_location }}"+ - "{{ firefox_role_paths_downloads_location }}"+firefox_role_paths_env_file_location: "{{ firefox_role_paths_location }}/.env" ################################ # Web ################################ -firefox_web_subdomain: "{{ firefox_name }}"-firefox_web_domain: "{{ user.domain }}"-firefox_web_port: "5800"-firefox_web_url: "{{ 'https://' + (firefox_web_subdomain + '.' + firefox_web_domain- if (firefox_web_subdomain | length > 0)- else firefox_web_domain) }}"+firefox_role_web_subdomain: "{{ firefox_name }}"+firefox_role_web_domain: "{{ user.domain }}"+firefox_role_web_port: "5800"+firefox_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='firefox') + '.' + lookup('role_var', '_web_domain', role='firefox')+ if (lookup('role_var', '_web_subdomain', role='firefox') | length > 0)+ else lookup('role_var', '_web_domain', role='firefox')) }}" ################################ # VNC ################################ -firefox_vnc_port: "5900"+firefox_role_vnc_port: "5900" ################################ # DNS ################################ -firefox_dns_record: "{{ firefox_web_subdomain }}"-firefox_dns_zone: "{{ firefox_web_domain }}"-firefox_dns_proxy: "{{ dns.proxied }}"+firefox_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='firefox') }}"+firefox_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='firefox') }}"+firefox_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -firefox_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-firefox_traefik_middleware_default: "{{ traefik_default_middleware }}"-firefox_traefik_middleware_custom: ""-firefox_traefik_certresolver: "{{ traefik_default_certresolver }}"-firefox_traefik_enabled: true-firefox_traefik_api_enabled: false-firefox_traefik_api_endpoint: ""+firefox_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+firefox_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+firefox_role_traefik_middleware_custom: ""+firefox_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+firefox_role_traefik_enabled: true+firefox_role_traefik_api_enabled: false+firefox_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-firefox_docker_container: "{{ firefox_name }}"+firefox_role_docker_container: "{{ firefox_name }}" # Image-firefox_docker_image_pull: true-firefox_docker_image_tag: "latest"-firefox_docker_image: "jlesage/firefox:{{ firefox_docker_image_tag }}"--# Ports-firefox_docker_ports_defaults: []-firefox_docker_ports_custom: []-firefox_docker_ports: "{{ firefox_docker_ports_defaults- + firefox_docker_ports_custom }}"+firefox_role_docker_image_pull: true+firefox_role_docker_image_repo: "jlesage/firefox"+firefox_role_docker_image_tag: "latest"+firefox_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='firefox') }}:{{ lookup('role_var', '_docker_image_tag', role='firefox') }}" # Envs-firefox_docker_env_file: "{{ firefox_paths_env_file_location }}"--# Commands-firefox_docker_commands_default: []-firefox_docker_commands_custom: []-firefox_docker_commands: "{{ firefox_docker_commands_default- + firefox_docker_commands_custom }}"+firefox_role_docker_env_file: "{{ lookup('role_var', '_paths_env_file_location', role='firefox') }}" # Volumes-firefox_docker_volumes_default:- - "{{ firefox_paths_location }}:/config"-firefox_docker_volumes_custom: []-firefox_docker_volumes: "{{ firefox_docker_volumes_default- + firefox_docker_volumes_custom }}"--# Devices-firefox_docker_devices_default: []-firefox_docker_devices_custom: []-firefox_docker_devices: "{{ firefox_docker_devices_default- + firefox_docker_devices_custom }}"--# Hosts-firefox_docker_hosts_default: {}-firefox_docker_hosts_custom: {}-firefox_docker_hosts: "{{ docker_hosts_common- | combine(firefox_docker_hosts_default)- | combine(firefox_docker_hosts_custom) }}"--# Labels-firefox_docker_labels_default: {}-firefox_docker_labels_custom: {}-firefox_docker_labels: "{{ docker_labels_common- | combine(firefox_docker_labels_default)- | combine(firefox_docker_labels_custom) }}"+firefox_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='firefox') }}:/config"+firefox_role_docker_volumes_custom: []+firefox_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='firefox')+ + lookup('role_var', '_docker_volumes_custom', role='firefox') }}" # Hostname-firefox_docker_hostname: "{{ firefox_name }}"+firefox_role_docker_hostname: "{{ firefox_name }}" # Networks-firefox_docker_networks_alias: "{{ firefox_name }}"-firefox_docker_networks_default: []-firefox_docker_networks_custom: []-firefox_docker_networks: "{{ docker_networks_common- + firefox_docker_networks_default- + firefox_docker_networks_custom }}"+firefox_role_docker_networks_alias: "{{ firefox_name }}"+firefox_role_docker_networks_default: []+firefox_role_docker_networks_custom: []+firefox_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='firefox')+ + lookup('role_var', '_docker_networks_custom', role='firefox') }}" # Capabilities-firefox_docker_capabilities_default:+firefox_role_docker_capabilities_default: - "SYS_NICE"-firefox_docker_capabilities_custom: []-firefox_docker_capabilities: "{{ firefox_docker_capabilities_default- + firefox_docker_capabilities_custom }}"--# Security Opts-firefox_docker_security_opts_default: []-firefox_docker_security_opts_custom: []-firefox_docker_security_opts: "{{ firefox_docker_security_opts_default- + firefox_docker_security_opts_custom }}"+firefox_role_docker_capabilities_custom: []+firefox_role_docker_capabilities: "{{ lookup('role_var', '_docker_capabilities_default', role='firefox')+ + lookup('role_var', '_docker_capabilities_custom', role='firefox') }}" # Restart Policy-firefox_docker_restart_policy: unless-stopped+firefox_role_docker_restart_policy: unless-stopped # State-firefox_docker_state: started+firefox_role_docker_state: started
modified
roles/firefox/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -20,10 +20,10 @@ - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" -- name: Import default `{{ firefox_paths_env_file_location | basename }}` if necessary+- name: Import default `{{ lookup('role_var', '_paths_env_file_location', role='firefox') | basename }}` if necessary ansible.builtin.template: src: env.j2- dest: "{{ firefox_paths_env_file_location }}"+ dest: "{{ lookup('role_var', '_paths_env_file_location', role='firefox') }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"@@ -31,15 +31,15 @@ - name: Docker Devices Task ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/set_docker_devices_variable.yml"- when: gpu.intel or use_nvidia+ when: use_intel or use_nvidia - name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" - name: Wait for service availability ansible.builtin.wait_for:- host: "{{ firefox_docker_networks_alias }}"- port: "{{ firefox_web_port }}"+ host: "{{ lookup('role_var', '_docker_networks_alias', role='firefox') }}"+ port: "{{ lookup('role_var', '_web_port', role='firefox') }}" -- name: Remove empty subdirectories of `{{ firefox_paths_location }}`- ansible.builtin.shell: find "{{ firefox_paths_location }}" -maxdepth 1 -type d -empty -exec rmdir {} ++- name: Remove empty subdirectories of `{{ lookup('role_var', '_paths_location', role='firefox') }}`+ ansible.builtin.shell: find "{{ lookup('role_var', '_paths_location', role='firefox') }}" -maxdepth 1 -type d -empty -exec rmdir {} +
modified
roles/firefox/templates/env.j2
@@ -9,13 +9,13 @@ DISPLAY_WIDTH=1920 DISPLAY_HEIGHT=1080 DARK_MODE=1-{% if firefox_web_port != '5800' %}-WEB_LISTENING_PORT={{ firefox_web_port }}+{% if lookup('role_var', '_web_port', role='firefox') != '5800' %}+WEB_LISTENING_PORT={{ lookup('role_var', '_web_port', role='firefox') }} {% endif %}-{% if firefox_vnc_port != '5900' %}-VNC_LISTENING_PORT={{ firefox_vnc_port }}+{% if lookup('role_var', '_vnc_port', role='firefox') != '5900' %}+VNC_LISTENING_PORT={{ lookup('role_var', '_vnc_port', role='firefox') }} {% endif %} ENABLE_CJK_FONT=0 FF_OPEN_URL= FF_KIOSK=0-FF_PREF_DOWNLOADS=browser.download.dir="{{ firefox_paths_downloads_location }}"+FF_PREF_DOWNLOADS=browser.download.dir="{{ lookup('role_var', '_paths_downloads_location', role='firefox') }}"
modified
roles/flaresolverr/defaults/main.yml
@@ -18,80 +18,37 @@ ################################ # Container-flaresolverr_docker_container: "{{ flaresolverr_name }}"+flaresolverr_role_docker_container: "{{ flaresolverr_name }}" # Image-flaresolverr_docker_image_pull: true-flaresolverr_docker_image_tag: "latest"-flaresolverr_docker_image: "ghcr.io/flaresolverr/flaresolverr:{{ flaresolverr_docker_image_tag }}"+flaresolverr_role_docker_image_pull: true+flaresolverr_role_docker_image_repo: "ghcr.io/flaresolverr/flaresolverr"+flaresolverr_role_docker_image_tag: "latest"+flaresolverr_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='flaresolverr') }}:{{ lookup('role_var', '_docker_image_tag', role='flaresolverr') }}" # Envs-flaresolverr_docker_envs_default:+flaresolverr_role_docker_envs_default: LOG_LEVEL: "info" LOG_HTML: "false" CAPTCHA_SOLVER: "hcaptcha-solver" TZ: "{{ tz }}"-flaresolverr_docker_envs_custom: {}-flaresolverr_docker_envs: "{{ flaresolverr_docker_envs_default- | combine(flaresolverr_docker_envs_custom) }}"--# Commands-flaresolverr_docker_commands_default: []-flaresolverr_docker_commands_custom: []-flaresolverr_docker_commands: "{{ flaresolverr_docker_commands_default- + flaresolverr_docker_commands_custom }}"--# Volumes-flaresolverr_docker_volumes_default: []-flaresolverr_docker_volumes_custom: []-flaresolverr_docker_volumes: "{{ flaresolverr_docker_volumes_default- + flaresolverr_docker_volumes_custom }}"--# Devices-flaresolverr_docker_devices_default: []-flaresolverr_docker_devices_custom: []-flaresolverr_docker_devices: "{{ flaresolverr_docker_devices_default- + flaresolverr_docker_devices_custom }}"--# Hosts-flaresolverr_docker_hosts_default: {}-flaresolverr_docker_hosts_custom: {}-flaresolverr_docker_hosts: "{{ docker_hosts_common- | combine(flaresolverr_docker_hosts_default)- | combine(flaresolverr_docker_hosts_custom) }}"--# Labels-flaresolverr_docker_labels_default: {}-flaresolverr_docker_labels_custom: {}-flaresolverr_docker_labels: "{{ docker_labels_common- | combine(flaresolverr_docker_labels_default)- | combine(flaresolverr_docker_labels_custom) }}"+flaresolverr_role_docker_envs_custom: {}+flaresolverr_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='flaresolverr')+ | combine(lookup('role_var', '_docker_envs_custom', role='flaresolverr')) }}" # Hostname-flaresolverr_docker_hostname: "{{ flaresolverr_name }}"+flaresolverr_role_docker_hostname: "{{ flaresolverr_name }}" # Networks-flaresolverr_docker_networks_alias: "{{ flaresolverr_name }}"-flaresolverr_docker_networks_default: []-flaresolverr_docker_networks_custom: []-flaresolverr_docker_networks: "{{ docker_networks_common- + flaresolverr_docker_networks_default- + flaresolverr_docker_networks_custom }}"--# Capabilities-flaresolverr_docker_capabilities_default: []-flaresolverr_docker_capabilities_custom: []-flaresolverr_docker_capabilities: "{{ flaresolverr_docker_capabilities_default- + flaresolverr_docker_capabilities_custom }}"--# Security Opts-flaresolverr_docker_security_opts_default: []-flaresolverr_docker_security_opts_custom: []-flaresolverr_docker_security_opts: "{{ flaresolverr_docker_security_opts_default- + flaresolverr_docker_security_opts_custom }}"+flaresolverr_role_docker_networks_alias: "{{ flaresolverr_name }}"+flaresolverr_role_docker_networks_default: []+flaresolverr_role_docker_networks_custom: []+flaresolverr_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='flaresolverr')+ + lookup('role_var', '_docker_networks_custom', role='flaresolverr') }}" # Restart Policy-flaresolverr_docker_restart_policy: unless-stopped+flaresolverr_role_docker_restart_policy: unless-stopped # State-flaresolverr_docker_state: started+flaresolverr_role_docker_state: started
modified
roles/forgejo/defaults/main.yml
@@ -17,61 +17,61 @@ # Paths ################################ -forgejo_paths_folder: "{{ forgejo_name }}"-forgejo_paths_location: "{{ server_appdata_path }}/{{ forgejo_paths_folder }}"-forgejo_paths_folders_list:- - "{{ forgejo_paths_location }}"+forgejo_role_paths_folder: "{{ forgejo_name }}"+forgejo_role_paths_location: "{{ server_appdata_path }}/{{ forgejo_role_paths_folder }}"+forgejo_role_paths_recursive: true+forgejo_role_paths_folders_list:+ - "{{ forgejo_role_paths_location }}"+ - "{{ forgejo_role_paths_location }}/git"+ - "{{ forgejo_role_paths_location }}/gitea"+ - "{{ forgejo_role_paths_location }}/ssh" ################################ # Web ################################ -forgejo_web_subdomain: "{{ forgejo_name }}"-forgejo_web_domain: "{{ user.domain }}"-forgejo_web_port: "3000"-forgejo_web_url: "{{ 'https://' + (forgejo_web_subdomain + '.' + forgejo_web_domain- if (forgejo_web_subdomain | length > 0)- else forgejo_web_domain) }}"+forgejo_role_web_subdomain: "{{ forgejo_name }}"+forgejo_role_web_domain: "{{ user.domain }}"+forgejo_role_web_port: "3000"+forgejo_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='forgejo') + '.' + lookup('role_var', '_web_domain', role='forgejo')+ if (lookup('role_var', '_web_subdomain', role='forgejo') | length > 0)+ else lookup('role_var', '_web_domain', role='forgejo')) }}" ################################ # DNS ################################ -forgejo_dns_record: "{{ forgejo_web_subdomain }}"-forgejo_dns_zone: "{{ forgejo_web_domain }}"-forgejo_dns_proxy: "{{ dns.proxied }}"+forgejo_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='forgejo') }}"+forgejo_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='forgejo') }}"+forgejo_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -forgejo_traefik_sso_middleware: ""-forgejo_traefik_middleware_default: "{{ traefik_default_middleware }}"-forgejo_traefik_middleware_custom: ""-forgejo_traefik_certresolver: "{{ traefik_default_certresolver }}"-forgejo_traefik_enabled: true-forgejo_traefik_api_enabled: false-forgejo_traefik_api_endpoint: ""+forgejo_role_traefik_sso_middleware: ""+forgejo_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+forgejo_role_traefik_middleware_custom: ""+forgejo_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+forgejo_role_traefik_enabled: true+forgejo_role_traefik_api_enabled: false+forgejo_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-forgejo_docker_container: "{{ forgejo_name }}"+forgejo_role_docker_container: "{{ forgejo_name }}" # Image-forgejo_docker_image_pull: true-forgejo_docker_image_tag: "1.20" # the Codeberg container registry does not provide a "latest" tag-forgejo_docker_image: "codeberg.org/forgejo/forgejo:{{ forgejo_docker_image_tag }}"--# Ports-forgejo_docker_ports_defaults: []-forgejo_docker_ports_custom: []-forgejo_docker_ports: "{{ forgejo_docker_ports_defaults + forgejo_docker_ports_custom }}"+forgejo_role_docker_image_pull: true+forgejo_role_docker_image_repo: "codeberg.org/forgejo/forgejo"+forgejo_role_docker_image_tag: "13" # the Codeberg container registry does not provide a "latest" tag+forgejo_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='forgejo') }}:{{ lookup('role_var', '_docker_image_tag', role='forgejo') }}" # Envs-forgejo_docker_envs_default:+forgejo_role_docker_envs_default: USER_UID: "{{ uid }}" USER_GID: "{{ gid }}" DB_TYPE: "mysql"@@ -80,65 +80,38 @@ DB_PASS: "password321" DB_DATABASE: "forgejo" DISABLE_SSH: "true"- RUN_MODE: "prod"- ROOT_URL: "{{ forgejo_web_url }}/"-forgejo_docker_envs_custom: {}-forgejo_docker_envs: "{{ forgejo_docker_envs_default | combine(forgejo_docker_envs_custom) }}"--# Commands-forgejo_docker_commands_default: []-forgejo_docker_commands_custom: []-forgejo_docker_commands: "{{ forgejo_docker_commands_default + forgejo_docker_commands_custom }}"+ ROOT_URL: "{{ lookup('role_var', '_web_url', role='forgejo') }}/"+forgejo_role_docker_envs_custom: {}+forgejo_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='forgejo')+ | combine(lookup('role_var', '_docker_envs_custom', role='forgejo')) }}" # Volumes-forgejo_docker_volumes_default:- - "{{ forgejo_paths_location }}:/data"+forgejo_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='forgejo') }}:/data" - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro-forgejo_docker_volumes_custom: []-forgejo_docker_volumes: "{{ forgejo_docker_volumes_default + forgejo_docker_volumes_custom }}"--# Devices-forgejo_docker_devices_default: []-forgejo_docker_devices_custom: []-forgejo_docker_devices: "{{ forgejo_docker_devices_default + forgejo_docker_devices_custom }}"--# Hosts-forgejo_docker_hosts_default: {}-forgejo_docker_hosts_custom: {}-forgejo_docker_hosts: "{{ docker_hosts_common | combine(forgejo_docker_hosts_default) | combine(forgejo_docker_hosts_custom) }}"--# Labels-forgejo_docker_labels_default: {}-forgejo_docker_labels_custom: {}-forgejo_docker_labels: "{{ docker_labels_common | combine(forgejo_docker_labels_default) | combine(forgejo_docker_labels_custom) }}"+forgejo_role_docker_volumes_custom: []+forgejo_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='forgejo')+ + lookup('role_var', '_docker_volumes_custom', role='forgejo') }}" # Hostname-forgejo_docker_hostname: "{{ forgejo_name }}"+forgejo_role_docker_hostname: "{{ forgejo_name }}" # Networks-forgejo_docker_networks_alias: "{{ forgejo_name }}"-forgejo_docker_networks_default: []-forgejo_docker_networks_custom: []-forgejo_docker_networks: "{{ docker_networks_common + forgejo_docker_networks_default + forgejo_docker_networks_custom }}"--# Capabilities-forgejo_docker_capabilities_default: []-forgejo_docker_capabilities_custom: []-forgejo_docker_capabilities: "{{ forgejo_docker_capabilities_default + forgejo_docker_capabilities_custom }}"--# Security Opts-forgejo_docker_security_opts_default: []-forgejo_docker_security_opts_custom: []-forgejo_docker_security_opts: "{{ forgejo_docker_security_opts_default + forgejo_docker_security_opts_custom }}"+forgejo_role_docker_networks_alias: "{{ forgejo_name }}"+forgejo_role_docker_networks_default: []+forgejo_role_docker_networks_custom: []+forgejo_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='forgejo')+ + lookup('role_var', '_docker_networks_custom', role='forgejo') }}" # Restart Policy-forgejo_docker_restart_policy: unless-stopped+forgejo_role_docker_restart_policy: unless-stopped # State-forgejo_docker_state: started+forgejo_role_docker_state: started # Dependencies-forgejo_depends_on: "mariadb"-forgejo_depends_on_delay: "0"-forgejo_depends_on_healthchecks: "false"+forgejo_role_depends_on: "mariadb"+forgejo_role_depends_on_delay: "0"+forgejo_role_depends_on_healthchecks: "false"
modified
roles/forgejo/tasks/main.yml
@@ -10,9 +10,14 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}"++- name: Check for previous install+ ansible.builtin.stat:+ path: "{{ forgejo_role_paths_location }}"+ register: forgejo_install_stat - name: MariaDB Role ansible.builtin.include_role:@@ -23,7 +28,7 @@ name: "forgejo" login_host: "mariadb" login_user: "root"- login_password: "{{ mariadb_docker_envs_mysql_root_password }}"+ login_password: "{{ lookup('role_var', '_docker_envs_mysql_root_password', role='mariadb') }}" state: present - name: Remove existing Docker container@@ -34,3 +39,13 @@ - name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"++- name: New install+ when: (not forgejo_install_stat.stat.exists)+ block:+ - name: Wait 30 seconds before continuing+ ansible.builtin.wait_for:+ timeout: 30++ - name: Chown directories+ ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"
modified
roles/foundry/defaults/main.yml
@@ -17,58 +17,59 @@ # Paths ################################ -foundry_paths_folder: "{{ foundry_name }}"-foundry_paths_location: "{{ server_appdata_path }}/{{ foundry_paths_folder }}"-foundry_paths_folders_list:- - "{{ foundry_paths_location }}"- - "{{ foundry_paths_location }}/data"- - "{{ foundry_paths_location }}/container_cache"+foundry_role_paths_folder: "{{ foundry_name }}"+foundry_role_paths_location: "{{ server_appdata_path }}/{{ foundry_role_paths_folder }}"+foundry_role_paths_folders_list:+ - "{{ foundry_role_paths_location }}"+ - "{{ foundry_role_paths_location }}/data"+ - "{{ foundry_role_paths_location }}/container_cache" ################################ # Web ################################ -foundry_web_subdomain: "{{ foundry_name }}"-foundry_web_domain: "{{ user.domain }}"-foundry_web_port: "30000"-foundry_web_url: "{{ 'https://' + (foundry_web_subdomain + '.' + foundry_web_domain- if (foundry_web_subdomain | length > 0)- else foundry_web_domain) }}"+foundry_role_web_subdomain: "{{ foundry_name }}"+foundry_role_web_domain: "{{ user.domain }}"+foundry_role_web_port: "30000"+foundry_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='foundry') + '.' + lookup('role_var', '_web_domain', role='foundry')+ if (lookup('role_var', '_web_subdomain', role='foundry') | length > 0)+ else lookup('role_var', '_web_domain', role='foundry')) }}" ################################ # DNS ################################ -foundry_dns_record: "{{ foundry_web_subdomain }}"-foundry_dns_zone: "{{ foundry_web_domain }}"-foundry_dns_proxy: "{{ dns.proxied }}"+foundry_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='foundry') }}"+foundry_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='foundry') }}"+foundry_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -foundry_traefik_sso_middleware: ""-foundry_traefik_middleware_default: "{{ traefik_default_middleware }}"-foundry_traefik_middleware_custom: ""-foundry_traefik_certresolver: "{{ traefik_default_certresolver }}"-foundry_traefik_enabled: true-foundry_traefik_api_enabled: false-foundry_traefik_api_endpoint: ""+foundry_role_traefik_sso_middleware: ""+foundry_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+foundry_role_traefik_middleware_custom: ""+foundry_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+foundry_role_traefik_enabled: true+foundry_role_traefik_api_enabled: false+foundry_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-foundry_docker_container: "{{ foundry_name }}"+foundry_role_docker_container: "{{ foundry_name }}" # Image-foundry_docker_image_pull: true-foundry_docker_image_tag: "release"-foundry_docker_image: "felddy/foundryvtt:{{ foundry_docker_image_tag }}"+foundry_role_docker_image_pull: true+foundry_role_docker_image_repo: "felddy/foundryvtt"+foundry_role_docker_image_tag: "release"+foundry_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='foundry') }}:{{ lookup('role_var', '_docker_image_tag', role='foundry') }}" # Envs-foundry_docker_envs_default:+foundry_role_docker_envs_default: FOUNDRY_HOSTNAME: "{{ foundry_name }}.{{ user.domain }}" FOUNDRY_ADMIN_KEY: "{{ user.pass }}" FOUNDRY_GID: "{{ gid }}"@@ -80,73 +81,39 @@ FOUNDRY_USERNAME: "{{ foundry.user }}" FOUNDRY_PASSWORD: "{{ foundry.pass }}" TIMEZONE: "{{ tz }}"-foundry_docker_envs_custom: {}-foundry_docker_envs: "{{ foundry_docker_envs_default- | combine(foundry_docker_envs_custom) }}"--# Commands-foundry_docker_commands_default: []-foundry_docker_commands_custom: []-foundry_docker_commands: "{{ foundry_docker_commands_default- + foundry_docker_commands_custom }}"+foundry_role_docker_envs_custom: {}+foundry_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='foundry')+ | combine(lookup('role_var', '_docker_envs_custom', role='foundry')) }}" # Volumes-foundry_docker_volumes_default: ["/opt/foundry/data:/data", "/opt/foundry/container_cache:/container_cache", "/mnt/unionfs/Media/Foundry:/data/Data/Media"]-foundry_docker_volumes_custom: []-foundry_docker_volumes: "{{ foundry_docker_volumes_default- + foundry_docker_volumes_custom }}"--# Devices-foundry_docker_devices_default: []-foundry_docker_devices_custom: []-foundry_docker_devices: "{{ foundry_docker_devices_default- + foundry_docker_devices_custom }}"--# Hosts-foundry_docker_hosts_default: {}-foundry_docker_hosts_custom: {}-foundry_docker_hosts: "{{ docker_hosts_common- | combine(foundry_docker_hosts_default)- | combine(foundry_docker_hosts_custom) }}"--# Labels-foundry_docker_labels_default: {}-foundry_docker_labels_custom: {}-foundry_docker_labels: "{{ docker_labels_common- | combine(foundry_docker_labels_default)- | combine(foundry_docker_labels_custom) }}"+foundry_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='foundry') }}/data:/data"+ - "{{ lookup('role_var', '_paths_location', role='foundry') }}/container_cache:/container_cache"+ - "/mnt/unionfs/Media/Foundry:/data/Data/Media"+foundry_role_docker_volumes_custom: []+foundry_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='foundry')+ + lookup('role_var', '_docker_volumes_custom', role='foundry') }}" # Hostname-foundry_docker_hostname: "{{ foundry_name }}"+foundry_role_docker_hostname: "{{ foundry_name }}" # Ports-foundry_docker_ports_defaults: ["{{ foundry_web_port }}:{{ foundry_web_port }}"]-foundry_docker_ports_custom: []-foundry_docker_ports: "{{ foundry_docker_ports_defaults- + foundry_docker_ports_custom }}"+foundry_role_docker_ports_default:+ - "{{ lookup('role_var', '_web_port', role='foundry') }}:{{ lookup('role_var', '_web_port', role='foundry') }}"+foundry_role_docker_ports_custom: []+foundry_role_docker_ports: "{{ lookup('role_var', '_docker_ports_default', role='foundry')+ + lookup('role_var', '_docker_ports_custom', role='foundry') }}" # Networks-foundry_docker_networks_alias: "{{ foundry_name }}"-foundry_docker_networks_default: []-foundry_docker_networks_custom: []-foundry_docker_networks: "{{ docker_networks_common- + foundry_docker_networks_default- + foundry_docker_networks_custom }}"--# Capabilities-foundry_docker_capabilities_default: []-foundry_docker_capabilities_custom: []-foundry_docker_capabilities: "{{ foundry_docker_capabilities_default- + foundry_docker_capabilities_custom }}"--# Security Opts-foundry_docker_security_opts_default: []-foundry_docker_security_opts_custom: []-foundry_docker_security_opts: "{{ foundry_docker_security_opts_default- + foundry_docker_security_opts_custom }}"+foundry_role_docker_networks_alias: "{{ foundry_name }}"+foundry_role_docker_networks_default: []+foundry_role_docker_networks_custom: []+foundry_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='foundry')+ + lookup('role_var', '_docker_networks_custom', role='foundry') }}" # Restart Policy-foundry_docker_restart_policy: unless-stopped+foundry_role_docker_restart_policy: unless-stopped # State-foundry_docker_state: started+foundry_role_docker_state: started
modified
roles/foundry/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/freshrss/defaults/main.yml
@@ -17,127 +17,84 @@ # Paths ################################ -freshrss_paths_folder: "{{ freshrss_name }}"-freshrss_paths_location: "{{ server_appdata_path }}/{{ freshrss_paths_folder }}"-freshrss_paths_folders_list:- - "{{ freshrss_paths_location }}"+freshrss_role_paths_folder: "{{ freshrss_name }}"+freshrss_role_paths_location: "{{ server_appdata_path }}/{{ lookup('role_var', '_paths_folder', role='freshrss') }}"+freshrss_role_paths_folders_list:+ - "{{ lookup('role_var', '_paths_location', role='freshrss') }}" ################################ # Web ################################ -freshrss_web_subdomain: "{{ freshrss_name }}"-freshrss_web_domain: "{{ user.domain }}"-freshrss_web_port: "80"-freshrss_web_url: "{{ 'https://' + (freshrss_web_subdomain + '.' + freshrss_web_domain- if (freshrss_web_subdomain | length > 0)- else freshrss_web_domain) }}"+freshrss_role_web_subdomain: "{{ freshrss_name }}"+freshrss_role_web_domain: "{{ user.domain }}"+freshrss_role_web_port: "80"+freshrss_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='freshrss') + '.' + lookup('role_var', '_web_domain', role='freshrss')+ if (lookup('role_var', '_web_subdomain', role='freshrss') | length > 0)+ else lookup('role_var', '_web_domain', role='freshrss')) }}" ################################ # DNS ################################ -freshrss_dns_record: "{{ freshrss_web_subdomain }}"-freshrss_dns_zone: "{{ freshrss_web_domain }}"-freshrss_dns_proxy: "{{ dns.proxied }}"+freshrss_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='freshrss') }}"+freshrss_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='freshrss') }}"+freshrss_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -freshrss_traefik_sso_middleware: ""-freshrss_traefik_middleware_default: "{{ traefik_default_middleware }}"-freshrss_traefik_middleware_custom: ""-freshrss_traefik_certresolver: "{{ traefik_default_certresolver }}"-freshrss_traefik_enabled: true-freshrss_traefik_api_enabled: false-freshrss_traefik_api_endpoint: ""+freshrss_role_traefik_sso_middleware: ""+freshrss_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+freshrss_role_traefik_middleware_custom: ""+freshrss_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+freshrss_role_traefik_enabled: true+freshrss_role_traefik_api_enabled: false+freshrss_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-freshrss_docker_container: "{{ freshrss_name }}"+freshrss_role_docker_container: "{{ freshrss_name }}" # Image-freshrss_docker_image_pull: true-freshrss_docker_image_tag: "amd64-latest"-freshrss_docker_image: "lscr.io/linuxserver/freshrss:{{ freshrss_docker_image_tag }}"--# Ports-freshrss_docker_ports_defaults: []-freshrss_docker_ports_custom: []-freshrss_docker_ports: "{{ freshrss_docker_ports_defaults- + freshrss_docker_ports_custom }}"+freshrss_role_docker_image_pull: true+freshrss_role_docker_image_repo: "lscr.io/linuxserver/freshrss"+freshrss_role_docker_image_tag: "amd64-latest"+freshrss_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='freshrss') }}:{{ lookup('role_var', '_docker_image_tag', role='freshrss') }}" # Envs-freshrss_docker_envs_default:+freshrss_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-freshrss_docker_envs_custom: {}-freshrss_docker_envs: "{{ freshrss_docker_envs_default- | combine(freshrss_docker_envs_custom) }}"--# Commands-freshrss_docker_commands_default: []-freshrss_docker_commands_custom: []-freshrss_docker_commands: "{{ freshrss_docker_commands_default- + freshrss_docker_commands_custom }}"+freshrss_role_docker_envs_custom: {}+freshrss_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='freshrss')+ | combine(lookup('role_var', '_docker_envs_custom', role='freshrss')) }}" # Volumes-freshrss_docker_volumes_default:- - "{{ freshrss_paths_location }}:/config"-freshrss_docker_volumes_custom: []-freshrss_docker_volumes: "{{ freshrss_docker_volumes_default- + freshrss_docker_volumes_custom }}"--# Devices-freshrss_docker_devices_default: []-freshrss_docker_devices_custom: []-freshrss_docker_devices: "{{ freshrss_docker_devices_default- + freshrss_docker_devices_custom }}"--# Hosts-freshrss_docker_hosts_default: {}-freshrss_docker_hosts_custom: {}-freshrss_docker_hosts: "{{ docker_hosts_common- | combine(freshrss_docker_hosts_default)- | combine(freshrss_docker_hosts_custom) }}"--# Labels-freshrss_docker_labels_default: {}-freshrss_docker_labels_custom: {}-freshrss_docker_labels: "{{ docker_labels_common- | combine(freshrss_docker_labels_default)- | combine(freshrss_docker_labels_custom) }}"+freshrss_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='freshrss') }}:/config"+freshrss_role_docker_volumes_custom: []+freshrss_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='freshrss')+ + lookup('role_var', '_docker_volumes_custom', role='freshrss') }}" # Hostname-freshrss_docker_hostname: "{{ freshrss_name }}"+freshrss_role_docker_hostname: "{{ freshrss_name }}" # Networks-freshrss_docker_networks_alias: "{{ freshrss_name }}"-freshrss_docker_networks_default: []-freshrss_docker_networks_custom: []-freshrss_docker_networks: "{{ docker_networks_common- + freshrss_docker_networks_default- + freshrss_docker_networks_custom }}"--# Capabilities-freshrss_docker_capabilities_default: []-freshrss_docker_capabilities_custom: []-freshrss_docker_capabilities: "{{ freshrss_docker_capabilities_default- + freshrss_docker_capabilities_custom }}"--# Security Opts-freshrss_docker_security_opts_default: []-freshrss_docker_security_opts_custom: []-freshrss_docker_security_opts: "{{ freshrss_docker_security_opts_default- + freshrss_docker_security_opts_custom }}"+freshrss_role_docker_networks_alias: "{{ freshrss_name }}"+freshrss_role_docker_networks_default: []+freshrss_role_docker_networks_custom: []+freshrss_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='freshrss')+ + lookup('role_var', '_docker_networks_custom', role='freshrss') }}" # Restart Policy-freshrss_docker_restart_policy: unless-stopped+freshrss_role_docker_restart_policy: unless-stopped # State-freshrss_docker_state: started+freshrss_role_docker_state: started
modified
roles/freshrss/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/funkwhale/defaults/main.yml
@@ -17,131 +17,88 @@ # Paths ################################ -funkwhale_paths_folder: "{{ funkwhale_name }}"-funkwhale_paths_location: "{{ server_appdata_path }}/{{ funkwhale_paths_folder }}"-funkwhale_paths_folders_list:- - "{{ funkwhale_paths_location }}"- - "{{ funkwhale_paths_location }}/data"+funkwhale_role_paths_folder: "{{ funkwhale_name }}"+funkwhale_role_paths_location: "{{ server_appdata_path }}/{{ funkwhale_role_paths_folder }}"+funkwhale_role_paths_folders_list:+ - "{{ funkwhale_role_paths_location }}"+ - "{{ funkwhale_role_paths_location }}/data" ################################ # Web ################################ -funkwhale_web_subdomain: "{{ funkwhale_name }}"-funkwhale_web_domain: "{{ user.domain }}"-funkwhale_web_port: "80"-funkwhale_web_url: "{{ 'https://' + (funkwhale_web_subdomain + '.' + funkwhale_web_domain- if (funkwhale_web_subdomain | length > 0)- else funkwhale_web_domain) }}"+funkwhale_role_web_subdomain: "{{ funkwhale_name }}"+funkwhale_role_web_domain: "{{ user.domain }}"+funkwhale_role_web_port: "80"+funkwhale_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='funkwhale') + '.' + lookup('role_var', '_web_domain', role='funkwhale')+ if (lookup('role_var', '_web_subdomain', role='funkwhale') | length > 0)+ else lookup('role_var', '_web_domain', role='funkwhale')) }}" ################################ # DNS ################################ -funkwhale_dns_record: "{{ funkwhale_web_subdomain }}"-funkwhale_dns_zone: "{{ funkwhale_web_domain }}"-funkwhale_dns_proxy: "{{ dns.proxied }}"+funkwhale_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='funkwhale') }}"+funkwhale_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='funkwhale') }}"+funkwhale_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -funkwhale_traefik_sso_middleware: ""-funkwhale_traefik_middleware_default: "{{ traefik_default_middleware }}"-funkwhale_traefik_middleware_custom: ""-funkwhale_traefik_certresolver: "{{ traefik_default_certresolver }}"-funkwhale_traefik_enabled: true-funkwhale_traefik_api_enabled: false-funkwhale_traefik_api_endpoint: ""+funkwhale_role_traefik_sso_middleware: ""+funkwhale_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+funkwhale_role_traefik_middleware_custom: ""+funkwhale_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+funkwhale_role_traefik_enabled: true+funkwhale_role_traefik_api_enabled: false+funkwhale_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-funkwhale_docker_container: "{{ funkwhale_name }}"+funkwhale_role_docker_container: "{{ funkwhale_name }}" # Image-funkwhale_docker_image_pull: true-funkwhale_docker_image_tag: "latest"-funkwhale_docker_image: "funkwhale/all-in-one:{{ funkwhale_docker_image_tag }}"--# Ports-funkwhale_docker_ports_defaults: []-funkwhale_docker_ports_custom: []-funkwhale_docker_ports: "{{ funkwhale_docker_ports_defaults- + funkwhale_docker_ports_custom }}"+funkwhale_role_docker_image_pull: true+funkwhale_role_docker_image_repo: "funkwhale/all-in-one"+funkwhale_role_docker_image_tag: "latest"+funkwhale_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='funkwhale') }}:{{ lookup('role_var', '_docker_image_tag', role='funkwhale') }}" # Envs-funkwhale_docker_envs_default:- FUNKWHALE_HOSTNAME: "{{ funkwhale_web_subdomain + '.' + funkwhale_web_domain }}"+funkwhale_role_docker_envs_default:+ FUNKWHALE_HOSTNAME: "{{ lookup('role_var', '_web_subdomain', role='funkwhale') + '.' + lookup('role_var', '_web_domain', role='funkwhale') }}" NESTED_PROXY: "1" PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-funkwhale_docker_envs_custom: {}-funkwhale_docker_envs: "{{ funkwhale_docker_envs_default- | combine(funkwhale_docker_envs_custom) }}"--# Commands-funkwhale_docker_commands_default: []-funkwhale_docker_commands_custom: []-funkwhale_docker_commands: "{{ funkwhale_docker_commands_default- + funkwhale_docker_commands_custom }}"+funkwhale_role_docker_envs_custom: {}+funkwhale_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='funkwhale')+ | combine(lookup('role_var', '_docker_envs_custom', role='funkwhale')) }}" # Volumes-funkwhale_docker_volumes_default:- - "{{ funkwhale_paths_location }}/data:/data"+funkwhale_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='funkwhale') }}/data:/data" - "/mnt/unionfs:/music:ro"-funkwhale_docker_volumes_custom: []-funkwhale_docker_volumes: "{{ funkwhale_docker_volumes_default- + funkwhale_docker_volumes_custom }}"--# Devices-funkwhale_docker_devices_default: []-funkwhale_docker_devices_custom: []-funkwhale_docker_devices: "{{ funkwhale_docker_devices_default- + funkwhale_docker_devices_custom }}"--# Hosts-funkwhale_docker_hosts_default: {}-funkwhale_docker_hosts_custom: {}-funkwhale_docker_hosts: "{{ docker_hosts_common- | combine(funkwhale_docker_hosts_default)- | combine(funkwhale_docker_hosts_custom) }}"--# Labels-funkwhale_docker_labels_default: {}-funkwhale_docker_labels_custom: {}-funkwhale_docker_labels: "{{ docker_labels_common- | combine(funkwhale_docker_labels_default)- | combine(funkwhale_docker_labels_custom) }}"+funkwhale_role_docker_volumes_custom: []+funkwhale_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='funkwhale')+ + lookup('role_var', '_docker_volumes_custom', role='funkwhale') }}" # Hostname-funkwhale_docker_hostname: "{{ funkwhale_name }}"+funkwhale_role_docker_hostname: "{{ funkwhale_name }}" # Networks-funkwhale_docker_networks_alias: "{{ funkwhale_name }}"-funkwhale_docker_networks_default: []-funkwhale_docker_networks_custom: []-funkwhale_docker_networks: "{{ docker_networks_common- + funkwhale_docker_networks_default- + funkwhale_docker_networks_custom }}"--# Capabilities-funkwhale_docker_capabilities_default: []-funkwhale_docker_capabilities_custom: []-funkwhale_docker_capabilities: "{{ funkwhale_docker_capabilities_default- + funkwhale_docker_capabilities_custom }}"--# Security Opts-funkwhale_docker_security_opts_default: []-funkwhale_docker_security_opts_custom: []-funkwhale_docker_security_opts: "{{ funkwhale_docker_security_opts_default- + funkwhale_docker_security_opts_custom }}"+funkwhale_role_docker_networks_alias: "{{ funkwhale_name }}"+funkwhale_role_docker_networks_default: []+funkwhale_role_docker_networks_custom: []+funkwhale_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='funkwhale')+ + lookup('role_var', '_docker_networks_custom', role='funkwhale') }}" # Restart Policy-funkwhale_docker_restart_policy: unless-stopped+funkwhale_role_docker_restart_policy: unless-stopped # State-funkwhale_docker_state: started+funkwhale_role_docker_state: started
modified
roles/funkwhale/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/gaps/defaults/main.yml
@@ -17,128 +17,84 @@ # Paths ################################ -gaps_paths_folder: "{{ gaps_name }}"-gaps_paths_location: "{{ server_appdata_path }}/{{ gaps_paths_folder }}"-gaps_paths_folders_list:- - "{{ gaps_paths_location }}"+gaps_role_paths_folder: "{{ gaps_name }}"+gaps_role_paths_location: "{{ server_appdata_path }}/{{ gaps_role_paths_folder }}"+gaps_role_paths_folders_list:+ - "{{ gaps_role_paths_location }}" ################################ # Web ################################ -gaps_web_subdomain: "{{ gaps_name }}"-gaps_web_domain: "{{ user.domain }}"-gaps_web_port: "8484"-gaps_web_url: "{{ 'https://' + (gaps_web_subdomain + '.' + gaps_web_domain- if (gaps_web_subdomain | length > 0)- else gaps_web_domain) }}"+gaps_role_web_subdomain: "{{ gaps_name }}"+gaps_role_web_domain: "{{ user.domain }}"+gaps_role_web_port: "8484"+gaps_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='gaps') + '.' + lookup('role_var', '_web_domain', role='gaps')+ if (lookup('role_var', '_web_subdomain', role='gaps') | length > 0)+ else lookup('role_var', '_web_domain', role='gaps')) }}" ################################ # DNS ################################ -gaps_dns_record: "{{ gaps_web_subdomain }}"-gaps_dns_zone: "{{ gaps_web_domain }}"-gaps_dns_proxy: "{{ dns.proxied }}"+gaps_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='gaps') }}"+gaps_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='gaps') }}"+gaps_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -gaps_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-gaps_traefik_middleware_default: "{{ traefik_default_middleware }}"-gaps_traefik_middleware_custom: ""-gaps_traefik_certresolver: "{{ traefik_default_certresolver }}"-gaps_traefik_enabled: true-gaps_traefik_api_enabled: false-gaps_traefik_api_endpoint: ""+gaps_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+gaps_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+gaps_role_traefik_middleware_custom: ""+gaps_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+gaps_role_traefik_enabled: true+gaps_role_traefik_api_enabled: false+gaps_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-gaps_docker_container: "{{ gaps_name }}"+gaps_role_docker_container: "{{ gaps_name }}" # Image-gaps_docker_image_pull: true-gaps_docker_image_tag: "latest"-gaps_docker_image: "housewrecker/gaps:{{ gaps_docker_image_tag }}"--# Ports-gaps_docker_ports_defaults: []-gaps_docker_ports_custom: []-gaps_docker_ports: "{{ gaps_docker_ports_defaults- + gaps_docker_ports_custom }}"+gaps_role_docker_image_pull: true+gaps_role_docker_image_repo: "housewrecker/gaps"+gaps_role_docker_image_tag: "latest"+gaps_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='gaps') }}:{{ lookup('role_var', '_docker_image_tag', role='gaps') }}" # Envs-gaps_docker_envs_default:+gaps_role_docker_envs_default: TZ: "{{ tz }}"- # BASE_URL: "{{ gaps_web_url }}" ENABLE_LOGIN: "false" ENABLE_SSL: "false"-gaps_docker_envs_custom: {}-gaps_docker_envs: "{{ gaps_docker_envs_default- | combine(gaps_docker_envs_custom) }}"--# Commands-gaps_docker_commands_default: []-gaps_docker_commands_custom: []-gaps_docker_commands: "{{ gaps_docker_commands_default- + gaps_docker_commands_custom }}"+gaps_role_docker_envs_custom: {}+gaps_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='gaps')+ | combine(lookup('role_var', '_docker_envs_custom', role='gaps')) }}" # Volumes-gaps_docker_volumes_default:- - "{{ gaps_paths_location }}:/usr/data"-gaps_docker_volumes_custom: []-gaps_docker_volumes: "{{ gaps_docker_volumes_default- + gaps_docker_volumes_custom }}"--# Devices-gaps_docker_devices_default: []-gaps_docker_devices_custom: []-gaps_docker_devices: "{{ gaps_docker_devices_default- + gaps_docker_devices_custom }}"--# Hosts-gaps_docker_hosts_default: {}-gaps_docker_hosts_custom: {}-gaps_docker_hosts: "{{ docker_hosts_common- | combine(gaps_docker_hosts_default)- | combine(gaps_docker_hosts_custom) }}"--# Labels-gaps_docker_labels_default: {}-gaps_docker_labels_custom: {}-gaps_docker_labels: "{{ docker_labels_common- | combine(gaps_docker_labels_default)- | combine(gaps_docker_labels_custom) }}"+gaps_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='gaps') }}:/usr/data"+gaps_role_docker_volumes_custom: []+gaps_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='gaps')+ + lookup('role_var', '_docker_volumes_custom', role='gaps') }}" # Hostname-gaps_docker_hostname: "{{ gaps_name }}"+gaps_role_docker_hostname: "{{ gaps_name }}" # Networks-gaps_docker_networks_alias: "{{ gaps_name }}"-gaps_docker_networks_default: []-gaps_docker_networks_custom: []-gaps_docker_networks: "{{ docker_networks_common- + gaps_docker_networks_default- + gaps_docker_networks_custom }}"--# Capabilities-gaps_docker_capabilities_default: []-gaps_docker_capabilities_custom: []-gaps_docker_capabilities: "{{ gaps_docker_capabilities_default- + gaps_docker_capabilities_custom }}"--# Security Opts-gaps_docker_security_opts_default: []-gaps_docker_security_opts_custom: []-gaps_docker_security_opts: "{{ gaps_docker_security_opts_default- + gaps_docker_security_opts_custom }}"+gaps_role_docker_networks_alias: "{{ gaps_name }}"+gaps_role_docker_networks_default: []+gaps_role_docker_networks_custom: []+gaps_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='gaps')+ + lookup('role_var', '_docker_networks_custom', role='gaps') }}" # Restart Policy-gaps_docker_restart_policy: unless-stopped+gaps_role_docker_restart_policy: unless-stopped # State-gaps_docker_state: started+gaps_role_docker_state: started
modified
roles/gaps/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/gitea/defaults/main.yml
@@ -17,141 +17,101 @@ # Paths ################################ -gitea_paths_folder: "{{ gitea_name }}"-gitea_paths_location: "{{ server_appdata_path }}/{{ gitea_paths_folder }}"-gitea_paths_folders_list:- - "{{ gitea_paths_location }}"+gitea_role_paths_folder: "{{ gitea_name }}"+gitea_role_paths_location: "{{ server_appdata_path }}/{{ gitea_role_paths_folder }}"+gitea_role_paths_recursive: true+gitea_role_paths_folders_list:+ - "{{ gitea_role_paths_location }}"+ - "{{ gitea_role_paths_location }}/git"+ - "{{ gitea_role_paths_location }}/gitea"+ - "{{ gitea_role_paths_location }}/ssh" ################################ # Web ################################ -gitea_web_subdomain: "{{ gitea_name }}"-gitea_web_domain: "{{ user.domain }}"-gitea_web_port: "3000"-gitea_web_url: "{{ 'https://' + (gitea_web_subdomain + '.' + gitea_web_domain- if (gitea_web_subdomain | length > 0)- else gitea_web_domain) }}"+gitea_role_web_subdomain: "{{ gitea_name }}"+gitea_role_web_domain: "{{ user.domain }}"+gitea_role_web_port: "3000"+gitea_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='gitea') + '.' + lookup('role_var', '_web_domain', role='gitea')+ if (lookup('role_var', '_web_subdomain', role='gitea') | length > 0)+ else lookup('role_var', '_web_domain', role='gitea')) }}" ################################ # DNS ################################ -gitea_dns_record: "{{ gitea_web_subdomain }}"-gitea_dns_zone: "{{ gitea_web_domain }}"-gitea_dns_proxy: "{{ dns.proxied }}"+gitea_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='gitea') }}"+gitea_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='gitea') }}"+gitea_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -gitea_traefik_sso_middleware: ""-gitea_traefik_middleware_default: "{{ traefik_default_middleware }}"-gitea_traefik_middleware_custom: ""-gitea_traefik_certresolver: "{{ traefik_default_certresolver }}"-gitea_traefik_enabled: true-gitea_traefik_api_enabled: false-gitea_traefik_api_endpoint: ""+gitea_role_traefik_sso_middleware: ""+gitea_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+gitea_role_traefik_middleware_custom: ""+gitea_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+gitea_role_traefik_enabled: true+gitea_role_traefik_api_enabled: false+gitea_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-gitea_docker_container: "{{ gitea_name }}"+gitea_role_docker_container: "{{ gitea_name }}" # Image-gitea_docker_image_pull: true-gitea_docker_image_tag: "latest"-gitea_docker_image: "gitea/gitea:{{ gitea_docker_image_tag }}"--# Ports-gitea_docker_ports_defaults: []-gitea_docker_ports_custom: []-gitea_docker_ports: "{{ gitea_docker_ports_defaults- + gitea_docker_ports_custom }}"+gitea_role_docker_image_pull: true+gitea_role_docker_image_repo: "gitea/gitea"+gitea_role_docker_image_tag: "latest"+gitea_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='gitea') }}:{{ lookup('role_var', '_docker_image_tag', role='gitea') }}" # Envs-gitea_docker_envs_default:+gitea_role_docker_envs_default: USER_UID: "{{ uid }}" USER_GID: "{{ gid }}" GITEA__database__DB_TYPE: "mysql" GITEA__database__HOST: "mariadb:3306" GITEA__database__USER: "root"- GITEA__database__PASSWD: "password321"+ GITEA__database__PASSWD: "{{ lookup('role_var', '_docker_env_password', role='mariadb') }}" GITEA__database__NAME: "gitea" DISABLE_SSH: "true"- RUN_MODE: "prod"- ROOT_URL: "{{ gitea_web_url }}/"-gitea_docker_envs_custom: {}-gitea_docker_envs: "{{ gitea_docker_envs_default- | combine(gitea_docker_envs_custom) }}"--# Commands-gitea_docker_commands_default: []-gitea_docker_commands_custom: []-gitea_docker_commands: "{{ gitea_docker_commands_default- + gitea_docker_commands_custom }}"+ ROOT_URL: "{{ lookup('role_var', '_web_url', role='gitea') }}/"+gitea_role_docker_envs_custom: {}+gitea_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='gitea')+ | combine(lookup('role_var', '_docker_envs_custom', role='gitea')) }}" # Volumes-gitea_docker_volumes_default:- - "{{ gitea_paths_location }}:/data"+gitea_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='gitea') }}:/data" - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro-gitea_docker_volumes_custom: []-gitea_docker_volumes: "{{ gitea_docker_volumes_default- + gitea_docker_volumes_custom }}"--# Devices-gitea_docker_devices_default: []-gitea_docker_devices_custom: []-gitea_docker_devices: "{{ gitea_docker_devices_default- + gitea_docker_devices_custom }}"--# Hosts-gitea_docker_hosts_default: {}-gitea_docker_hosts_custom: {}-gitea_docker_hosts: "{{ docker_hosts_common- | combine(gitea_docker_hosts_default)- | combine(gitea_docker_hosts_custom) }}"--# Labels-gitea_docker_labels_default: {}-gitea_docker_labels_custom: {}-gitea_docker_labels: "{{ docker_labels_common- | combine(gitea_docker_labels_default)- | combine(gitea_docker_labels_custom) }}"+gitea_role_docker_volumes_custom: []+gitea_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='gitea')+ + lookup('role_var', '_docker_volumes_custom', role='gitea') }}" # Hostname-gitea_docker_hostname: "{{ gitea_name }}"+gitea_role_docker_hostname: "{{ gitea_name }}" # Networks-gitea_docker_networks_alias: "{{ gitea_name }}"-gitea_docker_networks_default: []-gitea_docker_networks_custom: []-gitea_docker_networks: "{{ docker_networks_common- + gitea_docker_networks_default- + gitea_docker_networks_custom }}"--# Capabilities-gitea_docker_capabilities_default: []-gitea_docker_capabilities_custom: []-gitea_docker_capabilities: "{{ gitea_docker_capabilities_default- + gitea_docker_capabilities_custom }}"--# Security Opts-gitea_docker_security_opts_default: []-gitea_docker_security_opts_custom: []-gitea_docker_security_opts: "{{ gitea_docker_security_opts_default- + gitea_docker_security_opts_custom }}"+gitea_role_docker_networks_alias: "{{ gitea_name }}"+gitea_role_docker_networks_default: []+gitea_role_docker_networks_custom: []+gitea_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='gitea')+ + lookup('role_var', '_docker_networks_custom', role='gitea') }}" # Restart Policy-gitea_docker_restart_policy: unless-stopped+gitea_role_docker_restart_policy: unless-stopped # State-gitea_docker_state: started+gitea_role_docker_state: started # Dependencies-gitea_depends_on: "mariadb"-gitea_depends_on_delay: "0"-gitea_depends_on_healthchecks: "false"+gitea_role_depends_on: "mariadb"+gitea_role_depends_on_delay: "0"+gitea_role_depends_on_healthchecks: "false"
modified
roles/gitea/tasks/main.yml
@@ -10,9 +10,14 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}"++- name: Check for previous install+ ansible.builtin.stat:+ path: "{{ gitea_role_paths_location }}"+ register: gitea_install_stat - name: MariaDB Role ansible.builtin.include_role:@@ -23,7 +28,7 @@ name: "gitea" login_host: "mariadb" login_user: "root"- login_password: "{{ mariadb_docker_env_password }}"+ login_password: "{{ lookup('role_var', '_docker_env_password', role='mariadb') }}" state: present - name: Remove existing Docker container@@ -34,3 +39,13 @@ - name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"++- name: New install+ when: (not gitea_install_stat.stat.exists)+ block:+ - name: Wait 30 seconds before continuing+ ansible.builtin.wait_for:+ timeout: 30++ - name: Chown directories+ ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"
modified
roles/glances_web/defaults/main.yml
@@ -7,154 +7,111 @@ ######################################################################### --- ################################-# Docker Socket Proxy-################################--glances_docker_socket_proxy_envs:- CONTAINERS: "1"- IMAGES: "1"--################################ # Basics ################################ glances_web_name: glances ################################+# Docker Socket Proxy+################################++glances_role_docker_socket_proxy_envs:+ CONTAINERS: "1"+ IMAGES: "1"++################################ # Paths ################################ -glances_web_paths_folder: "{{ glances_web_name }}"-glances_web_paths_location: "{{ server_appdata_path }}/{{ glances_web_paths_folder }}"-glances_web_paths_folders_list:- - "{{ glances_web_paths_location }}"- - "{{ glances_web_paths_location }}/config"-glances_web_paths_config_location: "{{ glances_web_paths_location }}/config/glances.conf"+glances_web_role_paths_folder: "{{ glances_web_name }}"+glances_web_role_paths_location: "{{ server_appdata_path }}/{{ glances_web_role_paths_folder }}"+glances_web_role_paths_folders_list:+ - "{{ glances_web_role_paths_location }}"+ - "{{ glances_web_role_paths_location }}/config"+glances_web_role_paths_config_location: "{{ glances_web_role_paths_location }}/config/glances.conf" ################################ # Web ################################ -glances_web_web_subdomain: "{{ glances_web_name }}"-glances_web_web_domain: "{{ user.domain }}"-glances_web_web_port: "61208"-glances_web_web_url: "{{ 'https://' + (glances_web_web_subdomain + '.' + glances_web_web_domain- if (glances_web_web_subdomain | length > 0)- else glances_web_web_domain) }}"+glances_web_role_web_subdomain: "{{ glances_web_name }}"+glances_web_role_web_domain: "{{ user.domain }}"+glances_web_role_web_port: "61208"+glances_web_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='glances_web') + '.' + lookup('role_var', '_web_domain', role='glances_web')+ if (lookup('role_var', '_web_subdomain', role='glances_web') | length > 0)+ else lookup('role_var', '_web_domain', role='glances_web')) }}" ################################ # DNS ################################ -glances_web_dns_record: "{{ glances_web_web_subdomain }}"-glances_web_dns_zone: "{{ glances_web_web_domain }}"-glances_web_dns_proxy: "{{ dns.proxied }}"+glances_web_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='glances_web') }}"+glances_web_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='glances_web') }}"+glances_web_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -glances_web_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-glances_web_traefik_middleware_default: "{{ traefik_default_middleware }}"-glances_web_traefik_middleware_custom: ""-glances_web_traefik_certresolver: "{{ traefik_default_certresolver }}"-glances_web_traefik_enabled: true-glances_web_traefik_api_enabled: false-glances_web_traefik_api_endpoint: ""+glances_web_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+glances_web_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+glances_web_role_traefik_middleware_custom: ""+glances_web_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+glances_web_role_traefik_enabled: true+glances_web_role_traefik_api_enabled: false+glances_web_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-glances_web_docker_container: "{{ glances_web_name }}"+glances_web_role_docker_container: "{{ glances_web_name }}" # Image-glances_web_docker_image_pull: true-glances_web_docker_image_tag: "latest-full"-glances_web_docker_image: "nicolargo/glances:{{ glances_web_docker_image_tag }}"--# Ports-glances_web_docker_ports_defaults: []-glances_web_docker_ports_custom: []-glances_web_docker_ports: "{{ glances_web_docker_ports_defaults- + glances_web_docker_ports_custom }}"+glances_web_role_docker_image_pull: true+glances_web_role_docker_image_repo: "nicolargo/glances"+glances_web_role_docker_image_tag: "latest-full"+glances_web_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='glances_web') }}:{{ lookup('role_var', '_docker_image_tag', role='glances_web') }}" # Envs-glances_web_docker_envs_default:+glances_web_role_docker_envs_default: UID: "{{ uid }}" GID: "{{ gid }}" TZ: "{{ tz }}" GLANCES_OPT: "-w --bind 172.19.0.1" DOCKER_HOST: "tcp://{{ glances_web_name }}-docker-socket-proxy:2375"-glances_web_docker_envs_custom: {}-glances_web_docker_envs: "{{ glances_web_docker_envs_default- | combine(glances_web_docker_envs_custom) }}"--# Commands-glances_web_docker_commands_default: []-glances_web_docker_commands_custom: []-glances_web_docker_commands: "{{ glances_web_docker_commands_default- + glances_web_docker_commands_custom }}"+glances_web_role_docker_envs_custom: {}+glances_web_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='glances_web')+ | combine(lookup('role_var', '_docker_envs_custom', role='glances_web')) }}" # Volumes-glances_web_docker_volumes_default:- - "{{ glances_web_paths_config_location }}:/glances/conf/glances.conf:rw"-glances_web_docker_volumes_custom: []-glances_web_docker_volumes: "{{ glances_web_docker_volumes_default- + glances_web_docker_volumes_custom }}"--# Devices-glances_web_docker_devices_default: []-glances_web_docker_devices_custom: []-glances_web_docker_devices: "{{ glances_web_docker_devices_default- + glances_web_docker_devices_custom }}"--# Hosts-glances_web_docker_hosts_default: {}-glances_web_docker_hosts_custom: {}-glances_web_docker_hosts: "{{ docker_hosts_common- | combine(glances_web_docker_hosts_default)- | combine(glances_web_docker_hosts_custom) }}"--# Labels-glances_web_docker_labels_default: {}-glances_web_docker_labels_custom: {}-glances_web_docker_labels: "{{ docker_labels_common- | combine(glances_web_docker_labels_default)- | combine(glances_web_docker_labels_custom) }}"+glances_web_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_config_location', role='glances_web') }}:/glances/conf/glances.conf"+glances_web_role_docker_volumes_custom: []+glances_web_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='glances_web')+ + lookup('role_var', '_docker_volumes_custom', role='glances_web') }}" # Hostname-glances_web_docker_hostname: "{{ glances_web_name }}"+glances_web_role_docker_hostname: "{{ glances_web_name }}" # Networks-glances_web_docker_network_mode: "host"--# Capabilities-glances_web_docker_capabilities_default: []-glances_web_docker_capabilities_custom: []-glances_web_docker_capabilities: "{{ glances_web_docker_capabilities_default- + glances_web_docker_capabilities_custom }}"--# Security Opts-glances_web_docker_security_opts_default: []-glances_web_docker_security_opts_custom: []-glances_web_docker_security_opts: "{{ glances_web_docker_security_opts_default- + glances_web_docker_security_opts_custom }}"+glances_web_role_docker_network_mode: "host" # Restart Policy-glances_web_docker_restart_policy: unless-stopped+glances_web_role_docker_restart_policy: unless-stopped # State-glances_web_docker_state: started+glances_web_role_docker_state: started # Force Kill-glances_web_docker_force_kill: yes+glances_web_role_docker_force_kill: true # PID Mode-glances_web_docker_pid_mode: host+glances_web_role_docker_pid_mode: host # Dependencies-glances_web_depends_on: "{{ glances_web_name }}-docker-socket-proxy"-glances_web_depends_on_delay: "0"-glances_web_depends_on_healthchecks: "false"+glances_web_role_depends_on: "{{ glances_web_name }}-docker-socket-proxy"+glances_web_role_depends_on_delay: "0"+glances_web_role_depends_on_healthchecks: "false"
modified
roles/glances_web/tasks/main.yml
@@ -11,14 +11,14 @@ name: docker_socket_proxy vars: docker_socket_proxy_name: "{{ glances_web_name }}-docker-socket-proxy"- docker_socket_proxy_docker_envs_custom: "{{ glances_docker_socket_proxy_envs }}"+ docker_socket_proxy_role_docker_envs_custom: "{{ glances_role_docker_socket_proxy_envs }}" - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/glances_web/tasks/subtasks/settings.yml
@@ -5,18 +5,18 @@ # GNU General Public License v3.0 # ######################################################################### ----- name: Settings | Check if `{{ glances_web_paths_config_location | basename }}` exists+- name: Settings | Check if `{{ lookup('role_var', '_paths_config_location', role='glances_web') | basename }}` exists ansible.builtin.stat:- path: "{{ glances_web_paths_config_location }}"- register: glances_web_config+ path: "{{ lookup('role_var', '_paths_config_location', role='glances_web') }}"+ register: glances_web_role_config -- name: Settings | New `{{ glances_web_paths_config_location | basename }}` tasks- when: not glances_web_config.stat.exists+- name: Settings | New `{{ lookup('role_var', '_paths_config_location', role='glances_web') | basename }}` tasks+ when: not glances_web_role_config.stat.exists block:- - name: Settings | Import default `{{ glances_web_paths_config_location | basename }}`+ - name: Settings | Import default `{{ lookup('role_var', '_paths_config_location', role='glances_web') | basename }}` ansible.builtin.copy: src: glances.conf- dest: "{{ glances_web_paths_config_location }}"+ dest: "{{ lookup('role_var', '_paths_config_location', role='glances_web') }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"
modified
roles/goaccess/defaults/main.yml
@@ -17,131 +17,88 @@ # Paths ################################ -goaccess_paths_folder: "{{ goaccess_name }}"-goaccess_paths_location: "{{ server_appdata_path }}/{{ goaccess_paths_folder }}"-goaccess_paths_folders_list:- - "{{ goaccess_paths_location }}"+goaccess_role_paths_folder: "{{ goaccess_name }}"+goaccess_role_paths_location: "{{ server_appdata_path }}/{{ goaccess_role_paths_folder }}"+goaccess_role_paths_folders_list:+ - "{{ goaccess_role_paths_location }}" ################################ # Web ################################ -goaccess_web_subdomain: "{{ goaccess_name }}"-goaccess_web_domain: "{{ user.domain }}"-goaccess_web_port: "7889"-goaccess_web_url: "{{ 'https://' + (goaccess_web_subdomain + '.' + goaccess_web_domain- if (goaccess_web_subdomain | length > 0)- else goaccess_web_domain) }}"+goaccess_role_web_subdomain: "{{ goaccess_name }}"+goaccess_role_web_domain: "{{ user.domain }}"+goaccess_role_web_port: "7889"+goaccess_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='goaccess') + '.' + lookup('role_var', '_web_domain', role='goaccess')+ if (lookup('role_var', '_web_subdomain', role='goaccess') | length > 0)+ else lookup('role_var', '_web_domain', role='goaccess')) }}" ################################ # DNS ################################ -goaccess_dns_record: "{{ goaccess_web_subdomain }}"-goaccess_dns_zone: "{{ goaccess_web_domain }}"-goaccess_dns_proxy: "{{ dns.proxied }}"+goaccess_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='goaccess') }}"+goaccess_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='goaccess') }}"+goaccess_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -goaccess_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-goaccess_traefik_middleware_default: "{{ traefik_default_middleware }}"-goaccess_traefik_middleware_custom: ""-goaccess_traefik_certresolver: "{{ traefik_default_certresolver }}"-goaccess_traefik_enabled: true-goaccess_traefik_api_enabled: false-goaccess_traefik_api_endpoint: ""+goaccess_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+goaccess_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+goaccess_role_traefik_middleware_custom: ""+goaccess_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+goaccess_role_traefik_enabled: true+goaccess_role_traefik_api_enabled: false+goaccess_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-goaccess_docker_container: "{{ goaccess_name }}"+goaccess_role_docker_container: "{{ goaccess_name }}" # Image-goaccess_docker_image_pull: true-goaccess_docker_image_tag: "latest"-goaccess_docker_image: "gregyankovoy/goaccess:{{ goaccess_docker_image_tag }}"--# Ports-goaccess_docker_ports_defaults: []-goaccess_docker_ports_custom: []-goaccess_docker_ports: "{{ goaccess_docker_ports_defaults- + goaccess_docker_ports_custom }}"+goaccess_role_docker_image_pull: true+goaccess_role_docker_image_repo: "gregyankovoy/goaccess"+goaccess_role_docker_image_tag: "latest"+goaccess_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='goaccess') }}:{{ lookup('role_var', '_docker_image_tag', role='goaccess') }}" # Envs-goaccess_docker_envs_default:+goaccess_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"-goaccess_docker_envs_custom: {}-goaccess_docker_envs: "{{ goaccess_docker_envs_default- | combine(goaccess_docker_envs_custom) }}"--# Commands-goaccess_docker_commands_default: []-goaccess_docker_commands_custom: []-goaccess_docker_commands: "{{ goaccess_docker_commands_default- + goaccess_docker_commands_custom }}"+goaccess_role_docker_envs_custom: {}+goaccess_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='goaccess')+ | combine(lookup('role_var', '_docker_envs_custom', role='goaccess')) }}" # Volumes-goaccess_docker_volumes_default:- - "{{ goaccess_paths_location }}:/config"- - "/opt/traefik:/opt/log"-goaccess_docker_volumes_custom: []-goaccess_docker_volumes: "{{ goaccess_docker_volumes_default- + goaccess_docker_volumes_custom }}"--# Devices-goaccess_docker_devices_default: []-goaccess_docker_devices_custom: []-goaccess_docker_devices: "{{ goaccess_docker_devices_default- + goaccess_docker_devices_custom }}"--# Hosts-goaccess_docker_hosts_default: {}-goaccess_docker_hosts_custom: {}-goaccess_docker_hosts: "{{ docker_hosts_common- | combine(goaccess_docker_hosts_default)- | combine(goaccess_docker_hosts_custom) }}"--# Labels-goaccess_docker_labels_default: {}-goaccess_docker_labels_custom: {}-goaccess_docker_labels: "{{ docker_labels_common- | combine(goaccess_docker_labels_default)- | combine(goaccess_docker_labels_custom) }}"+goaccess_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='goaccess') }}:/config"+ - "{{ lookup('role_var', '_paths_location', role='traefik') }}:/opt/log"+goaccess_role_docker_volumes_custom: []+goaccess_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='goaccess')+ + lookup('role_var', '_docker_volumes_custom', role='goaccess') }}" # Hostname-goaccess_docker_hostname: "{{ goaccess_name }}"+goaccess_role_docker_hostname: "{{ goaccess_name }}" # Networks-goaccess_docker_networks_alias: "{{ goaccess_name }}"-goaccess_docker_networks_default: []-goaccess_docker_networks_custom: []-goaccess_docker_networks: "{{ docker_networks_common- + goaccess_docker_networks_default- + goaccess_docker_networks_custom }}"--# Capabilities-goaccess_docker_capabilities_default: []-goaccess_docker_capabilities_custom: []-goaccess_docker_capabilities: "{{ goaccess_docker_capabilities_default- + goaccess_docker_capabilities_custom }}"--# Security Opts-goaccess_docker_security_opts_default: []-goaccess_docker_security_opts_custom: []-goaccess_docker_security_opts: "{{ goaccess_docker_security_opts_default- + goaccess_docker_security_opts_custom }}"+goaccess_role_docker_networks_alias: "{{ goaccess_name }}"+goaccess_role_docker_networks_default: []+goaccess_role_docker_networks_custom: []+goaccess_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='goaccess')+ + lookup('role_var', '_docker_networks_custom', role='goaccess') }}" # Restart Policy-goaccess_docker_restart_policy: unless-stopped+goaccess_role_docker_restart_policy: unless-stopped # State-goaccess_docker_state: started+goaccess_role_docker_state: started # Force Kill-goaccess_docker_force_kill: true+goaccess_role_docker_force_kill: true
modified
roles/goaccess/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/goplaxt/defaults/main.yml
@@ -7,7 +7,6 @@ # GNU General Public License v3.0 # ########################################################################## ---- ################################ # Basics ################################@@ -15,131 +14,95 @@ goplaxt_name: goplaxt ################################+# Settings+################################++goplaxt_role_trakt_id: ""+goplaxt_role_trakt_secret: ""++################################ # Paths ################################ -goplaxt_paths_folder: "{{ goplaxt_name }}"-goplaxt_paths_location: "{{ server_appdata_path }}/{{ goplaxt_paths_folder }}"-goplaxt_paths_folders_list:- - "{{ goplaxt_paths_location }}"+goplaxt_role_paths_folder: "{{ goplaxt_name }}"+goplaxt_role_paths_location: "{{ server_appdata_path }}/{{ goplaxt_role_paths_folder }}"+goplaxt_role_paths_folders_list:+ - "{{ goplaxt_role_paths_location }}" ################################ # Web ################################ -goplaxt_web_subdomain: "{{ goplaxt_name }}"-goplaxt_web_domain: "{{ user.domain }}"-goplaxt_web_port: "8000"-goplaxt_web_url: "{{ 'https://' + (goplaxt_web_subdomain + '.' + goplaxt_web_domain- if (goplaxt_web_subdomain | length > 0)- else goplaxt_web_domain) }}"+goplaxt_role_web_subdomain: "{{ goplaxt_name }}"+goplaxt_role_web_domain: "{{ user.domain }}"+goplaxt_role_web_port: "8000"+goplaxt_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='goplaxt') + '.' + lookup('role_var', '_web_domain', role='goplaxt')+ if (lookup('role_var', '_web_subdomain', role='goplaxt') | length > 0)+ else lookup('role_var', '_web_domain', role='goplaxt')) }}" ################################ # DNS ################################ -goplaxt_dns_record: "{{ goplaxt_web_subdomain }}"-goplaxt_dns_zone: "{{ goplaxt_web_domain }}"-goplaxt_dns_proxy: "{{ dns.proxied }}"+goplaxt_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='goplaxt') }}"+goplaxt_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='goplaxt') }}"+goplaxt_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -goplaxt_traefik_sso_middleware: ""-goplaxt_traefik_middleware_default: "{{ traefik_default_middleware }}"-goplaxt_traefik_middleware_custom: ""-goplaxt_traefik_certresolver: "{{ traefik_default_certresolver }}"-goplaxt_traefik_enabled: true-goplaxt_traefik_api_enabled: false-goplaxt_traefik_api_endpoint: ""+goplaxt_role_traefik_sso_middleware: ""+goplaxt_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+goplaxt_role_traefik_middleware_custom: ""+goplaxt_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+goplaxt_role_traefik_enabled: true+goplaxt_role_traefik_api_enabled: false+goplaxt_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-goplaxt_docker_container: "{{ goplaxt_name }}"+goplaxt_role_docker_container: "{{ goplaxt_name }}" # Image-goplaxt_docker_image_pull: true-goplaxt_docker_image_tag: "latest"-goplaxt_docker_image: "xanderstrike/goplaxt:{{ goplaxt_docker_image_tag }}"--# Ports-goplaxt_docker_ports_defaults: []-goplaxt_docker_ports_custom: []-goplaxt_docker_ports: "{{ goplaxt_docker_ports_defaults- + goplaxt_docker_ports_custom }}"+goplaxt_role_docker_image_pull: true+goplaxt_role_docker_image_repo: "xanderstrike/goplaxt"+goplaxt_role_docker_image_tag: "latest"+goplaxt_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='goplaxt') }}:{{ lookup('role_var', '_docker_image_tag', role='goplaxt') }}" # Envs-goplaxt_docker_envs_default:+goplaxt_role_docker_envs_default: TZ: "{{ tz }}"- TRAKT_ID: "{{ goplaxt.trakt_id }}"- TRAKT_SECRET: "{{ goplaxt.trakt_secret }}"- REDIRECT_URI: "{{ goplaxt_web_url }}"-goplaxt_docker_envs_custom: {}-goplaxt_docker_envs: "{{ goplaxt_docker_envs_default- | combine(goplaxt_docker_envs_custom) }}"--# Commands-goplaxt_docker_commands_default: []-goplaxt_docker_commands_custom: []-goplaxt_docker_commands: "{{ goplaxt_docker_commands_default- + goplaxt_docker_commands_custom }}"+ TRAKT_ID: "{{ lookup('role_var', '_trakt_id', role='goplaxt') }}"+ TRAKT_SECRET: "{{ lookup('role_var', '_trakt_secret', role='goplaxt') }}"+ REDIRECT_URI: "{{ lookup('role_var', '_web_url', role='goplaxt') }}"+goplaxt_role_docker_envs_custom: {}+goplaxt_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='goplaxt')+ | combine(lookup('role_var', '_docker_envs_custom', role='goplaxt')) }}" # Volumes-goplaxt_docker_volumes_default:- - "{{ goplaxt_paths_location }}:/app/keystore"-goplaxt_docker_volumes_custom: []-goplaxt_docker_volumes: "{{ goplaxt_docker_volumes_default- + goplaxt_docker_volumes_custom }}"--# Devices-goplaxt_docker_devices_default: []-goplaxt_docker_devices_custom: []-goplaxt_docker_devices: "{{ goplaxt_docker_devices_default- + goplaxt_docker_devices_custom }}"--# Hosts-goplaxt_docker_hosts_default: {}-goplaxt_docker_hosts_custom: {}-goplaxt_docker_hosts: "{{ docker_hosts_common- | combine(goplaxt_docker_hosts_default)- | combine(goplaxt_docker_hosts_custom) }}"--# Labels-goplaxt_docker_labels_default: {}-goplaxt_docker_labels_custom: {}-goplaxt_docker_labels: "{{ docker_labels_common- | combine(goplaxt_docker_labels_default)- | combine(goplaxt_docker_labels_custom) }}"+goplaxt_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='goplaxt') }}:/app/keystore"+goplaxt_role_docker_volumes_custom: []+goplaxt_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='goplaxt')+ + lookup('role_var', '_docker_volumes_custom', role='goplaxt') }}" # Hostname-goplaxt_docker_hostname: "{{ goplaxt_name }}"+goplaxt_role_docker_hostname: "{{ goplaxt_name }}" # Networks-goplaxt_docker_networks_alias: "{{ goplaxt_name }}"-goplaxt_docker_networks_default: []-goplaxt_docker_networks_custom: []-goplaxt_docker_networks: "{{ docker_networks_common- + goplaxt_docker_networks_default- + goplaxt_docker_networks_custom }}"--# Capabilities-goplaxt_docker_capabilities_default: []-goplaxt_docker_capabilities_custom: []-goplaxt_docker_capabilities: "{{ goplaxt_docker_capabilities_default- + goplaxt_docker_capabilities_custom }}"--# Security Opts-goplaxt_docker_security_opts_default: []-goplaxt_docker_security_opts_custom: []-goplaxt_docker_security_opts: "{{ goplaxt_docker_security_opts_default- + goplaxt_docker_security_opts_custom }}"+goplaxt_role_docker_networks_alias: "{{ goplaxt_name }}"+goplaxt_role_docker_networks_default: []+goplaxt_role_docker_networks_custom: []+goplaxt_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='goplaxt')+ + lookup('role_var', '_docker_networks_custom', role='goplaxt') }}" # Restart Policy-goplaxt_docker_restart_policy: unless-stopped+goplaxt_role_docker_restart_policy: unless-stopped # State-goplaxt_docker_state: started+goplaxt_role_docker_state: started
modified
roles/goplaxt/tasks/main.yml
@@ -7,12 +7,17 @@ # GNU General Public License v3.0 # ########################################################################## ---+- name: Check for required variables+ ansible.builtin.fail:+ msg: "You need to set goplaxt_role_trakt_id and goplaxt_role_trakt_secret using the inventory."+ when: (not continuous_integration) and (goplaxt_role_trakt_id | length == 0) and (goplaxt_role_trakt_secret | length == 0)+ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/gotenberg/defaults/main.yml
@@ -18,83 +18,34 @@ ################################ # Container-gotenberg_docker_container: "{{ gotenberg_name }}"+gotenberg_role_docker_container: "{{ gotenberg_name }}" # Image-gotenberg_docker_image_pull: true-gotenberg_docker_image_tag: "latest"-gotenberg_docker_image: "gotenberg/gotenberg:{{ gotenberg_docker_image_tag }}"--# Ports-gotenberg_docker_ports_defaults: []-gotenberg_docker_ports_custom: []-gotenberg_docker_ports: "{{ gotenberg_docker_ports_defaults- + gotenberg_docker_ports_custom }}"+gotenberg_role_docker_image_pull: true+gotenberg_role_docker_image_repo: "gotenberg/gotenberg"+gotenberg_role_docker_image_tag: "latest"+gotenberg_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='gotenberg') }}:{{ lookup('role_var', '_docker_image_tag', role='gotenberg') }}" # Envs-gotenberg_docker_envs_default:+gotenberg_role_docker_envs_default: TZ: "{{ tz }}"-gotenberg_docker_envs_custom: {}-gotenberg_docker_envs: "{{ gotenberg_docker_envs_default- | combine(gotenberg_docker_envs_custom) }}"--# Commands-gotenberg_docker_commands_default: []-gotenberg_docker_commands_custom: []-gotenberg_docker_commands: "{{ gotenberg_docker_commands_default- + gotenberg_docker_commands_custom }}"--# Volumes-gotenberg_docker_volumes_default: []-gotenberg_docker_volumes_custom: []-gotenberg_docker_volumes: "{{ gotenberg_docker_volumes_default- + gotenberg_docker_volumes_custom }}"--# Devices-gotenberg_docker_devices_default: []-gotenberg_docker_devices_custom: []-gotenberg_docker_devices: "{{ gotenberg_docker_devices_default- + gotenberg_docker_devices_custom }}"--# Hosts-gotenberg_docker_hosts_default: {}-gotenberg_docker_hosts_custom: {}-gotenberg_docker_hosts: "{{ docker_hosts_common- | combine(gotenberg_docker_hosts_default)- | combine(gotenberg_docker_hosts_custom) }}"--# Labels-gotenberg_docker_labels_default: {}-gotenberg_docker_labels_custom: {}-gotenberg_docker_labels: "{{ docker_labels_common- | combine(gotenberg_docker_labels_default)- | combine(gotenberg_docker_labels_custom) }}"+gotenberg_role_docker_envs_custom: {}+gotenberg_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='gotenberg')+ | combine(lookup('role_var', '_docker_envs_custom', role='gotenberg')) }}" # Hostname-gotenberg_docker_hostname: "{{ gotenberg_name }}"+gotenberg_role_docker_hostname: "{{ gotenberg_name }}" # Networks-gotenberg_docker_networks_alias: "{{ gotenberg_name }}"-gotenberg_docker_networks_default: []-gotenberg_docker_networks_custom: []-gotenberg_docker_networks: "{{ docker_networks_common- + gotenberg_docker_networks_default- + gotenberg_docker_networks_custom }}"--# Capabilities-gotenberg_docker_capabilities_default: []-gotenberg_docker_capabilities_custom: []-gotenberg_docker_capabilities: "{{ gotenberg_docker_capabilities_default- + gotenberg_docker_capabilities_custom }}"--# Security Opts-gotenberg_docker_security_opts_default: []-gotenberg_docker_security_opts_custom: []-gotenberg_docker_security_opts: "{{ gotenberg_docker_security_opts_default- + gotenberg_docker_security_opts_custom }}"+gotenberg_role_docker_networks_alias: "{{ gotenberg_name }}"+gotenberg_role_docker_networks_default: []+gotenberg_role_docker_networks_custom: []+gotenberg_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='gotenberg')+ + lookup('role_var', '_docker_networks_custom', role='gotenberg') }}" # Restart Policy-gotenberg_docker_restart_policy: always+gotenberg_role_docker_restart_policy: unless-stopped # State-gotenberg_docker_state: started+gotenberg_role_docker_state: started
modified
roles/gotify/defaults/main.yml
@@ -17,129 +17,86 @@ # Paths ################################ -gotify_paths_folder: "{{ gotify_name }}"-gotify_paths_location: "{{ server_appdata_path }}/{{ gotify_paths_folder }}"-gotify_paths_folders_list:- - "{{ gotify_paths_location }}"+gotify_role_paths_folder: "{{ gotify_name }}"+gotify_role_paths_location: "{{ server_appdata_path }}/{{ gotify_role_paths_folder }}"+gotify_role_paths_folders_list:+ - "{{ gotify_role_paths_location }}" ################################ # Web ################################ -gotify_web_subdomain: "{{ gotify_name }}"-gotify_web_domain: "{{ user.domain }}"-gotify_web_port: "80"-gotify_web_url: "{{ 'https://' + (gotify_web_subdomain + '.' + gotify_web_domain- if (gotify_web_subdomain | length > 0)- else gotify_web_domain) }}"+gotify_role_web_subdomain: "{{ gotify_name }}"+gotify_role_web_domain: "{{ user.domain }}"+gotify_role_web_port: "80"+gotify_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='gotify') + '.' + lookup('role_var', '_web_domain', role='gotify')+ if (lookup('role_var', '_web_subdomain', role='gotify') | length > 0)+ else lookup('role_var', '_web_domain', role='gotify')) }}" ################################ # DNS ################################ -gotify_dns_record: "{{ gotify_web_subdomain }}"-gotify_dns_zone: "{{ gotify_web_domain }}"-gotify_dns_proxy: "{{ dns.proxied }}"+gotify_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='gotify') }}"+gotify_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='gotify') }}"+gotify_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -gotify_traefik_sso_middleware: ""-gotify_traefik_middleware_default: "{{ traefik_default_middleware }}"-gotify_traefik_middleware_custom: ""-gotify_traefik_certresolver: "{{ traefik_default_certresolver }}"-gotify_traefik_enabled: true-gotify_traefik_api_enabled: false-gotify_traefik_api_endpoint: ""+gotify_role_traefik_sso_middleware: ""+gotify_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+gotify_role_traefik_middleware_custom: ""+gotify_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+gotify_role_traefik_enabled: true+gotify_role_traefik_api_enabled: false+gotify_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-gotify_docker_container: "{{ gotify_name }}"+gotify_role_docker_container: "{{ gotify_name }}" # Image-gotify_docker_image_pull: true-gotify_docker_image_tag: "latest"-gotify_docker_image: "gotify/server:{{ gotify_docker_image_tag }}"--# Ports-gotify_docker_ports_defaults: []-gotify_docker_ports_custom: []-gotify_docker_ports: "{{ gotify_docker_ports_defaults- + gotify_docker_ports_custom }}"+gotify_role_docker_image_pull: true+gotify_role_docker_image_repo: "gotify/server"+gotify_role_docker_image_tag: "latest"+gotify_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='gotify') }}:{{ lookup('role_var', '_docker_image_tag', role='gotify') }}" # Envs-gotify_docker_envs_default:+gotify_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}" GOTIFY_DEFAULTUSER_NAME: "{{ user.name }}" GOTIFY_DEFAULTUSER_PASS: "{{ user.pass }}"-gotify_docker_envs_custom: {}-gotify_docker_envs: "{{ gotify_docker_envs_default- | combine(gotify_docker_envs_custom) }}"--# Commands-gotify_docker_commands_default: []-gotify_docker_commands_custom: []-gotify_docker_commands: "{{ gotify_docker_commands_default- + gotify_docker_commands_custom }}"+gotify_role_docker_envs_custom: {}+gotify_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='gotify')+ | combine(lookup('role_var', '_docker_envs_custom', role='gotify')) }}" # Volumes-gotify_docker_volumes_default:- - "{{ gotify_paths_location }}:/app/data"-gotify_docker_volumes_custom: []-gotify_docker_volumes: "{{ gotify_docker_volumes_default- + gotify_docker_volumes_custom }}"--# Devices-gotify_docker_devices_default: []-gotify_docker_devices_custom: []-gotify_docker_devices: "{{ gotify_docker_devices_default- + gotify_docker_devices_custom }}"--# Hosts-gotify_docker_hosts_default: {}-gotify_docker_hosts_custom: {}-gotify_docker_hosts: "{{ docker_hosts_common- | combine(gotify_docker_hosts_default)- | combine(gotify_docker_hosts_custom) }}"--# Labels-gotify_docker_labels_default: {}-gotify_docker_labels_custom: {}-gotify_docker_labels: "{{ docker_labels_common- | combine(gotify_docker_labels_default)- | combine(gotify_docker_labels_custom) }}"+gotify_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='gotify') }}:/app/data"+gotify_role_docker_volumes_custom: []+gotify_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='gotify')+ + lookup('role_var', '_docker_volumes_custom', role='gotify') }}" # Hostname-gotify_docker_hostname: "{{ gotify_name }}"+gotify_role_docker_hostname: "{{ gotify_name }}" # Networks-gotify_docker_networks_alias: "{{ gotify_name }}"-gotify_docker_networks_default: []-gotify_docker_networks_custom: []-gotify_docker_networks: "{{ docker_networks_common- + gotify_docker_networks_default- + gotify_docker_networks_custom }}"--# Capabilities-gotify_docker_capabilities_default: []-gotify_docker_capabilities_custom: []-gotify_docker_capabilities: "{{ gotify_docker_capabilities_default- + gotify_docker_capabilities_custom }}"--# Security Opts-gotify_docker_security_opts_default: []-gotify_docker_security_opts_custom: []-gotify_docker_security_opts: "{{ gotify_docker_security_opts_default- + gotify_docker_security_opts_custom }}"+gotify_role_docker_networks_alias: "{{ gotify_name }}"+gotify_role_docker_networks_default: []+gotify_role_docker_networks_custom: []+gotify_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='gotify')+ + lookup('role_var', '_docker_networks_custom', role='gotify') }}" # Restart Policy-gotify_docker_restart_policy: unless-stopped+gotify_role_docker_restart_policy: unless-stopped # State-gotify_docker_state: started+gotify_role_docker_state: started
modified
roles/gotify/tasks/main.yml
@@ -9,9 +9,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/grocy/defaults/main.yml
@@ -17,125 +17,84 @@ # Paths ################################ -grocy_paths_folder: "{{ grocy_name }}"-grocy_paths_location: "{{ server_appdata_path }}/{{ grocy_paths_folder }}"-grocy_paths_folders_list:- - "{{ grocy_paths_location }}"+grocy_role_paths_folder: "{{ grocy_name }}"+grocy_role_paths_location: "{{ server_appdata_path }}/{{ grocy_role_paths_folder }}"+grocy_role_paths_folders_list:+ - "{{ grocy_role_paths_location }}" ################################ # Web ################################ -grocy_web_subdomain: "{{ grocy_name }}"-grocy_web_domain: "{{ user.domain }}"-grocy_web_port: "80"-grocy_web_url: "{{ 'https://' + (grocy_web_subdomain + '.' + grocy_web_domain- if (grocy_web_subdomain | length > 0)- else grocy_web_domain) }}"+grocy_role_web_subdomain: "{{ grocy_name }}"+grocy_role_web_domain: "{{ user.domain }}"+grocy_role_web_port: "80"+grocy_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='grocy') + '.' + lookup('role_var', '_web_domain', role='grocy')+ if (lookup('role_var', '_web_subdomain', role='grocy') | length > 0)+ else lookup('role_var', '_web_domain', role='grocy')) }}" ################################ # DNS ################################ -grocy_dns_record: "{{ grocy_web_subdomain }}"-grocy_dns_zone: "{{ grocy_web_domain }}"-grocy_dns_proxy: "{{ dns.proxied }}"+grocy_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='grocy') }}"+grocy_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='grocy') }}"+grocy_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -grocy_traefik_sso_middleware: ""-grocy_traefik_middleware_default: "{{ traefik_default_middleware }}"-grocy_traefik_middleware_custom: ""-grocy_traefik_certresolver: "{{ traefik_default_certresolver }}"-grocy_traefik_enabled: true+grocy_role_traefik_sso_middleware: ""+grocy_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+grocy_role_traefik_middleware_custom: ""+grocy_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+grocy_role_traefik_enabled: true+grocy_role_traefik_api_enabled: false+grocy_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-grocy_docker_container: "{{ grocy_name }}"+grocy_role_docker_container: "{{ grocy_name }}" # Image-grocy_docker_image_pull: true-grocy_docker_image_tag: "latest"-grocy_docker_image: "lscr.io/linuxserver/grocy:{{ grocy_docker_image_tag }}"--# Ports-grocy_docker_ports_defaults: []-grocy_docker_ports_custom: []-grocy_docker_ports: "{{ grocy_docker_ports_defaults- + grocy_docker_ports_custom }}"+grocy_role_docker_image_pull: true+grocy_role_docker_image_repo: "lscr.io/linuxserver/grocy"+grocy_role_docker_image_tag: "latest"+grocy_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='grocy') }}:{{ lookup('role_var', '_docker_image_tag', role='grocy') }}" # Envs-grocy_docker_envs_default:+grocy_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-grocy_docker_envs_custom: {}-grocy_docker_envs: "{{ grocy_docker_envs_default- | combine(grocy_docker_envs_custom) }}"--# Commands-grocy_docker_commands_default: []-grocy_docker_commands_custom: []-grocy_docker_commands: "{{ grocy_docker_commands_default- + grocy_docker_commands_custom }}"+grocy_role_docker_envs_custom: {}+grocy_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='grocy')+ | combine(lookup('role_var', '_docker_envs_custom', role='grocy')) }}" # Volumes-grocy_docker_volumes_default:- - "{{ grocy_paths_location }}:/config"-grocy_docker_volumes_custom: []-grocy_docker_volumes: "{{ grocy_docker_volumes_default- + grocy_docker_volumes_custom }}"--# Devices-grocy_docker_devices_default: []-grocy_docker_devices_custom: []-grocy_docker_devices: "{{ grocy_docker_devices_default- + grocy_docker_devices_custom }}"--# Hosts-grocy_docker_hosts_default: {}-grocy_docker_hosts_custom: {}-grocy_docker_hosts: "{{ docker_hosts_common- | combine(grocy_docker_hosts_default)- | combine(grocy_docker_hosts_custom) }}"--# Labels-grocy_docker_labels_default: {}-grocy_docker_labels_custom: {}-grocy_docker_labels: "{{ docker_labels_common- | combine(grocy_docker_labels_default)- | combine(grocy_docker_labels_custom) }}"+grocy_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='grocy') }}:/config"+grocy_role_docker_volumes_custom: []+grocy_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='grocy')+ + lookup('role_var', '_docker_volumes_custom', role='grocy') }}" # Hostname-grocy_docker_hostname: "{{ grocy_name }}"+grocy_role_docker_hostname: "{{ grocy_name }}" # Networks-grocy_docker_networks_alias: "{{ grocy_name }}"-grocy_docker_networks_default: []-grocy_docker_networks_custom: []-grocy_docker_networks: "{{ docker_networks_common- + grocy_docker_networks_default- + grocy_docker_networks_custom }}"--# Capabilities-grocy_docker_capabilities_default: []-grocy_docker_capabilities_custom: []-grocy_docker_capabilities: "{{ grocy_docker_capabilities_default- + grocy_docker_capabilities_custom }}"--# Security Opts-grocy_docker_security_opts_default: []-grocy_docker_security_opts_custom: []-grocy_docker_security_opts: "{{ grocy_docker_security_opts_default- + grocy_docker_security_opts_custom }}"+grocy_role_docker_networks_alias: "{{ grocy_name }}"+grocy_role_docker_networks_default: []+grocy_role_docker_networks_custom: []+grocy_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='grocy')+ + lookup('role_var', '_docker_networks_custom', role='grocy') }}" # Restart Policy-grocy_docker_restart_policy: unless-stopped+grocy_role_docker_restart_policy: unless-stopped # State-grocy_docker_state: started+grocy_role_docker_state: started
modified
roles/grocy/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/guacamole/defaults/main.yml
@@ -8,158 +8,115 @@ ########################################################################## --- ################################-# Settings-################################--guacamole_totp_enable: false-guacamole_ldap_enable: false-guacamole_radius_enable: false-guacamole_duo_enable: false-guacamole_cas_enable: false-guacamole_openid_enable: false-guacamole_saml_enable: false-guacamole_header_enable: false--################################ # Basics ################################ guacamole_name: guacamole ################################+# Settings+################################++guacamole_role_totp_enable: false+guacamole_role_ldap_enable: false+guacamole_role_radius_enable: false+guacamole_role_duo_enable: false+guacamole_role_cas_enable: false+guacamole_role_openid_enable: false+guacamole_role_saml_enable: false+guacamole_role_header_enable: false++################################ # Paths ################################ -guacamole_paths_folder: "{{ guacamole_name }}"-guacamole_paths_location: "{{ server_appdata_path }}/{{ guacamole_paths_folder }}"-guacamole_paths_folders_list:- - "{{ guacamole_paths_location }}"- - "{{ guacamole_paths_location }}/config"+guacamole_role_paths_folder: "{{ guacamole_name }}"+guacamole_role_paths_location: "{{ server_appdata_path }}/{{ guacamole_role_paths_folder }}"+guacamole_role_paths_folders_list:+ - "{{ guacamole_role_paths_location }}"+ - "{{ guacamole_role_paths_location }}/config" ################################ # Web ################################ -guacamole_web_subdomain: "{{ guacamole_name }}"-guacamole_web_domain: "{{ user.domain }}"-guacamole_web_port: "8080"-guacamole_web_url: "{{ 'https://' + (guacamole_web_subdomain + '.' + guacamole_web_domain- if (guacamole_web_subdomain | length > 0)- else guacamole_web_domain) }}"+guacamole_role_web_subdomain: "{{ guacamole_name }}"+guacamole_role_web_domain: "{{ user.domain }}"+guacamole_role_web_port: "8080"+guacamole_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='guacamole') + '.' + lookup('role_var', '_web_domain', role='guacamole')+ if (lookup('role_var', '_web_subdomain', role='guacamole') | length > 0)+ else lookup('role_var', '_web_domain', role='guacamole')) }}" ################################ # DNS ################################ -guacamole_dns_record: "{{ guacamole_web_subdomain }}"-guacamole_dns_zone: "{{ guacamole_web_domain }}"-guacamole_dns_proxy: "{{ dns.proxied }}"+guacamole_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='guacamole') }}"+guacamole_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='guacamole') }}"+guacamole_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -guacamole_traefik_sso_middleware: ""-guacamole_traefik_middleware_default: "{{ traefik_default_middleware }}"-guacamole_traefik_middleware_custom: ""-guacamole_traefik_certresolver: "{{ traefik_default_certresolver }}"-guacamole_traefik_enabled: true-guacamole_traefik_api_enabled: false-guacamole_traefik_api_endpoint: ""+guacamole_role_traefik_sso_middleware: ""+guacamole_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+guacamole_role_traefik_middleware_custom: ""+guacamole_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+guacamole_role_traefik_enabled: true+guacamole_role_traefik_api_enabled: false+guacamole_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-guacamole_docker_container: "{{ guacamole_name }}"+guacamole_role_docker_container: "{{ guacamole_name }}" # Image-guacamole_docker_image_pull: true-guacamole_docker_image_tag: "latest"-guacamole_docker_image: "jasonbean/guacamole:{{ guacamole_docker_image_tag }}"--# Ports-guacamole_docker_ports_defaults: []-guacamole_docker_ports_custom: []-guacamole_docker_ports: "{{ guacamole_docker_ports_defaults- + guacamole_docker_ports_custom }}"+guacamole_role_docker_image_pull: true+guacamole_role_docker_image_repo: "jasonbean/guacamole"+guacamole_role_docker_image_tag: "latest"+guacamole_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='guacamole') }}:{{ lookup('role_var', '_docker_image_tag', role='guacamole') }}" # Envs-guacamole_docker_envs_default:+guacamole_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" OPT_MYSQL: "Y"- OPT_TOTP: "{{ 'Y' if guacamole_totp_enable else omit }}"- OPT_LDAP: "{{ 'Y' if guacamole_ldap_enable else omit }}"- OPT_RADIUS: "{{ 'Y' if guacamole_radius_enable else omit }}"- OPT_DUO: "{{ 'Y' if guacamole_duo_enable else omit }}"- OPT_CAS: "{{ 'Y' if guacamole_cas_enable else omit }}"- OPT_OPENID: "{{ 'Y' if guacamole_openid_enable else omit }}"- OPT_SAML: "{{ 'Y' if guacamole_saml_enable else omit }}"- OPT_HEADER: "{{ 'Y' if guacamole_header_enable else omit }}"-guacamole_docker_envs_custom: {}-guacamole_docker_envs: "{{ guacamole_docker_envs_default- | combine(guacamole_docker_envs_custom) }}"--# Commands-guacamole_docker_commands_default: []-guacamole_docker_commands_custom: []-guacamole_docker_commands: "{{ guacamole_docker_commands_default- + guacamole_docker_commands_custom }}"+ OPT_TOTP: "{{ 'Y' if lookup('role_var', '_totp_enable', role='guacamole') else omit }}"+ OPT_LDAP: "{{ 'Y' if lookup('role_var', '_ldap_enable', role='guacamole') else omit }}"+ OPT_RADIUS: "{{ 'Y' if lookup('role_var', '_radius_enable', role='guacamole') else omit }}"+ OPT_DUO: "{{ 'Y' if lookup('role_var', '_duo_enable', role='guacamole') else omit }}"+ OPT_CAS: "{{ 'Y' if lookup('role_var', '_cas_enable', role='guacamole') else omit }}"+ OPT_OPENID: "{{ 'Y' if lookup('role_var', '_openid_enable', role='guacamole') else omit }}"+ OPT_SAML: "{{ 'Y' if lookup('role_var', '_saml_enable', role='guacamole') else omit }}"+ OPT_HEADER: "{{ 'Y' if lookup('role_var', '_header_enable', role='guacamole') else omit }}"+guacamole_role_docker_envs_custom: {}+guacamole_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='guacamole')+ | combine(lookup('role_var', '_docker_envs_custom', role='guacamole')) }}" # Volumes-guacamole_docker_volumes_default:- - "{{ guacamole_paths_location }}/config:/config"-guacamole_docker_volumes_custom: []-guacamole_docker_volumes: "{{ guacamole_docker_volumes_default- + guacamole_docker_volumes_custom }}"--# Devices-guacamole_docker_devices_default: []-guacamole_docker_devices_custom: []-guacamole_docker_devices: "{{ guacamole_docker_devices_default- + guacamole_docker_devices_custom }}"--# Hosts-guacamole_docker_hosts_default: {}-guacamole_docker_hosts_custom: {}-guacamole_docker_hosts: "{{ docker_hosts_common- | combine(guacamole_docker_hosts_default)- | combine(guacamole_docker_hosts_custom) }}"--# Labels-guacamole_docker_labels_default: {}-guacamole_docker_labels_custom: {}-guacamole_docker_labels: "{{ docker_labels_common- | combine(guacamole_docker_labels_default)- | combine(guacamole_docker_labels_custom) }}"+guacamole_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='guacamole') }}/config:/config"+guacamole_role_docker_volumes_custom: []+guacamole_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='guacamole')+ + lookup('role_var', '_docker_volumes_custom', role='guacamole') }}" # Hostname-guacamole_docker_hostname: "{{ guacamole_name }}"+guacamole_role_docker_hostname: "{{ guacamole_name }}" # Networks-guacamole_docker_networks_alias: "{{ guacamole_name }}"-guacamole_docker_networks_default: []-guacamole_docker_networks_custom: []-guacamole_docker_networks: "{{ docker_networks_common- + guacamole_docker_networks_default- + guacamole_docker_networks_custom }}"--# Capabilities-guacamole_docker_capabilities_default: []-guacamole_docker_capabilities_custom: []-guacamole_docker_capabilities: "{{ guacamole_docker_capabilities_default- + guacamole_docker_capabilities_custom }}"--# Security Opts-guacamole_docker_security_opts_default: []-guacamole_docker_security_opts_custom: []-guacamole_docker_security_opts: "{{ guacamole_docker_security_opts_default- + guacamole_docker_security_opts_custom }}"+guacamole_role_docker_networks_alias: "{{ guacamole_name }}"+guacamole_role_docker_networks_default: []+guacamole_role_docker_networks_custom: []+guacamole_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='guacamole')+ + lookup('role_var', '_docker_networks_custom', role='guacamole') }}" # Restart Policy-guacamole_docker_restart_policy: unless-stopped+guacamole_role_docker_restart_policy: unless-stopped # State-guacamole_docker_state: started+guacamole_role_docker_state: started
modified
roles/guacamole/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -29,7 +29,7 @@ - name: Post-Install | Ensure guacamole config folder has the correct permissions ansible.builtin.file:- path: "{{ guacamole_paths_location }}"+ path: "{{ lookup('role_var', '_paths_location', role='guacamole') }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0775"
modified
roles/handbrake/defaults/main.yml
@@ -17,135 +17,92 @@ # Paths ################################ -handbrake_paths_folder: "{{ handbrake_name }}"-handbrake_paths_location: "{{ server_appdata_path }}/{{ handbrake_paths_folder }}"-handbrake_paths_folders_list:- - "{{ handbrake_paths_location }}"- - "/mnt/local/downloads/handbrake/watch"- - "/mnt/local/downloads/handbrake/output"+handbrake_role_paths_folder: "{{ handbrake_name }}"+handbrake_role_paths_location: "{{ server_appdata_path }}/{{ handbrake_role_paths_folder }}"+handbrake_role_paths_folders_list:+ - "{{ handbrake_role_paths_location }}"+ - "{{ server_local_folder_path }}/downloads/handbrake/watch"+ - "{{ server_local_folder_path }}/downloads/handbrake/output" ################################ # Web ################################ -handbrake_web_subdomain: "{{ handbrake_name }}"-handbrake_web_domain: "{{ user.domain }}"-handbrake_web_port: "5800"-handbrake_web_url: "{{ 'https://' + (handbrake_web_subdomain + '.' + handbrake_web_domain- if (handbrake_web_subdomain | length > 0)- else handbrake_web_domain) }}"+handbrake_role_web_subdomain: "{{ handbrake_name }}"+handbrake_role_web_domain: "{{ user.domain }}"+handbrake_role_web_port: "5800"+handbrake_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='handbrake') + '.' + lookup('role_var', '_web_domain', role='handbrake')+ if (lookup('role_var', '_web_subdomain', role='handbrake') | length > 0)+ else lookup('role_var', '_web_domain', role='handbrake')) }}" ################################ # DNS ################################ -handbrake_dns_record: "{{ handbrake_web_subdomain }}"-handbrake_dns_zone: "{{ handbrake_web_domain }}"-handbrake_dns_proxy: "{{ dns.proxied }}"+handbrake_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='handbrake') }}"+handbrake_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='handbrake') }}"+handbrake_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -handbrake_traefik_sso_middleware: ""-handbrake_traefik_middleware_default: "{{ traefik_default_middleware }}"-handbrake_traefik_middleware_custom: ""-handbrake_traefik_certresolver: "{{ traefik_default_certresolver }}"-handbrake_traefik_enabled: true-handbrake_traefik_api_enabled: false-handbrake_traefik_api_endpoint: ""+handbrake_role_traefik_sso_middleware: ""+handbrake_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+handbrake_role_traefik_middleware_custom: ""+handbrake_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+handbrake_role_traefik_enabled: true+handbrake_role_traefik_api_enabled: false+handbrake_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-handbrake_docker_container: "{{ handbrake_name }}"+handbrake_role_docker_container: "{{ handbrake_name }}" # Image-handbrake_docker_image_pull: true-handbrake_docker_image_tag: "latest"-handbrake_docker_image: "jlesage/handbrake:{{ handbrake_docker_image_tag }}"--# Ports-handbrake_docker_ports_defaults: []-handbrake_docker_ports_custom: []-handbrake_docker_ports: "{{ handbrake_docker_ports_defaults- + handbrake_docker_ports_custom }}"+handbrake_role_docker_image_pull: true+handbrake_role_docker_image_repo: "jlesage/handbrake"+handbrake_role_docker_image_tag: "latest"+handbrake_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='handbrake') }}:{{ lookup('role_var', '_docker_image_tag', role='handbrake') }}" # Envs-handbrake_docker_envs_default:+handbrake_role_docker_envs_default: USER_ID: "{{ uid }}" GROUP_ID: "{{ gid }}" TZ: "{{ tz }}" CLEAN_TMP_DIR: "1" ENABLE_CJK_FONT: "1" VNC_PASSWORD: "{{ handbrake.handbrake_pass | default('saltbox', true) }}"-handbrake_docker_envs_custom: {}-handbrake_docker_envs: "{{ handbrake_docker_envs_default- | combine(handbrake_docker_envs_custom) }}"--# Commands-handbrake_docker_commands_default: []-handbrake_docker_commands_custom: []-handbrake_docker_commands: "{{ handbrake_docker_commands_default- + handbrake_docker_commands_custom }}"+handbrake_role_docker_envs_custom: {}+handbrake_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='handbrake')+ | combine(lookup('role_var', '_docker_envs_custom', role='handbrake')) }}" # Volumes-handbrake_docker_volumes_default:- - "{{ handbrake_paths_location }}:/config:rw"+handbrake_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='handbrake') }}:/config" - "/mnt:/storage:ro"- - "/mnt/local/downloads/handbrake/watch:/watch:rw"- - "/mnt/local/downloads/handbrake/output:/output:rw"-handbrake_docker_volumes_custom: []-handbrake_docker_volumes: "{{ handbrake_docker_volumes_default- + handbrake_docker_volumes_custom }}"--# Devices-handbrake_docker_devices_default: []-handbrake_docker_devices_custom: []-handbrake_docker_devices: "{{ handbrake_docker_devices_default- + handbrake_docker_devices_custom }}"--# Hosts-handbrake_docker_hosts_default: {}-handbrake_docker_hosts_custom: {}-handbrake_docker_hosts: "{{ docker_hosts_common- | combine(handbrake_docker_hosts_default)- | combine(handbrake_docker_hosts_custom) }}"--# Labels-handbrake_docker_labels_default: {}-handbrake_docker_labels_custom: {}-handbrake_docker_labels: "{{ docker_labels_common- | combine(handbrake_docker_labels_default)- | combine(handbrake_docker_labels_custom) }}"+ - "/mnt/unionfs/downloads/handbrake/watch:/watch"+ - "/mnt/unionfs/downloads/handbrake/output:/output"+handbrake_role_docker_volumes_custom: []+handbrake_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='handbrake')+ + lookup('role_var', '_docker_volumes_custom', role='handbrake') }}" # Hostname-handbrake_docker_hostname: "{{ handbrake_name }}"+handbrake_role_docker_hostname: "{{ handbrake_name }}" # Networks-handbrake_docker_networks_alias: "{{ handbrake_name }}"-handbrake_docker_networks_default: []-handbrake_docker_networks_custom: []-handbrake_docker_networks: "{{ docker_networks_common- + handbrake_docker_networks_default- + handbrake_docker_networks_custom }}"--# Capabilities-handbrake_docker_capabilities_default: []-handbrake_docker_capabilities_custom: []-handbrake_docker_capabilities: "{{ handbrake_docker_capabilities_default- + handbrake_docker_capabilities_custom }}"--# Security Opts-handbrake_docker_security_opts_default: []-handbrake_docker_security_opts_custom: []-handbrake_docker_security_opts: "{{ handbrake_docker_security_opts_default- + handbrake_docker_security_opts_custom }}"+handbrake_role_docker_networks_alias: "{{ handbrake_name }}"+handbrake_role_docker_networks_default: []+handbrake_role_docker_networks_custom: []+handbrake_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='handbrake')+ + lookup('role_var', '_docker_networks_custom', role='handbrake') }}" # Restart Policy-handbrake_docker_restart_policy: unless-stopped+handbrake_role_docker_restart_policy: unless-stopped # State-handbrake_docker_state: started+handbrake_role_docker_state: started
modified
roles/handbrake/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -22,7 +22,7 @@ - name: Docker Devices Task ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/set_docker_devices_variable.yml"- when: gpu.intel or use_nvidia+ when: use_intel or use_nvidia - name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"
modified
roles/healthchecks/defaults/main.yml
@@ -17,137 +17,94 @@ # Paths ################################ -healthchecks_paths_folder: "{{ healthchecks_name }}"-healthchecks_paths_location: "{{ server_appdata_path }}/{{ healthchecks_paths_folder }}"-healthchecks_paths_folders_list:- - "{{ healthchecks_paths_location }}"-healthchecks_paths_config_location: "{{ healthchecks_paths_location }}/local_settings.py"+healthchecks_role_paths_folder: "{{ healthchecks_name }}"+healthchecks_role_paths_location: "{{ server_appdata_path }}/{{ healthchecks_role_paths_folder }}"+healthchecks_role_paths_config_location: "{{ healthchecks_role_paths_location }}/local_settings.py"+healthchecks_role_paths_folders_list:+ - "{{ healthchecks_role_paths_location }}" ################################ # Web ################################ -healthchecks_web_subdomain: "{{ healthchecks_name }}"-healthchecks_web_domain: "{{ user.domain }}"-healthchecks_web_port: "8000"-healthchecks_web_url: "{{ 'https://' + (healthchecks_web_subdomain + '.' + healthchecks_web_domain- if (healthchecks_web_subdomain | length > 0)- else healthchecks_web_domain) }}"+healthchecks_role_web_subdomain: "{{ healthchecks_name }}"+healthchecks_role_web_domain: "{{ user.domain }}"+healthchecks_role_web_port: "8000"+healthchecks_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='healthchecks') + '.' + lookup('role_var', '_web_domain', role='healthchecks')+ if (lookup('role_var', '_web_subdomain', role='healthchecks') | length > 0)+ else lookup('role_var', '_web_domain', role='healthchecks')) }}" ################################ # DNS ################################ -healthchecks_dns_record: "{{ healthchecks_web_subdomain }}"-healthchecks_dns_zone: "{{ healthchecks_web_domain }}"-healthchecks_dns_proxy: "{{ dns.proxied }}"+healthchecks_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='healthchecks') }}"+healthchecks_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='healthchecks') }}"+healthchecks_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -healthchecks_traefik_sso_middleware: ""-healthchecks_traefik_middleware_default: "{{ traefik_default_middleware }}"-healthchecks_traefik_middleware_custom: ""-healthchecks_traefik_certresolver: "{{ traefik_default_certresolver }}"-healthchecks_traefik_enabled: true-healthchecks_traefik_api_enabled: false-healthchecks_traefik_api_endpoint: ""+healthchecks_role_traefik_sso_middleware: ""+healthchecks_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+healthchecks_role_traefik_middleware_custom: ""+healthchecks_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+healthchecks_role_traefik_enabled: true+healthchecks_role_traefik_api_enabled: false+healthchecks_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-healthchecks_docker_container: "{{ healthchecks_name }}"+healthchecks_role_docker_container: "{{ healthchecks_name }}" # Image-healthchecks_docker_image_pull: true-healthchecks_docker_image_tag: "latest"-healthchecks_docker_image: "lscr.io/linuxserver/healthchecks:{{ healthchecks_docker_image_tag }}"--# Ports-healthchecks_docker_ports_defaults: []-healthchecks_docker_ports_custom: []-healthchecks_docker_ports: "{{ healthchecks_docker_ports_defaults- + healthchecks_docker_ports_custom }}"+healthchecks_role_docker_image_pull: true+healthchecks_role_docker_image_repo: "lscr.io/linuxserver/healthchecks"+healthchecks_role_docker_image_tag: "latest"+healthchecks_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='healthchecks') }}:{{ lookup('role_var', '_docker_image_tag', role='healthchecks') }}" # Envs-healthchecks_docker_envs_default:+healthchecks_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" DEBUG: "False" APPRISE_ENABLED: "True"- SITE_ROOT: "{{ healthchecks_web_url }}"+ SITE_ROOT: "{{ lookup('role_var', '_web_url', role='healthchecks') }}" SITE_NAME: "{{ healthchecks_name }}" SUPERUSER_EMAIL: "{{ user.email }}" SUPERUSER_PASSWORD: "{{ user.pass }}" SECRET_KEY: "{{ lookup('password', '/dev/null', chars=['ascii_letters', 'digits'], length=16) }}"-healthchecks_docker_envs_custom: {}-healthchecks_docker_envs: "{{ healthchecks_docker_envs_default- | combine(healthchecks_docker_envs_custom) }}"--# Commands-healthchecks_docker_commands_default: []-healthchecks_docker_commands_custom: []-healthchecks_docker_commands: "{{ healthchecks_docker_commands_default- + healthchecks_docker_commands_custom }}"+healthchecks_role_docker_envs_custom: {}+healthchecks_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='healthchecks')+ | combine(lookup('role_var', '_docker_envs_custom', role='healthchecks')) }}" # Volumes-healthchecks_docker_volumes_default:- - "{{ healthchecks_paths_location }}:/config"-healthchecks_docker_volumes_custom: []-healthchecks_docker_volumes: "{{ healthchecks_docker_volumes_default- + healthchecks_docker_volumes_custom }}"--# Devices-healthchecks_docker_devices_default: []-healthchecks_docker_devices_custom: []-healthchecks_docker_devices: "{{ healthchecks_docker_devices_default- + healthchecks_docker_devices_custom }}"--# Hosts-healthchecks_docker_hosts_default: {}-healthchecks_docker_hosts_custom: {}-healthchecks_docker_hosts: "{{ docker_hosts_common- | combine(healthchecks_docker_hosts_default)- | combine(healthchecks_docker_hosts_custom) }}"--# Labels-healthchecks_docker_labels_default: {}-healthchecks_docker_labels_custom: {}-healthchecks_docker_labels: "{{ docker_labels_common- | combine(healthchecks_docker_labels_default)- | combine(healthchecks_docker_labels_custom) }}"+healthchecks_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='healthchecks') }}:/config"+healthchecks_role_docker_volumes_custom: []+healthchecks_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='healthchecks')+ + lookup('role_var', '_docker_volumes_custom', role='healthchecks') }}" # Hostname-healthchecks_docker_hostname: "{{ healthchecks_name }}"+healthchecks_role_docker_hostname: "{{ healthchecks_name }}" # Networks-healthchecks_docker_networks_alias: "{{ healthchecks_name }}"-healthchecks_docker_networks_default: []-healthchecks_docker_networks_custom: []-healthchecks_docker_networks: "{{ docker_networks_common- + healthchecks_docker_networks_default- + healthchecks_docker_networks_custom }}"--# Capabilities-healthchecks_docker_capabilities_default: []-healthchecks_docker_capabilities_custom: []-healthchecks_docker_capabilities: "{{ healthchecks_docker_capabilities_default- + healthchecks_docker_capabilities_custom }}"--# Security Opts-healthchecks_docker_security_opts_default: []-healthchecks_docker_security_opts_custom: []-healthchecks_docker_security_opts: "{{ healthchecks_docker_security_opts_default- + healthchecks_docker_security_opts_custom }}"+healthchecks_role_docker_networks_alias: "{{ healthchecks_name }}"+healthchecks_role_docker_networks_default: []+healthchecks_role_docker_networks_custom: []+healthchecks_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='healthchecks')+ + lookup('role_var', '_docker_networks_custom', role='healthchecks') }}" # Restart Policy-healthchecks_docker_restart_policy: unless-stopped+healthchecks_role_docker_restart_policy: unless-stopped # State-healthchecks_docker_state: started+healthchecks_role_docker_state: started # Force Kill-healthchecks_docker_force_kill: yes+healthchecks_role_docker_force_kill: true
modified
roles/healthchecks/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/heimdall/defaults/main.yml
@@ -17,127 +17,84 @@ # Paths ################################ -heimdall_paths_folder: "{{ heimdall_name }}"-heimdall_paths_location: "{{ server_appdata_path }}/{{ heimdall_paths_folder }}"-heimdall_paths_folders_list:- - "{{ heimdall_paths_location }}"+heimdall_role_paths_folder: "{{ heimdall_name }}"+heimdall_role_paths_location: "{{ server_appdata_path }}/{{ heimdall_role_paths_folder }}"+heimdall_role_paths_folders_list:+ - "{{ heimdall_role_paths_location }}" ################################ # Web ################################ -heimdall_web_subdomain: "{{ heimdall_name }}"-heimdall_web_domain: "{{ user.domain }}"-heimdall_web_port: "80"-heimdall_web_url: "{{ 'https://' + (heimdall_web_subdomain + '.' + heimdall_web_domain- if (heimdall_web_subdomain | length > 0)- else heimdall_web_domain) }}"+heimdall_role_web_subdomain: "{{ heimdall_name }}"+heimdall_role_web_domain: "{{ user.domain }}"+heimdall_role_web_port: "80"+heimdall_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='heimdall') + '.' + lookup('role_var', '_web_domain', role='heimdall')+ if (lookup('role_var', '_web_subdomain', role='heimdall') | length > 0)+ else lookup('role_var', '_web_domain', role='heimdall')) }}" ################################ # DNS ################################ -heimdall_dns_record: "{{ heimdall_web_subdomain }}"-heimdall_dns_zone: "{{ heimdall_web_domain }}"-heimdall_dns_proxy: "{{ dns.proxied }}"+heimdall_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='heimdall') }}"+heimdall_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='heimdall') }}"+heimdall_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -heimdall_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-heimdall_traefik_middleware_default: "{{ traefik_default_middleware }}"-heimdall_traefik_middleware_custom: ""-heimdall_traefik_certresolver: "{{ traefik_default_certresolver }}"-heimdall_traefik_enabled: true-heimdall_traefik_api_enabled: false-heimdall_traefik_api_endpoint: ""+heimdall_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+heimdall_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+heimdall_role_traefik_middleware_custom: ""+heimdall_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+heimdall_role_traefik_enabled: true+heimdall_role_traefik_api_enabled: false+heimdall_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-heimdall_docker_container: "{{ heimdall_name }}"+heimdall_role_docker_container: "{{ heimdall_name }}" # Image-heimdall_docker_image_pull: true-heimdall_docker_image_tag: "latest"-heimdall_docker_image: "lscr.io/linuxserver/heimdall:{{ heimdall_docker_image_tag }}"--# Ports-heimdall_docker_ports_defaults: []-heimdall_docker_ports_custom: []-heimdall_docker_ports: "{{ heimdall_docker_ports_defaults- + heimdall_docker_ports_custom }}"+heimdall_role_docker_image_pull: true+heimdall_role_docker_image_repo: "lscr.io/linuxserver/heimdall"+heimdall_role_docker_image_tag: "latest"+heimdall_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='heimdall') }}:{{ lookup('role_var', '_docker_image_tag', role='heimdall') }}" # Envs-heimdall_docker_envs_default:+heimdall_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-heimdall_docker_envs_custom: {}-heimdall_docker_envs: "{{ heimdall_docker_envs_default- | combine(heimdall_docker_envs_custom) }}"--# Commands-heimdall_docker_commands_default: []-heimdall_docker_commands_custom: []-heimdall_docker_commands: "{{ heimdall_docker_commands_default- + heimdall_docker_commands_custom }}"+heimdall_role_docker_envs_custom: {}+heimdall_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='heimdall')+ | combine(lookup('role_var', '_docker_envs_custom', role='heimdall')) }}" # Volumes-heimdall_docker_volumes_default:- - "{{ heimdall_paths_location }}:/config"-heimdall_docker_volumes_custom: []-heimdall_docker_volumes: "{{ heimdall_docker_volumes_default- + heimdall_docker_volumes_custom }}"--# Devices-heimdall_docker_devices_default: []-heimdall_docker_devices_custom: []-heimdall_docker_devices: "{{ heimdall_docker_devices_default- + heimdall_docker_devices_custom }}"--# Hosts-heimdall_docker_hosts_default: {}-heimdall_docker_hosts_custom: {}-heimdall_docker_hosts: "{{ docker_hosts_common- | combine(heimdall_docker_hosts_default)- | combine(heimdall_docker_hosts_custom) }}"--# Labels-heimdall_docker_labels_default: {}-heimdall_docker_labels_custom: {}-heimdall_docker_labels: "{{ docker_labels_common- | combine(heimdall_docker_labels_default)- | combine(heimdall_docker_labels_custom) }}"+heimdall_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='heimdall') }}:/config"+heimdall_role_docker_volumes_custom: []+heimdall_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='heimdall')+ + lookup('role_var', '_docker_volumes_custom', role='heimdall') }}" # Hostname-heimdall_docker_hostname: "{{ heimdall_name }}"+heimdall_role_docker_hostname: "{{ heimdall_name }}" # Networks-heimdall_docker_networks_alias: "{{ heimdall_name }}"-heimdall_docker_networks_default: []-heimdall_docker_networks_custom: []-heimdall_docker_networks: "{{ docker_networks_common- + heimdall_docker_networks_default- + heimdall_docker_networks_custom }}"--# Capabilities-heimdall_docker_capabilities_default: []-heimdall_docker_capabilities_custom: []-heimdall_docker_capabilities: "{{ heimdall_docker_capabilities_default- + heimdall_docker_capabilities_custom }}"--# Security Opts-heimdall_docker_security_opts_default: []-heimdall_docker_security_opts_custom: []-heimdall_docker_security_opts: "{{ heimdall_docker_security_opts_default- + heimdall_docker_security_opts_custom }}"+heimdall_role_docker_networks_alias: "{{ heimdall_name }}"+heimdall_role_docker_networks_default: []+heimdall_role_docker_networks_custom: []+heimdall_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='heimdall')+ + lookup('role_var', '_docker_networks_custom', role='heimdall') }}" # Restart Policy-heimdall_docker_restart_policy: unless-stopped+heimdall_role_docker_restart_policy: unless-stopped # State-heimdall_docker_state: started+heimdall_role_docker_state: started
modified
roles/heimdall/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/homarr/defaults/main.yml
@@ -8,153 +8,110 @@ ########################################################################## --- ################################-# Docker Socket Proxy-################################--homarr_docker_socket_proxy_envs:- CONTAINERS: "1"- POST: "0"--################################ # Basics ################################ homarr_name: homarr ################################+# Docker Socket Proxy+################################++homarr_role_docker_socket_proxy_envs:+ CONTAINERS: "1"+ POST: "0"++################################ # Paths ################################ -homarr_paths_folder: "{{ homarr_name }}"-homarr_paths_location: "{{ server_appdata_path }}/{{ homarr_paths_folder }}"-homarr_paths_folders_list:- - "{{ homarr_paths_location }}"- - "{{ homarr_paths_location }}/icons"+homarr_role_paths_folder: "{{ homarr_name }}"+homarr_role_paths_location: "{{ server_appdata_path }}/{{ homarr_role_paths_folder }}"+homarr_role_paths_folders_list:+ - "{{ homarr_role_paths_location }}"+ - "{{ homarr_role_paths_location }}/icons" ################################ # Web ################################ -homarr_web_subdomain: "{{ homarr_name }}"-homarr_web_domain: "{{ user.domain }}"-homarr_web_port: "7575"-homarr_web_url: "{{ 'https://' + (homarr_web_subdomain + '.' + homarr_web_domain- if (homarr_web_subdomain | length > 0)- else homarr_web_domain) }}"+homarr_role_web_subdomain: "{{ homarr_name }}"+homarr_role_web_domain: "{{ user.domain }}"+homarr_role_web_port: "7575"+homarr_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='homarr') + '.' + lookup('role_var', '_web_domain', role='homarr')+ if (lookup('role_var', '_web_subdomain', role='homarr') | length > 0)+ else lookup('role_var', '_web_domain', role='homarr')) }}" ################################ # DNS ################################ -homarr_dns_record: "{{ homarr_web_subdomain }}"-homarr_dns_zone: "{{ homarr_web_domain }}"-homarr_dns_proxy: "{{ dns.proxied }}"+homarr_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='homarr') }}"+homarr_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='homarr') }}"+homarr_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -homarr_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-homarr_traefik_middleware_default: "{{ traefik_default_middleware }}"-homarr_traefik_middleware_custom: ""-homarr_traefik_certresolver: "{{ traefik_default_certresolver }}"-homarr_traefik_enabled: true-homarr_traefik_api_enabled: false-homarr_traefik_api_endpoint: ""+homarr_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+homarr_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+homarr_role_traefik_middleware_custom: ""+homarr_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+homarr_role_traefik_enabled: true+homarr_role_traefik_api_enabled: false+homarr_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-homarr_docker_container: "{{ homarr_name }}"+homarr_role_docker_container: "{{ homarr_name }}" # Image-homarr_docker_image_pull: true-homarr_docker_image_tag: "latest"-homarr_docker_image: "ghcr.io/ajnart/homarr:{{ homarr_docker_image_tag }}"--# Ports-homarr_docker_ports_defaults: []-homarr_docker_ports_custom: []-homarr_docker_ports: "{{ homarr_docker_ports_defaults- + homarr_docker_ports_custom }}"+homarr_role_docker_image_pull: true+homarr_role_docker_image_repo: "ghcr.io/ajnart/homarr"+homarr_role_docker_image_tag: "latest"+homarr_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='homarr') }}:{{ lookup('role_var', '_docker_image_tag', role='homarr') }}" # Envs-homarr_docker_envs_default:+homarr_role_docker_envs_default: TZ: "{{ tz }}"- BASE_URL: "{{ homarr_web_subdomain + '.' + homarr_web_domain }}"+ BASE_URL: "{{ lookup('role_var', '_web_subdomain', role='homarr') + '.' + lookup('role_var', '_web_domain', role='homarr') }}" PASSWORD: "{{ user.pass }}" DOCKER_HOST: "tcp://{{ homarr_name }}-docker-socket-proxy:2375" NODE_TLS_REJECT_UNAUTHORIZED: "0"-homarr_docker_envs_custom: {}-homarr_docker_envs: "{{ homarr_docker_envs_default- | combine(homarr_docker_envs_custom) }}"--# Commands-homarr_docker_commands_default: []-homarr_docker_commands_custom: []-homarr_docker_commands: "{{ homarr_docker_commands_default- + homarr_docker_commands_custom }}"+homarr_role_docker_envs_custom: {}+homarr_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='homarr')+ | combine(lookup('role_var', '_docker_envs_custom', role='homarr')) }}" # Volumes-homarr_docker_volumes_default:- - "{{ homarr_paths_location }}:/app/data/configs"- - "{{ homarr_paths_location }}/icons:/app/public/icons"-homarr_docker_volumes_custom: []-homarr_docker_volumes: "{{ homarr_docker_volumes_default- + homarr_docker_volumes_custom }}"--# Devices-homarr_docker_devices_default: []-homarr_docker_devices_custom: []-homarr_docker_devices: "{{ homarr_docker_devices_default- + homarr_docker_devices_custom }}"--# Hosts-homarr_docker_hosts_default: {}-homarr_docker_hosts_custom: {}-homarr_docker_hosts: "{{ docker_hosts_common- | combine(homarr_docker_hosts_default)- | combine(homarr_docker_hosts_custom) }}"--# Labels-homarr_docker_labels_default: {}-homarr_docker_labels_custom: {}-homarr_docker_labels: "{{ docker_labels_common- | combine(homarr_docker_labels_default)- | combine(homarr_docker_labels_custom) }}"+homarr_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='homarr') }}:/app/data/configs"+ - "{{ lookup('role_var', '_paths_location', role='homarr') }}/icons:/app/public/icons"+homarr_role_docker_volumes_custom: []+homarr_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='homarr')+ + lookup('role_var', '_docker_volumes_custom', role='homarr') }}" # Hostname-homarr_docker_hostname: "{{ homarr_name }}"+homarr_role_docker_hostname: "{{ homarr_name }}" # Networks-homarr_docker_networks_alias: "{{ homarr_name }}"-homarr_docker_networks_default: []-homarr_docker_networks_custom: []-homarr_docker_networks: "{{ docker_networks_common- + homarr_docker_networks_default- + homarr_docker_networks_custom }}"--# Capabilities-homarr_docker_capabilities_default: []-homarr_docker_capabilities_custom: []-homarr_docker_capabilities: "{{ homarr_docker_capabilities_default- + homarr_docker_capabilities_custom }}"--# Security Opts-homarr_docker_security_opts_default: []-homarr_docker_security_opts_custom: []-homarr_docker_security_opts: "{{ homarr_docker_security_opts_default- + homarr_docker_security_opts_custom }}"+homarr_role_docker_networks_alias: "{{ homarr_name }}"+homarr_role_docker_networks_default: []+homarr_role_docker_networks_custom: []+homarr_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='homarr')+ + lookup('role_var', '_docker_networks_custom', role='homarr') }}" # Restart Policy-homarr_docker_restart_policy: unless-stopped+homarr_role_docker_restart_policy: unless-stopped # State-homarr_docker_state: started+homarr_role_docker_state: started # Dependencies-homarr_depends_on: "{{ homarr_name }}-docker-socket-proxy"-homarr_depends_on_delay: "0"-homarr_depends_on_healthchecks: "false"+homarr_role_depends_on: "{{ homarr_name }}-docker-socket-proxy"+homarr_role_depends_on_delay: "0"+homarr_role_depends_on_healthchecks: "false"
modified
roles/homarr/tasks/main.yml
@@ -12,14 +12,14 @@ name: docker_socket_proxy vars: docker_socket_proxy_name: "{{ homarr_name }}-docker-socket-proxy"- docker_socket_proxy_docker_envs: "{{ homarr_docker_socket_proxy_envs }}"+ docker_socket_proxy_role_docker_envs_custom: "{{ lookup('role_var', '_docker_socket_proxy_envs', role='homarr') }}" - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/homeassistant/defaults/main.yml
@@ -17,135 +17,92 @@ # Paths ################################ -homeassistant_paths_folder: "{{ homeassistant_name }}"-homeassistant_paths_location: "{{ server_appdata_path }}/{{ homeassistant_paths_folder }}"-homeassistant_paths_conf: "{{ homeassistant_paths_location }}/configuration.yaml"-homeassistant_paths_folders_list:- - "{{ homeassistant_paths_location }}"+homeassistant_role_paths_folder: "{{ homeassistant_name }}"+homeassistant_role_paths_location: "{{ server_appdata_path }}/{{ homeassistant_role_paths_folder }}"+homeassistant_role_paths_conf: "{{ homeassistant_role_paths_location }}/configuration.yaml"+homeassistant_role_paths_folders_list:+ - "{{ homeassistant_role_paths_location }}" ################################ # Web ################################ -homeassistant_web_subdomain: "{{ homeassistant_name }}"-homeassistant_web_domain: "{{ user.domain }}"-homeassistant_web_port: "8123"-homeassistant_web_url: "{{ 'https://' + (homeassistant_web_subdomain + '.' + homeassistant_web_domain- if (homeassistant_web_subdomain | length > 0)- else homeassistant_web_domain) }}"+homeassistant_role_web_subdomain: "{{ homeassistant_name }}"+homeassistant_role_web_domain: "{{ user.domain }}"+homeassistant_role_web_port: "8123"+homeassistant_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='homeassistant') + '.' + lookup('role_var', '_web_domain', role='homeassistant')+ if (lookup('role_var', '_web_subdomain', role='homeassistant') | length > 0)+ else lookup('role_var', '_web_domain', role='homeassistant')) }}" ################################ # DNS ################################ -homeassistant_dns_record: "{{ homeassistant_web_subdomain }}"-homeassistant_dns_zone: "{{ homeassistant_web_domain }}"-homeassistant_dns_proxy: "{{ dns.proxied }}"+homeassistant_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='homeassistant') }}"+homeassistant_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='homeassistant') }}"+homeassistant_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -homeassistant_traefik_sso_middleware: ""-homeassistant_traefik_middleware_default: "{{ traefik_default_middleware }}"-homeassistant_traefik_middleware_custom: ""-homeassistant_traefik_certresolver: "{{ traefik_default_certresolver }}"-homeassistant_traefik_enabled: true-homeassistant_traefik_api_enabled: false-homeassistant_traefik_api_endpoint: ""+homeassistant_role_traefik_sso_middleware: ""+homeassistant_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+homeassistant_role_traefik_middleware_custom: ""+homeassistant_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+homeassistant_role_traefik_enabled: true+homeassistant_role_traefik_api_enabled: false+homeassistant_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-homeassistant_docker_container: "{{ homeassistant_name }}"+homeassistant_role_docker_container: "{{ homeassistant_name }}" # Image-homeassistant_docker_image_pull: true-homeassistant_docker_image_tag: "latest"-homeassistant_docker_image: "lscr.io/linuxserver/homeassistant:{{ homeassistant_docker_image_tag }}"--# Ports-homeassistant_docker_ports_defaults: []-homeassistant_docker_ports_custom: []-homeassistant_docker_ports: "{{ homeassistant_docker_ports_defaults- + homeassistant_docker_ports_custom }}"+homeassistant_role_docker_image_pull: true+homeassistant_role_docker_image_repo: "lscr.io/linuxserver/homeassistant"+homeassistant_role_docker_image_tag: "latest"+homeassistant_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='homeassistant') }}:{{ lookup('role_var', '_docker_image_tag', role='homeassistant') }}" # Envs-homeassistant_docker_envs_default:+homeassistant_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"-homeassistant_docker_envs_custom: {}-homeassistant_docker_envs: "{{ homeassistant_docker_envs_default- | combine(homeassistant_docker_envs_custom) }}"--# Commands-homeassistant_docker_commands_default: []-homeassistant_docker_commands_custom: []-homeassistant_docker_commands: "{{ homeassistant_docker_commands_default- + homeassistant_docker_commands_custom }}"+homeassistant_role_docker_envs_custom: {}+homeassistant_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='homeassistant')+ | combine(lookup('role_var', '_docker_envs_custom', role='homeassistant')) }}" # Volumes-homeassistant_docker_volumes_default:- - "{{ homeassistant_paths_location }}:/config"+homeassistant_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='homeassistant') }}:/config" - /etc/localtime:/etc/localtime:ro-homeassistant_docker_volumes_custom: []-homeassistant_docker_volumes: "{{ homeassistant_docker_volumes_default- + homeassistant_docker_volumes_custom }}"--# Extended Privileges-homeassistant_docker_privileged: "yes"--# Devices-homeassistant_docker_devices_default: []-homeassistant_docker_devices_custom: []-homeassistant_docker_devices: "{{ homeassistant_docker_devices_default- + homeassistant_docker_devices_custom }}"--# Hosts-homeassistant_docker_hosts_default: {}-homeassistant_docker_hosts_custom: {}-homeassistant_docker_hosts: "{{ docker_hosts_common- | combine(homeassistant_docker_hosts_default)- | combine(homeassistant_docker_hosts_custom) }}"--# Labels-homeassistant_docker_labels_default: {}-homeassistant_docker_labels_custom: {}-homeassistant_docker_labels: "{{ docker_labels_common- | combine(homeassistant_docker_labels_default)- | combine(homeassistant_docker_labels_custom) }}"+homeassistant_role_docker_volumes_custom: []+homeassistant_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='homeassistant')+ + lookup('role_var', '_docker_volumes_custom', role='homeassistant') }}" # Hostname-homeassistant_docker_hostname: "{{ homeassistant_name }}"+homeassistant_role_docker_hostname: "{{ homeassistant_name }}" # Networks-homeassistant_docker_networks_alias: "{{ homeassistant_name }}"-homeassistant_docker_networks_default: []-homeassistant_docker_networks_custom: []-homeassistant_docker_networks: "{{ docker_networks_common- + homeassistant_docker_networks_default- + homeassistant_docker_networks_custom }}"--# Capabilities-homeassistant_docker_capabilities_default: []-homeassistant_docker_capabilities_custom: []-homeassistant_docker_capabilities: "{{ homeassistant_docker_capabilities_default- + homeassistant_docker_capabilities_custom }}"+homeassistant_role_docker_networks_alias: "{{ homeassistant_name }}"+homeassistant_role_docker_networks_default: []+homeassistant_role_docker_networks_custom: []+homeassistant_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='homeassistant')+ + lookup('role_var', '_docker_networks_custom', role='homeassistant') }}" # Network Mode-homeassistant_docker_network_mode: "host"--# Security Opts-homeassistant_docker_security_opts_default: []-homeassistant_docker_security_opts_custom: []-homeassistant_docker_security_opts: "{{ homeassistant_docker_security_opts_default- + homeassistant_docker_security_opts_custom }}"+homeassistant_role_docker_network_mode: "host" # Restart Policy-homeassistant_docker_restart_policy: unless-stopped+homeassistant_role_docker_restart_policy: unless-stopped # State-homeassistant_docker_state: started+homeassistant_role_docker_state: started++# Privileged+homeassistant_role_docker_privileged: true
modified
roles/homeassistant/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -20,18 +20,18 @@ - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" -- name: "Check if '{{ homeassistant_paths_conf | basename }}' exists"+- name: "Check if '{{ lookup('role_var', '_paths_conf', role='homeassistant') | basename }}' exists" ansible.builtin.stat:- path: "{{ homeassistant_paths_conf }}"+ path: "{{ lookup('role_var', '_paths_conf', role='homeassistant') }}" register: homeassistant_config -- name: Settings | New `{{ homeassistant_paths_conf | basename }}` tasks+- name: Settings | New `{{ lookup('role_var', '_paths_conf', role='homeassistant') | basename }}` tasks when: not homeassistant_config.stat.exists block:- - name: "Create '{{ homeassistant_paths_conf | basename }}' if it doesnt exist"+ - name: "Create '{{ lookup('role_var', '_paths_conf', role='homeassistant') | basename }}' if it doesnt exist" ansible.builtin.template: src: configuration.yaml.j2- dest: "{{ homeassistant_paths_conf }}"+ dest: "{{ lookup('role_var', '_paths_conf', role='homeassistant') }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"@@ -41,13 +41,13 @@ - name: Wait for 'configuration.yaml' to be created ansible.builtin.wait_for:- path: "{{ homeassistant_paths_conf }}"+ path: "{{ lookup('role_var', '_paths_conf', role='homeassistant') }}" state: present when: (not continuous_integration) -- name: Chown '{{ homeassistant_paths_location }}'+- name: Chown '{{ lookup('role_var', '_paths_location', role='homeassistant') }}' ansible.builtin.file:- path: "{{ homeassistant_paths_location }}"+ path: "{{ lookup('role_var', '_paths_location', role='homeassistant') }}" state: directory recurse: true owner: "{{ user.name }}"
modified
roles/homebox/defaults/main.yml
@@ -17,129 +17,86 @@ # Paths ################################ -homebox_paths_folder: "{{ homebox_name }}"-homebox_paths_location: "{{ server_appdata_path }}/{{ homebox_paths_folder }}"-homebox_paths_folders_list:- - "{{ homebox_paths_location }}"+homebox_role_paths_folder: "{{ homebox_name }}"+homebox_role_paths_location: "{{ server_appdata_path }}/{{ homebox_role_paths_folder }}"+homebox_role_paths_folders_list:+ - "{{ homebox_role_paths_location }}" ################################ # Web ################################ -homebox_web_subdomain: "{{ homebox_name }}"-homebox_web_domain: "{{ user.domain }}"-homebox_web_port: "7745"-homebox_web_url: "{{ 'https://' + (homebox_web_subdomain + '.' + homebox_web_domain- if (homebox_web_subdomain | length > 0)- else homebox_web_domain) }}"+homebox_role_web_subdomain: "{{ homebox_name }}"+homebox_role_web_domain: "{{ user.domain }}"+homebox_role_web_port: "7745"+homebox_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='homebox') + '.' + lookup('role_var', '_web_domain', role='homebox')+ if (lookup('role_var', '_web_subdomain', role='homebox') | length > 0)+ else lookup('role_var', '_web_domain', role='homebox')) }}" ################################ # DNS ################################ -homebox_dns_record: "{{ homebox_web_subdomain }}"-homebox_dns_zone: "{{ homebox_web_domain }}"-homebox_dns_proxy: "{{ dns.proxied }}"+homebox_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='homebox') }}"+homebox_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='homebox') }}"+homebox_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -homebox_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-homebox_traefik_middleware_default: "{{ traefik_default_middleware }}"-homebox_traefik_middleware_custom: ""-homebox_traefik_certresolver: "{{ traefik_default_certresolver }}"-homebox_traefik_enabled: true-homebox_traefik_api_enabled: false-homebox_traefik_api_endpoint: ""+homebox_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+homebox_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+homebox_role_traefik_middleware_custom: ""+homebox_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+homebox_role_traefik_enabled: true+homebox_role_traefik_api_enabled: false+homebox_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-homebox_docker_container: "{{ homebox_name }}"+homebox_role_docker_container: "{{ homebox_name }}" # Image-homebox_docker_image_pull: true-homebox_docker_image_tag: "latest"-homebox_docker_image: "ghcr.io/sysadminsmedia/homebox:{{ homebox_docker_image_tag }}"--# Ports-homebox_docker_ports_defaults: []-homebox_docker_ports_custom: []-homebox_docker_ports: "{{ homebox_docker_ports_defaults- + homebox_docker_ports_custom }}"+homebox_role_docker_image_pull: true+homebox_role_docker_image_repo: "ghcr.io/sysadminsmedia/homebox"+homebox_role_docker_image_tag: "latest"+homebox_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='homebox') }}:{{ lookup('role_var', '_docker_image_tag', role='homebox') }}" # Envs-homebox_docker_envs_default:+homebox_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}" HBOX_LOG_LEVEL: "info" HBOX_SWAGGER_SCHEMA: "https"-homebox_docker_envs_custom: {}-homebox_docker_envs: "{{ homebox_docker_envs_default- | combine(homebox_docker_envs_custom) }}"--# Commands-homebox_docker_commands_default: []-homebox_docker_commands_custom: []-homebox_docker_commands: "{{ homebox_docker_commands_default- + homebox_docker_commands_custom }}"+homebox_role_docker_envs_custom: {}+homebox_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='homebox')+ | combine(lookup('role_var', '_docker_envs_custom', role='homebox')) }}" # Volumes-homebox_docker_volumes_default:- - "{{ homebox_paths_location }}:/data"-homebox_docker_volumes_custom: []-homebox_docker_volumes: "{{ homebox_docker_volumes_default- + homebox_docker_volumes_custom }}"--# Devices-homebox_docker_devices_default: []-homebox_docker_devices_custom: []-homebox_docker_devices: "{{ homebox_docker_devices_default- + homebox_docker_devices_custom }}"--# Hosts-homebox_docker_hosts_default: {}-homebox_docker_hosts_custom: {}-homebox_docker_hosts: "{{ docker_hosts_common- | combine(homebox_docker_hosts_default)- | combine(homebox_docker_hosts_custom) }}"--# Labels-homebox_docker_labels_default: {}-homebox_docker_labels_custom: {}-homebox_docker_labels: "{{ docker_labels_common- | combine(homebox_docker_labels_default)- | combine(homebox_docker_labels_custom) }}"+homebox_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='homebox') }}:/data"+homebox_role_docker_volumes_custom: []+homebox_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='homebox')+ + lookup('role_var', '_docker_volumes_custom', role='homebox') }}" # Hostname-homebox_docker_hostname: "{{ homebox_name }}"+homebox_role_docker_hostname: "{{ homebox_name }}" # Networks-homebox_docker_networks_alias: "{{ homebox_name }}"-homebox_docker_networks_default: []-homebox_docker_networks_custom: []-homebox_docker_networks: "{{ docker_networks_common- + homebox_docker_networks_default- + homebox_docker_networks_custom }}"--# Capabilities-homebox_docker_capabilities_default: []-homebox_docker_capabilities_custom: []-homebox_docker_capabilities: "{{ homebox_docker_capabilities_default- + homebox_docker_capabilities_custom }}"--# Security Opts-homebox_docker_security_opts_default: []-homebox_docker_security_opts_custom: []-homebox_docker_security_opts: "{{ homebox_docker_security_opts_default- + homebox_docker_security_opts_custom }}"+homebox_role_docker_networks_alias: "{{ homebox_name }}"+homebox_role_docker_networks_default: []+homebox_role_docker_networks_custom: []+homebox_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='homebox')+ + lookup('role_var', '_docker_networks_custom', role='homebox') }}" # Restart Policy-homebox_docker_restart_policy: unless-stopped+homebox_role_docker_restart_policy: unless-stopped # State-homebox_docker_state: started+homebox_role_docker_state: started
modified
roles/homebox/tasks/main.yml
@@ -11,9 +11,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/homepage/defaults/main.yml
@@ -9,158 +9,115 @@ ########################################################################## --- ################################-# Docker Socket Proxy-################################--homepage_docker_socket_proxy_envs:- CONTAINERS: "1"- POST: "0"--################################ # Basics ################################ homepage_name: homepage ################################+# Docker Socket Proxy+################################++homepage_role_docker_socket_proxy_envs:+ CONTAINERS: "1"+ POST: "0"++################################ # Paths ################################ -homepage_paths_folder: "{{ homepage_name }}"-homepage_paths_location: "{{ server_appdata_path }}/{{ homepage_paths_folder }}"-homepage_paths_folders_list:- - "{{ homepage_paths_location }}"- - "{{ homepage_paths_location }}/config"- - "{{ homepage_paths_location }}/images"- - "{{ homepage_paths_location }}/icons"+homepage_role_paths_folder: "{{ homepage_name }}"+homepage_role_paths_location: "{{ server_appdata_path }}/{{ homepage_role_paths_folder }}"+homepage_role_paths_folders_list:+ - "{{ homepage_role_paths_location }}"+ - "{{ homepage_role_paths_location }}/config"+ - "{{ homepage_role_paths_location }}/images"+ - "{{ homepage_role_paths_location }}/icons" ################################ # Web ################################ -homepage_web_subdomain: "{{ homepage_name }}"-homepage_web_domain: "{{ user.domain }}"-homepage_web_port: "3000"-homepage_web_url: "{{ 'https://' + (homepage_web_subdomain + '.' + homepage_web_domain- if (homepage_web_subdomain | length > 0)- else homepage_web_domain) }}"+homepage_role_web_subdomain: "{{ homepage_name }}"+homepage_role_web_domain: "{{ user.domain }}"+homepage_role_web_port: "3000"+homepage_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='homepage') + '.' + lookup('role_var', '_web_domain', role='homepage')+ if (lookup('role_var', '_web_subdomain', role='homepage') | length > 0)+ else lookup('role_var', '_web_domain', role='homepage')) }}" ################################ # DNS ################################ -homepage_dns_record: "{{ homepage_web_subdomain }}"-homepage_dns_zone: "{{ homepage_web_domain }}"-homepage_dns_proxy: "{{ dns.proxied }}"+homepage_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='homepage') }}"+homepage_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='homepage') }}"+homepage_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -homepage_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-homepage_traefik_middleware_default: "{{ traefik_default_middleware }}"-homepage_traefik_middleware_custom: ""-homepage_traefik_certresolver: "{{ traefik_default_certresolver }}"-homepage_traefik_enabled: true-homepage_traefik_api_enabled: false-homepage_traefik_api_endpoint: ""+homepage_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+homepage_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+homepage_role_traefik_middleware_custom: ""+homepage_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+homepage_role_traefik_enabled: true+homepage_role_traefik_api_enabled: false+homepage_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-homepage_docker_container: "{{ homepage_name }}"+homepage_role_docker_container: "{{ homepage_name }}" # Image-homepage_docker_image_pull: true-homepage_docker_image_tag: "latest"-homepage_docker_image: "ghcr.io/gethomepage/homepage:{{ homepage_docker_image_tag }}"--# Ports-homepage_docker_ports_defaults: []-homepage_docker_ports_custom: []-homepage_docker_ports: "{{ homepage_docker_ports_defaults- + homepage_docker_ports_custom }}"+homepage_role_docker_image_pull: true+homepage_role_docker_image_repo: "ghcr.io/gethomepage/homepage"+homepage_role_docker_image_tag: "latest"+homepage_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='homepage') }}:{{ lookup('role_var', '_docker_image_tag', role='homepage') }}" # Envs-homepage_docker_envs_default:+homepage_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"- HOMEPAGE_ALLOWED_HOSTS: "{{ traefik_host + ',' + homepage_name + ':' + homepage_web_port }}"-homepage_docker_envs_custom: {}-homepage_docker_envs: "{{ homepage_docker_envs_default- | combine(homepage_docker_envs_custom) }}"--# Commands-homepage_docker_commands_default: []-homepage_docker_commands_custom: []-homepage_docker_commands: "{{ homepage_docker_commands_default- + homepage_docker_commands_custom }}"+ HOMEPAGE_ALLOWED_HOSTS: "{{ traefik_host + ',' + homepage_name + ':' + lookup('role_var', '_web_port', role='homepage') }}"+homepage_role_docker_envs_custom: {}+homepage_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='homepage')+ | combine(lookup('role_var', '_docker_envs_custom', role='homepage')) }}" # Volumes-homepage_docker_volumes_default:- - "{{ homepage_paths_location }}/config:/app/config"- - "{{ homepage_paths_location }}/images:/app/public/images"- - "{{ homepage_paths_location }}/icons:/app/public/icons"-homepage_docker_volumes_custom: []-homepage_docker_volumes: "{{ homepage_docker_volumes_default- + homepage_docker_volumes_custom }}"--# Devices-homepage_docker_devices_default: []-homepage_docker_devices_custom: []-homepage_docker_devices: "{{ homepage_docker_devices_default- + homepage_docker_devices_custom }}"--# Hosts-homepage_docker_hosts_default: {}-homepage_docker_hosts_custom: {}-homepage_docker_hosts: "{{ docker_hosts_common- | combine(homepage_docker_hosts_default)- | combine(homepage_docker_hosts_custom) }}"--# Labels-homepage_docker_labels_default: {}-homepage_docker_labels_custom: {}-homepage_docker_labels: "{{ docker_labels_common- | combine(homepage_docker_labels_default)- | combine(homepage_docker_labels_custom) }}"+homepage_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='homepage') }}/config:/app/config"+ - "{{ lookup('role_var', '_paths_location', role='homepage') }}/images:/app/public/images"+ - "{{ lookup('role_var', '_paths_location', role='homepage') }}/icons:/app/public/icons"+homepage_role_docker_volumes_custom: []+homepage_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='homepage')+ + lookup('role_var', '_docker_volumes_custom', role='homepage') }}" # Hostname-homepage_docker_hostname: "{{ homepage_name }}"+homepage_role_docker_hostname: "{{ homepage_name }}" # Networks-homepage_docker_networks_alias: "{{ homepage_name }}"-homepage_docker_networks_default: []-homepage_docker_networks_custom: []-homepage_docker_networks: "{{ docker_networks_common- + homepage_docker_networks_default- + homepage_docker_networks_custom }}"--# Capabilities-homepage_docker_capabilities_default: []-homepage_docker_capabilities_custom: []-homepage_docker_capabilities: "{{ homepage_docker_capabilities_default- + homepage_docker_capabilities_custom }}"--# Security Opts-homepage_docker_security_opts_default: []-homepage_docker_security_opts_custom: []-homepage_docker_security_opts: "{{ homepage_docker_security_opts_default- + homepage_docker_security_opts_custom }}"+homepage_role_docker_networks_alias: "{{ homepage_name }}"+homepage_role_docker_networks_default: []+homepage_role_docker_networks_custom: []+homepage_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='homepage')+ + lookup('role_var', '_docker_networks_custom', role='homepage') }}" # Restart Policy-homepage_docker_restart_policy: unless-stopped+homepage_role_docker_restart_policy: unless-stopped # State-homepage_docker_state: started+homepage_role_docker_state: started # User-homepage_docker_user: "{{ uid }}:{{ gid }}"+homepage_role_docker_user: "{{ uid }}:{{ gid }}" # Dependencies-homepage_depends_on: "{{ homepage_name }}-docker-socket-proxy"-homepage_depends_on_delay: "0"-homepage_depends_on_healthchecks: "false"+homepage_role_depends_on: "{{ homepage_name }}-docker-socket-proxy"+homepage_role_depends_on_delay: "0"+homepage_role_depends_on_healthchecks: "false"
modified
roles/homepage/tasks/main.yml
@@ -13,22 +13,22 @@ name: docker_socket_proxy vars: docker_socket_proxy_name: "{{ homepage_name }}-docker-socket-proxy"- docker_socket_proxy_docker_envs: "{{ homepage_docker_socket_proxy_envs }}"+ docker_socket_proxy_role_docker_envs_custom: "{{ lookup('role_var', '_docker_socket_proxy_envs', role='homepage') }}" - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" -- name: Check if `{{ homepage_paths_location | basename }}` exists+- name: Check if `{{ lookup('role_var', '_paths_location', role='homepage') | basename }}` exists ansible.builtin.stat:- path: "{{ homepage_paths_location }}/config"- register: homepage_web_config+ path: "{{ lookup('role_var', '_paths_location', role='homepage') }}/config"+ register: homepage_role_web_config - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"
modified
roles/homepage/tasks/subtasks/init.yml
@@ -8,13 +8,13 @@ # GNU General Public License v3.0 # ######################################################################### ----- name: Settings | New `{{ homepage_paths_location | basename }}` tasks- when: not homepage_web_config.stat.exists+- name: Settings | New `{{ lookup('role_var', '_paths_location', role='homepage') | basename }}` tasks+ when: not homepage_role_web_config.stat.exists block: - name: Settings | Import bookmarks.yaml` ansible.builtin.copy: src: bookmarks.yaml- dest: "{{ homepage_paths_location }}/config"+ dest: "{{ lookup('role_var', '_paths_location', role='homepage') }}/config" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"@@ -22,7 +22,7 @@ - name: "Settings | Import docker.yaml" ansible.builtin.template: src: docker.yaml.j2- dest: '{{ homepage_paths_location }}/config/docker.yaml'+ dest: "{{ lookup('role_var', '_paths_location', role='homepage') }}/config/docker.yaml" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"@@ -30,7 +30,7 @@ - name: Settings | Import services.yaml` ansible.builtin.copy: src: services.yaml- dest: "{{ homepage_paths_location }}/config"+ dest: "{{ lookup('role_var', '_paths_location', role='homepage') }}/config" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"@@ -38,7 +38,7 @@ - name: "Settings | Import settings.yaml" ansible.builtin.template: src: settings.yaml.j2- dest: '{{ homepage_paths_location }}/config/settings.yaml'+ dest: "{{ lookup('role_var', '_paths_location', role='homepage') }}/config/settings.yaml" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"@@ -46,7 +46,7 @@ - name: Settings | Import widgets.yaml` ansible.builtin.copy: src: widgets.yaml- dest: "{{ homepage_paths_location }}/config"+ dest: "{{ lookup('role_var', '_paths_location', role='homepage') }}/config" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"
modified
roles/homepage/templates/settings.yaml.j2
@@ -9,7 +9,7 @@ # background: /images/background-1.png backgroundOpacity: 0.3 headerStyle: boxed-base: {{ homepage_web_url }}+base: {{ lookup('role_var', '_web_url', role='homepage') }} # layout: # Movies and Series Management: # # icon: /icons/film-solid.png
modified
roles/immich/defaults/main.yml
@@ -17,158 +17,124 @@ # Settings ################################ -immich_photos_location: "/mnt/unionfs/Media/Photos"-immich_postgres_name: "{{ immich_name }}-postgres"-immich_postgres_docker_env_db: "{{ immich_name }}"-immich_postgres_docker_image_tag: "14-vectorchord0.4.3-pgvectors0.2.0"-immich_postgres_docker_image_repo: "ghcr.io/immich-app/postgres"-immich_postgres_docker_shm_size: "128M"-immich_postgres_paths_folder: "{{ immich_name }}"-immich_postgres_paths_location: "{{ server_appdata_path }}/{{ postgres_paths_folder }}/postgres"-immich_postgres_docker_envs_custom:+immich_role_photos_location: "/mnt/unionfs/Media/Photos"+immich_role_postgres_deploy: true+immich_role_postgres_name: "{{ immich_name }}-postgres"+immich_role_postgres_user: "{{ postgres_role_docker_env_user }}"+immich_role_postgres_password: "{{ postgres_role_docker_env_password }}"+immich_role_postgres_docker_env_db: "{{ immich_name }}"+immich_role_postgres_docker_image_tag: "14-vectorchord0.4.3-pgvectors0.2.0"+immich_role_postgres_docker_image_repo: "ghcr.io/immich-app/postgres"+immich_role_postgres_docker_healthcheck:+ test: ["CMD-SHELL", "pg_isready -d {{ lookup('role_var', '_postgres_docker_env_db', role='immich') }} -U {{ postgres_role_docker_env_user }}"]+ start_period: 20s+ interval: 30s+ retries: 5+ timeout: 5s+immich_role_postgres_docker_shm_size: "128M"+immich_role_postgres_paths_folder: "{{ immich_name }}"+immich_role_postgres_paths_location: "{{ server_appdata_path }}/{{ immich_role_postgres_paths_folder }}/postgres"+immich_role_postgres_docker_envs_custom: POSTGRES_INITDB_ARGS: '--data-checksums' ################################ # Paths ################################ -immich_paths_folder: "{{ immich_name }}"-immich_paths_location: "{{ server_appdata_path }}/{{ immich_paths_folder }}"-immich_paths_folders_list:- - "{{ immich_paths_location }}"- - "{{ immich_paths_location }}/machine-learning"- - "{{ immich_photos_location }}"+immich_role_paths_folder: "{{ immich_name }}"+immich_role_paths_location: "{{ server_appdata_path }}/{{ immich_role_paths_folder }}"+immich_role_paths_folders_list:+ - "{{ immich_role_paths_location }}"+ - "{{ immich_role_paths_location }}/machine-learning"+ - "{{ lookup('role_var', '_photos_location', role='immich') }}" ################################ # Web ################################ -immich_web_subdomain: "{{ immich_name }}"-immich_web_domain: "{{ user.domain }}"-immich_web_port: "8080"-immich_web_url: "{{ 'https://' + (immich_web_subdomain + '.' + immich_web_domain- if (immich_web_subdomain | length > 0)- else immich_web_domain) }}"+immich_role_web_subdomain: "{{ immich_name }}"+immich_role_web_domain: "{{ user.domain }}"+immich_role_web_port: "8080"+immich_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='immich') + '.' + lookup('role_var', '_web_domain', role='immich')+ if (lookup('role_var', '_web_subdomain', role='immich') | length > 0)+ else lookup('role_var', '_web_domain', role='immich')) }}" ################################ # DNS ################################ -immich_dns_record: "{{ immich_web_subdomain }}"-immich_dns_zone: "{{ immich_web_domain }}"-immich_dns_proxy: "{{ dns.proxied }}"+immich_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='immich') }}"+immich_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='immich') }}"+immich_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -immich_traefik_sso_middleware: ""-immich_traefik_middleware_default: "{{ traefik_default_middleware }}"-immich_traefik_middleware_custom: ""-immich_traefik_certresolver: "{{ traefik_default_certresolver }}"-immich_traefik_enabled: true-immich_traefik_api_enabled: false-immich_traefik_api_endpoint: ""+immich_role_traefik_sso_middleware: ""+immich_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+immich_role_traefik_middleware_custom: ""+immich_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+immich_role_traefik_enabled: true+immich_role_traefik_api_enabled: false+immich_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-immich_docker_container: "{{ immich_name }}"+immich_role_docker_container: "{{ immich_name }}" # Image-immich_docker_image_pull: true-immich_docker_image_tag: "latest"-immich_docker_image: "ghcr.io/imagegenius/immich:{{ immich_docker_image_tag }}"--# Ports-immich_docker_ports_defaults: []-immich_docker_ports_custom: []-immich_docker_ports: "{{ immich_docker_ports_defaults- + immich_docker_ports_custom }}"+immich_role_docker_image_pull: true+immich_role_docker_image_repo: "ghcr.io/imagegenius/immich"+immich_role_docker_image_tag: "latest"+immich_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='immich') }}:{{ lookup('role_var', '_docker_image_tag', role='immich') }}" # Envs-immich_docker_envs_default:+immich_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"- DB_HOSTNAME: "{{ immich_postgres_name }}"- DB_USERNAME: "{{ postgres_docker_env_user }}"- DB_PASSWORD: "{{ postgres_docker_env_password }}"- DB_DATABASE_NAME: "{{ immich_postgres_docker_env_db }}"+ DB_HOSTNAME: "{{ lookup('role_var', '_postgres_name', role='immich') }}"+ DB_USERNAME: "{{ lookup('role_var', '_postgres_user', role='immich') }}"+ DB_PASSWORD: "{{ lookup('role_var', '_postgres_password', role='immich') }}"+ DB_DATABASE_NAME: "{{ lookup('role_var', '_postgres_docker_env_db', role='immich') }}" REDIS_HOSTNAME: "{{ immich_name }}-redis" DISABLE_MACHINE_LEARNING: "false" MACHINE_LEARNING_WORKERS: "1" MACHINE_LEARNING_WORKER_TIMEOUT: "120"-immich_docker_envs_custom: {}-immich_docker_envs: "{{ immich_docker_envs_default- | combine(immich_docker_envs_custom) }}"--# Commands-immich_docker_commands_default: []-immich_docker_commands_custom: []-immich_docker_commands: "{{ immich_docker_commands_default- + immich_docker_commands_custom }}"+immich_role_docker_envs_custom: {}+immich_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='immich')+ | combine(lookup('role_var', '_docker_envs_custom', role='immich')) }}" # Volumes-immich_docker_volumes_default:- - "{{ immich_paths_location }}:/config"- - "{{ immich_photos_location }}:/photos"-immich_docker_volumes_custom: []-immich_docker_volumes: "{{ immich_docker_volumes_default- + immich_docker_volumes_custom }}"--# Devices-immich_docker_devices_default: []-immich_docker_devices_custom: []-immich_docker_devices: "{{ immich_docker_devices_default- + immich_docker_devices_custom }}"--# Hosts-immich_docker_hosts_default: {}-immich_docker_hosts_custom: {}-immich_docker_hosts: "{{ docker_hosts_common- | combine(immich_docker_hosts_default)- | combine(immich_docker_hosts_custom) }}"--# Labels-immich_docker_labels_default: {}-immich_docker_labels_custom: {}-immich_docker_labels: "{{ docker_labels_common- | combine(immich_docker_labels_default)- | combine(immich_docker_labels_custom) }}"+immich_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='immich') }}:/config"+ - "{{ lookup('role_var', '_photos_location', role='immich') }}:/photos"+immich_role_docker_volumes_custom: []+immich_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='immich')+ + lookup('role_var', '_docker_volumes_custom', role='immich') }}" # Hostname-immich_docker_hostname: "{{ immich_name }}"+immich_role_docker_hostname: "{{ immich_name }}" # Networks-immich_docker_networks_alias: "{{ immich_name }}"-immich_docker_networks_default: []-immich_docker_networks_custom: []-immich_docker_networks: "{{ docker_networks_common- + immich_docker_networks_default- + immich_docker_networks_custom }}"--# Capabilities-immich_docker_capabilities_default: []-immich_docker_capabilities_custom: []-immich_docker_capabilities: "{{ immich_docker_capabilities_default- + immich_docker_capabilities_custom }}"--# Security Opts-immich_docker_security_opts_default: []-immich_docker_security_opts_custom: []-immich_docker_security_opts: "{{ immich_docker_security_opts_default- + immich_docker_security_opts_custom }}"+immich_role_docker_networks_alias: "{{ immich_name }}"+immich_role_docker_networks_default: []+immich_role_docker_networks_custom: []+immich_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='immich')+ + lookup('role_var', '_docker_networks_custom', role='immich') }}" # Restart Policy-immich_docker_restart_policy: unless-stopped+immich_role_docker_restart_policy: unless-stopped # State-immich_docker_state: started+immich_role_docker_state: started # Dependencies-immich_depends_on: "{{ immich_postgres_name }},{{ immich_name }}-redis"-immich_depends_on_delay: "0"-immich_depends_on_healthchecks: "false"+immich_role_depends_on: "{{ lookup('role_var', '_postgres_name', role='immich') }},{{ immich_name }}-redis"+immich_role_depends_on_delay: "0"+immich_role_depends_on_healthchecks: "false"
modified
roles/immich/tasks/main.yml
@@ -17,34 +17,36 @@ name: redis vars: redis_instances: ["{{ immich_name }}-redis"]- redis_docker_image_tag: "8-alpine"- redis_paths_folder: "{{ immich_name }}"- redis_paths_location: "{{ server_appdata_path }}/{{ redis_paths_folder }}/redis"+ redis_role_docker_image_tag: "8-alpine"+ redis_role_paths_folder: "{{ immich_name }}"+ redis_role_paths_location: "{{ server_appdata_path }}/{{ lookup('role_var', '_paths_folder', role='redis') }}/redis" - name: Remove legacy PostgreSQL Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" vars: var_prefix: "{{ immich_name }}_postgres" -- name: Import PostgreSQL Role+- name: "Import Postgres Role" ansible.builtin.include_role: name: postgres vars:- postgres_instances: ["{{ immich_postgres_name }}"]- postgres_docker_env_db: "{{ immich_postgres_docker_env_db }}"- postgres_docker_image_tag: "{{ immich_postgres_docker_image_tag }}"- postgres_docker_image_repo: "{{ immich_postgres_docker_image_repo }}"- postgres_docker_shm_size: "{{ immich_postgres_docker_shm_size }}"- postgres_paths_folder: "{{ immich_postgres_paths_folder }}"- postgres_paths_location: "{{ immich_postgres_paths_location }}"- postgres_docker_envs_custom: "{{ immich_postgres_docker_envs_custom }}"+ postgres_instances: ["{{ lookup('role_var', '_postgres_name', role='immich') }}"]+ postgres_role_docker_image_tag: "{{ lookup('role_var', '_postgres_docker_image_tag', role='immich') }}"+ postgres_role_docker_image_repo: "{{ lookup('role_var', '_postgres_docker_image_repo', role='immich') }}"+ postgres_role_paths_folder: "{{ lookup('role_var', '_postgres_paths_folder', role='immich') }}"+ postgres_role_paths_location: "{{ lookup('role_var', '_postgres_paths_location', role='immich') }}"+ postgres_role_docker_env_db: "{{ lookup('role_var', '_postgres_docker_env_db', role='immich') }}"+ postgres_role_docker_healthcheck: "{{ lookup('role_var', '_postgres_docker_healthcheck', role='immich') }}"+ postgres_role_docker_shm_size: "{{ lookup('role_var', '_postgres_docker_shm_size', role='immich') }}"+ postgres_role_docker_envs_custom: "{{ lookup('role_var', '_postgres_docker_envs_custom', role='immich') }}"+ when: lookup('role_var', '_postgres_deploy', role='immich') - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -54,7 +56,7 @@ - name: Docker Devices Task ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/set_docker_devices_variable.yml"- when: gpu.intel or use_nvidia+ when: use_intel or use_nvidia - name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"
modified
roles/influxdb/defaults/main.yml
@@ -17,93 +17,45 @@ # Paths ################################ -influxdb_paths_folder: "{{ influxdb_name }}"-influxdb_paths_location: "{{ server_appdata_path }}/{{ influxdb_paths_folder }}"-influxdb_paths_folders_list:- - "{{ influxdb_paths_location }}"+influxdb_role_paths_folder: "{{ influxdb_name }}"+influxdb_role_paths_location: "{{ server_appdata_path }}/{{ influxdb_role_paths_folder }}"+influxdb_role_paths_recursive: true+influxdb_role_paths_folders_list:+ - "{{ influxdb_role_paths_location }}" ################################ # Docker ################################ # Container-influxdb_docker_container: "{{ influxdb_name }}"+influxdb_role_docker_container: "{{ influxdb_name }}" # Image-influxdb_docker_image_pull: true-influxdb_docker_image_tag: "1.8.4"-influxdb_docker_image: "influxdb:{{ influxdb_docker_image_tag }}"--# Ports-influxdb_docker_ports_defaults: []-influxdb_docker_ports_custom: []-influxdb_docker_ports: "{{ influxdb_docker_ports_defaults- + influxdb_docker_ports_custom }}"--# Envs-influxdb_docker_envs_default: {}-influxdb_docker_envs_custom: {}-influxdb_docker_envs: "{{ influxdb_docker_envs_default- | combine(influxdb_docker_envs_custom) }}"--# Commands-influxdb_docker_commands_default: []-influxdb_docker_commands_custom: []-influxdb_docker_commands: "{{ influxdb_docker_commands_default- + influxdb_docker_commands_custom }}"+influxdb_role_docker_image_pull: true+influxdb_role_docker_image_repo: "influxdb"+influxdb_role_docker_image_tag: "1.12"+influxdb_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='influxdb') }}:{{ lookup('role_var', '_docker_image_tag', role='influxdb') }}" # Volumes-influxdb_docker_volumes_default:- - "{{ influxdb_paths_location }}:/var/lib/influxdb"-influxdb_docker_volumes_custom: []-influxdb_docker_volumes: "{{ influxdb_docker_volumes_default- + influxdb_docker_volumes_custom }}"--# Devices-influxdb_docker_devices_default: []-influxdb_docker_devices_custom: []-influxdb_docker_devices: "{{ influxdb_docker_devices_default- + influxdb_docker_devices_custom }}"--# Hosts-influxdb_docker_hosts_default: {}-influxdb_docker_hosts_custom: {}-influxdb_docker_hosts: "{{ docker_hosts_common- | combine(influxdb_docker_hosts_default)- | combine(influxdb_docker_hosts_custom) }}"--# Labels-influxdb_docker_labels_default: {}-influxdb_docker_labels_custom: {}-influxdb_docker_labels: "{{ docker_labels_common- | combine(influxdb_docker_labels_default)- | combine(influxdb_docker_labels_custom) }}"+influxdb_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='influxdb') }}:/var/lib/influxdb"+influxdb_role_docker_volumes_custom: []+influxdb_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='influxdb')+ + lookup('role_var', '_docker_volumes_custom', role='influxdb') }}" # Hostname-influxdb_docker_hostname: "{{ influxdb_name }}"+influxdb_role_docker_hostname: "{{ influxdb_name }}" # Networks-influxdb_docker_networks_alias: "{{ influxdb_name }}"-influxdb_docker_networks_default: []-influxdb_docker_networks_custom: []-influxdb_docker_networks: "{{ docker_networks_common- + influxdb_docker_networks_default- + influxdb_docker_networks_custom }}"--# Capabilities-influxdb_docker_capabilities_default: []-influxdb_docker_capabilities_custom: []-influxdb_docker_capabilities: "{{ influxdb_docker_capabilities_default- + influxdb_docker_capabilities_custom }}"--# Security Opts-influxdb_docker_security_opts_default: []-influxdb_docker_security_opts_custom: []-influxdb_docker_security_opts: "{{ influxdb_docker_security_opts_default- + influxdb_docker_security_opts_custom }}"+influxdb_role_docker_networks_alias: "{{ influxdb_name }}"+influxdb_role_docker_networks_default: []+influxdb_role_docker_networks_custom: []+influxdb_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='influxdb')+ + lookup('role_var', '_docker_networks_custom', role='influxdb') }}" # Restart Policy-influxdb_docker_restart_policy: unless-stopped+influxdb_role_docker_restart_policy: unless-stopped # State-influxdb_docker_state: started+influxdb_role_docker_state: started
modified
roles/influxdb2/defaults/main.yml
@@ -17,133 +17,78 @@ # Paths ################################ -influxdb2_paths_folder: "{{ influxdb2_name }}"-influxdb2_paths_location: "{{ server_appdata_path }}/{{ influxdb2_paths_folder }}"-influxdb2_paths_folders_list:- - "{{ influxdb2_paths_location }}"- - "{{ influxdb2_paths_location }}/config"- - "{{ influxdb2_paths_location }}/data"+influxdb2_role_paths_folder: "{{ influxdb2_name }}"+influxdb2_role_paths_location: "{{ server_appdata_path }}/{{ influxdb2_role_paths_folder }}"+influxdb2_role_paths_folders_list:+ - "{{ influxdb2_role_paths_location }}"+ - "{{ influxdb2_role_paths_location }}/config"+ - "{{ influxdb2_role_paths_location }}/data" ################################ # Web ################################ -influxdb2_web_subdomain: "{{ influxdb2_name }}"-influxdb2_web_domain: "{{ user.domain }}"-influxdb2_web_port: "8086"-influxdb2_web_url: "{{ 'https://' + (influxdb2_web_subdomain + '.' + influxdb2_web_domain- if (influxdb2_web_subdomain | length > 0)- else influxdb2_web_domain) }}"+influxdb2_role_web_subdomain: "{{ influxdb2_name }}"+influxdb2_role_web_domain: "{{ user.domain }}"+influxdb2_role_web_port: "8086"+influxdb2_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='influxdb2') + '.' + lookup('role_var', '_web_domain', role='influxdb2')+ if (lookup('role_var', '_web_subdomain', role='influxdb2') | length > 0)+ else lookup('role_var', '_web_domain', role='influxdb2')) }}" ################################ # DNS ################################ -influxdb2_dns_record: "{{ influxdb2_web_subdomain }}"-influxdb2_dns_zone: "{{ influxdb2_web_domain }}"-influxdb2_dns_proxy: "{{ dns.proxied }}"+influxdb2_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='influxdb2') }}"+influxdb2_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='influxdb2') }}"+influxdb2_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -influxdb2_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-influxdb2_traefik_middleware_default: "{{ traefik_default_middleware }}"-influxdb2_traefik_middleware_custom: ""-influxdb2_traefik_certresolver: "{{ traefik_default_certresolver }}"-influxdb2_traefik_enabled: true-influxdb2_traefik_api_enabled: false-influxdb2_traefik_api_endpoint: ""+influxdb2_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+influxdb2_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+influxdb2_role_traefik_middleware_custom: ""+influxdb2_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+influxdb2_role_traefik_enabled: true+influxdb2_role_traefik_api_enabled: false+influxdb2_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-influxdb2_docker_container: "{{ influxdb2_name }}"+influxdb2_role_docker_container: "{{ influxdb2_name }}" # Image-influxdb2_docker_image_pull: true-influxdb2_docker_image_tag: "2-alpine"-influxdb2_docker_image_repo: "influxdb"-influxdb2_docker_image: "{{ lookup('vars', influxdb2_name + '_docker_image_repo', default=influxdb2_docker_image_repo)- + ':' + lookup('vars', influxdb2_name + '_docker_image_tag', default=influxdb2_docker_image_tag) }}"--# Ports-influxdb2_docker_ports_defaults: []-influxdb2_docker_ports_custom: []-influxdb2_docker_ports: "{{ lookup('vars', influxdb2_name + '_docker_ports_default', default=influxdb2_docker_ports_defaults)- + lookup('vars', influxdb2_name + '_docker_ports_custom', default=influxdb2_docker_ports_custom) }}"--# Envs-influxdb2_docker_envs_default: {}-influxdb2_docker_envs_custom: {}-influxdb2_docker_envs: "{{ lookup('vars', influxdb2_name + '_docker_envs_default', default=influxdb2_docker_envs_default)- | combine(lookup('vars', influxdb2_name + '_docker_envs_custom', default=influxdb2_docker_envs_custom)) }}"--# Commands-influxdb2_docker_commands_default: []-influxdb2_docker_commands_custom: []-influxdb2_docker_commands: "{{ lookup('vars', influxdb2_name + '_docker_commands_default', default=influxdb2_docker_commands_default)- + lookup('vars', influxdb2_name + '_docker_commands_custom', default=influxdb2_docker_commands_custom) }}"+influxdb2_role_docker_image_pull: true+influxdb2_role_docker_image_tag: "2-alpine"+influxdb2_role_docker_image_repo: "influxdb"+influxdb2_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='influxdb2') }}:{{ lookup('role_var', '_docker_image_tag', role='influxdb2') }}" # Volumes-influxdb2_docker_volumes_default:- - "{{ influxdb2_paths_location }}/data:/var/lib/influxdb22"- - "{{ influxdb2_paths_location }}/config:/etc/influxdb22"-influxdb2_docker_volumes_custom: []-influxdb2_docker_volumes: "{{ lookup('vars', influxdb2_name + '_docker_volumes_default', default=influxdb2_docker_volumes_default)- + lookup('vars', influxdb2_name + '_docker_volumes_custom', default=influxdb2_docker_volumes_custom) }}"--# Devices-influxdb2_docker_devices_default: []-influxdb2_docker_devices_custom: []-influxdb2_docker_devices: "{{ lookup('vars', influxdb2_name + '_docker_devices_default', default=influxdb2_docker_devices_default)- + lookup('vars', influxdb2_name + '_docker_devices_custom', default=influxdb2_docker_devices_custom) }}"--# Hosts-influxdb2_docker_hosts_default: {}-influxdb2_docker_hosts_custom: {}-influxdb2_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', influxdb2_name + '_docker_hosts_default', default=influxdb2_docker_hosts_default))- | combine(lookup('vars', influxdb2_name + '_docker_hosts_custom', default=influxdb2_docker_hosts_custom)) }}"--# Labels-influxdb2_docker_labels_default: {}-influxdb2_docker_labels_custom: {}-influxdb2_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', influxdb2_name + '_docker_labels_default', default=influxdb2_docker_labels_default))- | combine(lookup('vars', influxdb2_name + '_docker_labels_custom', default=influxdb2_docker_labels_custom)) }}"+influxdb2_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='influxdb2') }}/data:/var/lib/influxdb22"+ - "{{ lookup('role_var', '_paths_location', role='influxdb2') }}/config:/etc/influxdb22"+influxdb2_role_docker_volumes_custom: []+influxdb2_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='influxdb2')+ + lookup('role_var', '_docker_volumes_custom', role='influxdb2') }}" # Hostname-influxdb2_docker_hostname: "{{ influxdb2_name }}"--# Network Mode-influxdb2_docker_network_mode_default: "{{ docker_networks_name_common }}"-influxdb2_docker_network_mode: "{{ lookup('vars', influxdb2_name + '_docker_network_mode_default', default=influxdb2_docker_network_mode_default) }}"+influxdb2_role_docker_hostname: "{{ influxdb2_name }}" # Networks-influxdb2_docker_networks_alias: "{{ influxdb2_name }}"-influxdb2_docker_networks_default: []-influxdb2_docker_networks_custom: []-influxdb2_docker_networks: "{{ docker_networks_common- + lookup('vars', influxdb2_name + '_docker_networks_default', default=influxdb2_docker_networks_default)- + lookup('vars', influxdb2_name + '_docker_networks_dcustom', default=influxdb2_docker_networks_custom) }}"--# Capabilities-influxdb2_docker_capabilities_default: []-influxdb2_docker_capabilities_custom: []-influxdb2_docker_capabilities: "{{ lookup('vars', influxdb2_name + '_docker_capabilities_default', default=influxdb2_docker_capabilities_default)- + lookup('vars', influxdb2_name + '_docker_capabilities_custom', default=influxdb2_docker_capabilities_custom) }}"--# Security Opts-influxdb2_docker_security_opts_default: []-influxdb2_docker_security_opts_custom: []-influxdb2_docker_security_opts: "{{ lookup('vars', influxdb2_name + '_docker_security_opts_default', default=influxdb2_docker_security_opts_default)- + lookup('vars', influxdb2_name + '_docker_security_opts_custom', default=influxdb2_docker_security_opts_custom) }}"+influxdb2_role_docker_networks_alias: "{{ influxdb2_name }}"+influxdb2_role_docker_networks_default: []+influxdb2_role_docker_networks_custom: []+influxdb2_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='influxdb2')+ + lookup('role_var', '_docker_networks_custom', role='influxdb2') }}" # Restart Policy-influxdb2_docker_restart_policy: unless-stopped+influxdb2_role_docker_restart_policy: unless-stopped # State-influxdb2_docker_state: started+influxdb2_role_docker_state: started
modified
roles/influxdb2/tasks/main2.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/invoiceninjav5/defaults/main.yml
@@ -23,57 +23,52 @@ # Paths ################################ -invoiceninjav5_paths_folder: "{{ invoiceninjav5_name }}"-invoiceninjav5_paths_location: "{{ server_appdata_path }}/{{ invoiceninjav5_paths_folder }}"-invoiceninjav5_paths_folders_list:- - "{{ invoiceninjav5_paths_location }}"- - "{{ invoiceninjav5_paths_location }}/public"- - "{{ invoiceninjav5_paths_location }}/storage"-invoiceninjav5_paths_recursive: true-invoiceninjav5_paths_owner: "1500"-invoiceninjav5_paths_group: "1500"+invoiceninjav5_role_paths_folder: "{{ invoiceninjav5_name }}"+invoiceninjav5_role_paths_location: "{{ server_appdata_path }}/{{ invoiceninjav5_role_paths_folder }}"+invoiceninjav5_role_paths_folders_list:+ - "{{ invoiceninjav5_role_paths_location }}"+ - "{{ invoiceninjav5_role_paths_location }}/public"+ - "{{ invoiceninjav5_role_paths_location }}/storage"+invoiceninjav5_role_paths_recursive: true+invoiceninjav5_role_paths_owner: "1500"+invoiceninjav5_role_paths_group: "1500" ################################ # Web ################################ -invoiceninjav5_nginx_web_subdomain: "invoiceninja"-invoiceninjav5_nginx_web_domain: "{{ user.domain }}"-invoiceninjav5_nginx_web_port: "80"-invoiceninjav5_nginx_web_url: "{{ 'https://' + (invoiceninjav5_nginx_web_subdomain + '.' + invoiceninjav5_nginx_web_domain- if (invoiceninjav5_nginx_web_subdomain | length > 0)- else invoiceninjav5_nginx_web_domain) }}"+invoiceninjav5_role_nginx_web_subdomain: "invoiceninja"+invoiceninjav5_role_nginx_web_domain: "{{ user.domain }}"+invoiceninjav5_role_nginx_web_port: "80"+invoiceninjav5_role_nginx_web_url: "{{ 'https://' + (lookup('role_var', '_nginx_web_subdomain', role='invoiceninjav5') + '.' + lookup('role_var', '_nginx_web_domain', role='invoiceninjav5')+ if (lookup('role_var', '_nginx_web_subdomain', role='invoiceninjav5') | length > 0)+ else lookup('role_var', '_nginx_web_domain', role='invoiceninjav5')) }}" ################################ # DNS ################################ -invoiceninjav5_nginx_dns_record: "{{ invoiceninjav5_nginx_web_subdomain }}"-invoiceninjav5_nginx_dns_zone: "{{ invoiceninjav5_nginx_web_domain }}"-invoiceninjav5_nginx_dns_proxy: "{{ dns.proxied }}"+invoiceninjav5_role_nginx_dns_record: "{{ lookup('role_var', '_nginx_web_subdomain', role='invoiceninjav5') }}"+invoiceninjav5_role_nginx_dns_zone: "{{ lookup('role_var', '_nginx_web_domain', role='invoiceninjav5') }}"+invoiceninjav5_role_nginx_dns_proxy: "{{ dns_proxied }}" ################################ # Docker ################################ # Container-invoiceninjav5_docker_container: "{{ invoiceninjav5_name }}"+invoiceninjav5_role_docker_container: "{{ invoiceninjav5_name }}" # Image-invoiceninjav5_docker_image_pull: true-invoiceninjav5_docker_image_tag: "5"-invoiceninjav5_docker_image: "invoiceninja/invoiceninja:{{ invoiceninjav5_docker_image_tag }}"--# Ports-invoiceninjav5_docker_ports_defaults: []-invoiceninjav5_docker_ports_custom: []-invoiceninjav5_docker_ports: "{{ invoiceninjav5_docker_ports_defaults- + invoiceninjav5_docker_ports_custom }}"+invoiceninjav5_role_docker_image_pull: true+invoiceninjav5_role_docker_image_repo: "invoiceninja/invoiceninja"+invoiceninjav5_role_docker_image_tag: "5"+invoiceninjav5_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='invoiceninjav5') }}:{{ lookup('role_var', '_docker_image_tag', role='invoiceninjav5') }}" # Envs-invoiceninjav5_docker_envs_default:+invoiceninjav5_role_docker_envs_default: TZ: "{{ tz }}"- APP_URL: "{{ invoiceninjav5_nginx_web_url }}"+ APP_URL: "{{ lookup('role_var', '_nginx_web_url', role='invoiceninjav5') }}" APP_KEY: "{{ invoiceninja.app_key | default('base64:O1S3kAJEDgo92gPkXtxfdCJpoGShgKloUSdcaHMXmoY=', true) }}" APP_ENV: "production" APP_DEBUG: "false"@@ -90,76 +85,38 @@ PHANTOMJS_PDF_GENERATION: "false" IN_USER_EMAIL: "{{ user.email }}" IN_PASSWORD: "{{ user.pass }}"-invoiceninjav5_docker_envs_custom: {}-invoiceninjav5_docker_envs: "{{ invoiceninjav5_docker_envs_default- | combine(invoiceninjav5_docker_envs_custom) }}"--# Commands-invoiceninjav5_docker_commands_default: []-invoiceninjav5_docker_commands_custom: []-invoiceninjav5_docker_commands: "{{ invoiceninjav5_docker_commands_default- + invoiceninjav5_docker_commands_custom }}"+invoiceninjav5_role_docker_envs_custom: {}+invoiceninjav5_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='invoiceninjav5')+ | combine(lookup('role_var', '_docker_envs_custom', role='invoiceninjav5')) }}" # Volumes-invoiceninjav5_docker_volumes_default:- - "{{ invoiceninjav5_paths_location }}/public:/var/www/app/public"- - "{{ invoiceninjav5_paths_location }}/storage:/var/www/app/storage"- - "{{ invoiceninjav5_paths_location }}/php.ini:/usr/local/etc/php/php.ini"- - "{{ invoiceninjav5_paths_location }}/php-cli.ini:/usr/local/etc/php/php-cli.ini"-invoiceninjav5_docker_volumes_custom: []-invoiceninjav5_docker_volumes: "{{ invoiceninjav5_docker_volumes_default- + invoiceninjav5_docker_volumes_custom }}"--# Devices-invoiceninjav5_docker_devices_default: []-invoiceninjav5_docker_devices_custom: []-invoiceninjav5_docker_devices: "{{ invoiceninjav5_docker_devices_default- + invoiceninjav5_docker_devices_custom }}"--# Hosts-invoiceninjav5_docker_hosts_default: {}-invoiceninjav5_docker_hosts_custom: {}-invoiceninjav5_docker_hosts: "{{ docker_hosts_common- | combine(invoiceninjav5_docker_hosts_default)- | combine(invoiceninjav5_docker_hosts_custom) }}"--# Labels-invoiceninjav5_docker_labels_default: {}-invoiceninjav5_docker_labels_custom: {}-invoiceninjav5_docker_labels: "{{ docker_labels_common- | combine(invoiceninjav5_docker_labels_default)- | combine(invoiceninjav5_docker_labels_custom) }}"+invoiceninjav5_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='invoiceninjav5') }}/public:/var/www/app/public"+ - "{{ lookup('role_var', '_paths_location', role='invoiceninjav5') }}/storage:/var/www/app/storage"+ - "{{ lookup('role_var', '_paths_location', role='invoiceninjav5') }}/php.ini:/usr/local/etc/php/php.ini"+ - "{{ lookup('role_var', '_paths_location', role='invoiceninjav5') }}/php-cli.ini:/usr/local/etc/php/php-cli.ini"+invoiceninjav5_role_docker_volumes_custom: []+invoiceninjav5_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='invoiceninjav5')+ + lookup('role_var', '_docker_volumes_custom', role='invoiceninjav5') }}" # Hostname-invoiceninjav5_docker_hostname: "{{ invoiceninjav5_name }}"+invoiceninjav5_role_docker_hostname: "{{ invoiceninjav5_name }}" # Networks-invoiceninjav5_docker_networks_alias: "{{ invoiceninjav5_name }}"-invoiceninjav5_docker_networks_default: []-invoiceninjav5_docker_networks_custom: []-invoiceninjav5_docker_networks: "{{ docker_networks_common- + invoiceninjav5_docker_networks_default- + invoiceninjav5_docker_networks_custom }}"--# Capabilities-invoiceninjav5_docker_capabilities_default: []-invoiceninjav5_docker_capabilities_custom: []-invoiceninjav5_docker_capabilities: "{{ invoiceninjav5_docker_capabilities_default- + invoiceninjav5_docker_capabilities_custom }}"--# Security Opts-invoiceninjav5_docker_security_opts_default: []-invoiceninjav5_docker_security_opts_custom: []-invoiceninjav5_docker_security_opts: "{{ invoiceninjav5_docker_security_opts_default- + invoiceninjav5_docker_security_opts_custom }}"+invoiceninjav5_role_docker_networks_alias: "{{ invoiceninjav5_name }}"+invoiceninjav5_role_docker_networks_default: []+invoiceninjav5_role_docker_networks_custom: []+invoiceninjav5_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='invoiceninjav5')+ + lookup('role_var', '_docker_networks_custom', role='invoiceninjav5') }}" # Restart Policy-invoiceninjav5_docker_restart_policy: unless-stopped+invoiceninjav5_role_docker_restart_policy: unless-stopped # State-invoiceninjav5_docker_state: started+invoiceninjav5_role_docker_state: started # Dependencies-invoiceninjav5_depends_on: "invoiceninja-nginx,mariadb"-invoiceninjav5_depends_on_delay: "0"-invoiceninjav5_depends_on_healthchecks: "false"+invoiceninjav5_role_depends_on: "invoiceninja-nginx,mariadb"+invoiceninjav5_role_depends_on_delay: "0"+invoiceninjav5_role_depends_on_healthchecks: "false"
modified
roles/invoiceninjav5/tasks/main.yml
@@ -16,26 +16,16 @@ name: "invoiceninjav5db" login_host: "mariadb" login_user: "root"- login_password: "{{ mariadb_docker_env_password }}"+ login_password: "{{ mariadb_role_docker_env_password }}" state: present - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" -# - name: Create directories-# ansible.builtin.file:-# path: "{{ item }}"-# state: directory-# owner: "1500"-# group: "invoiceninja"-# mode: "0775"-# recurse: true-# with_items: "{{ lookup('vars', role_name + '_paths_folders_list') }}"- - name: "Settings | Import in-vhost.conf" ansible.builtin.template: src: "{{ item }}.j2"- dest: '{{ invoiceninjav5_paths_location }}/{{ item }}'+ dest: "{{ lookup('role_var', '_paths_location', role='invoiceninjav5') }}/{{ item }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"@@ -55,19 +45,19 @@ ansible.builtin.include_role: name: nginx vars:- nginx_docker_image: "nginx:latest"- nginx_paths_folder: ""- nginx_paths_folders_list: []- nginx_web_subdomain: "{{ invoiceninjav5_nginx_web_subdomain }}"- nginx_web_domain: "{{ invoiceninjav5_nginx_web_domain }}"- nginx_dns_record: "{{ invoiceninjav5_nginx_dns_record }}"- nginx_dns_zone: "{{ invoiceninjav5_nginx_dns_zone }}"- nginx_dns_proxy: "{{ invoiceninjav5_nginx_dns_proxy }}"+ nginx_role_docker_image: "nginx:latest"+ nginx_role_paths_folder: ""+ nginx_role_paths_folders_list: []+ nginx_role_web_subdomain: "{{ lookup('role_var', '_nginx_web_subdomain', role='invoiceninjav5') }}"+ nginx_role_web_domain: "{{ lookup('role_var', '_nginx_web_domain', role='invoiceninjav5') }}"+ nginx_role_dns_record: "{{ lookup('role_var', '_nginx_dns_record', role='invoiceninjav5') }}"+ nginx_role_dns_zone: "{{ lookup('role_var', '_nginx_dns_zone', role='invoiceninjav5') }}"+ nginx_role_dns_proxy: "{{ lookup('role_var', '_nginx_dns_proxy', role='invoiceninjav5') }}" nginx_instances: ["invoiceninja-nginx"]- nginx_traefik_gzip_enabled: false- nginx_docker_volumes_default:- - "{{ invoiceninjav5_paths_location }}/in-vhost.conf:/etc/nginx/conf.d/in-vhost.conf:ro"- - "{{ invoiceninjav5_paths_location }}/public:/var/www/app/public:ro"+ nginx_role_traefik_gzip_enabled: false+ nginx_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='invoiceninjav5') }}/in-vhost.conf:/etc/nginx/conf.d/in-vhost.conf:ro"+ - "{{ lookup('role_var', '_paths_location', role='invoiceninjav5') }}/public:/var/www/app/public:ro" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/it_tools/defaults/main.yml
@@ -17,121 +17,62 @@ # Web ################################ -it_tools_web_subdomain: "{{ it_tools_name }}"-it_tools_web_domain: "{{ user.domain }}"-it_tools_web_port: "80"-it_tools_web_url: "{{ 'https://' + (it_tools_web_subdomain + '.' + it_tools_web_domain- if (it_tools_web_subdomain | length > 0)- else it_tools_web_domain) }}"+it_tools_role_web_subdomain: "{{ it_tools_name }}"+it_tools_role_web_domain: "{{ user.domain }}"+it_tools_role_web_port: "80"+it_tools_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='it_tools') + '.' + lookup('role_var', '_web_domain', role='it_tools')+ if (lookup('role_var', '_web_subdomain', role='it_tools') | length > 0)+ else lookup('role_var', '_web_domain', role='it_tools')) }}" ################################ # DNS ################################ -it_tools_dns_record: "{{ it_tools_web_subdomain }}"-it_tools_dns_zone: "{{ it_tools_web_domain }}"-it_tools_dns_proxy: "{{ dns.proxied }}"+it_tools_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='it_tools') }}"+it_tools_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='it_tools') }}"+it_tools_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -it_tools_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-it_tools_traefik_middleware_default: "{{ traefik_default_middleware }}"-it_tools_traefik_middleware_custom: ""-it_tools_traefik_certresolver: "{{ traefik_default_certresolver }}"-it_tools_traefik_enabled: true-it_tools_traefik_api_enabled: false-it_tools_traefik_api_endpoint: ""+it_tools_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+it_tools_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+it_tools_role_traefik_middleware_custom: ""+it_tools_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+it_tools_role_traefik_enabled: true+it_tools_role_traefik_api_enabled: false+it_tools_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-it_tools_docker_container: "{{ it_tools_name }}"+it_tools_role_docker_container: "{{ it_tools_name }}" # Image-it_tools_docker_image_pull: true-it_tools_docker_image_tag: "latest"-it_tools_docker_image: "corentinth/it-tools:{{ it_tools_docker_image_tag }}"--# Ports-it_tools_docker_ports_defaults: []-it_tools_docker_ports_custom: []-it_tools_docker_ports: "{{ it_tools_docker_ports_defaults- + it_tools_docker_ports_custom }}"--# Envs-it_tools_docker_envs_default: {}-it_tools_docker_envs_custom: {}-it_tools_docker_envs: "{{ it_tools_docker_envs_default- | combine(it_tools_docker_envs_custom) }}"--# Commands-it_tools_docker_volumes_global: false-it_tools_docker_commands_default: []-it_tools_docker_commands_custom: []-it_tools_docker_commands: "{{ it_tools_docker_commands_default- + it_tools_docker_commands_custom }}"+it_tools_role_docker_image_pull: true+it_tools_role_docker_image_repo: "corentinth/it-tools"+it_tools_role_docker_image_tag: "latest"+it_tools_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='it_tools') }}:{{ lookup('role_var', '_docker_image_tag', role='it_tools') }}" # Volumes-it_tools_docker_volumes_default: []-it_tools_docker_volumes_custom: []-it_tools_docker_volumes: "{{ it_tools_docker_volumes_default- + it_tools_docker_volumes_custom }}"--# Mounts-it_tools_docker_mounts_default: []-it_tools_docker_mounts_custom: []-it_tools_docker_mounts: "{{ it_tools_docker_mounts_default- + it_tools_docker_mounts_custom }}"--# Devices-it_tools_docker_devices_default: []-it_tools_docker_devices_custom: []-it_tools_docker_devices: "{{ it_tools_docker_devices_default- + it_tools_docker_devices_custom }}"--# Hosts-it_tools_docker_hosts_default: {}-it_tools_docker_hosts_custom: {}-it_tools_docker_hosts: "{{ docker_hosts_common- | combine(it_tools_docker_hosts_default)- | combine(it_tools_docker_hosts_custom) }}"--# Labels-it_tools_docker_labels_default: {}-it_tools_docker_labels_custom: {}-it_tools_docker_labels: "{{ docker_labels_common- | combine(it_tools_docker_labels_default)- | combine(it_tools_docker_labels_custom) }}"+it_tools_role_docker_volumes_global: false # Hostname-it_tools_docker_hostname: "{{ it_tools_name }}"+it_tools_role_docker_hostname: "{{ it_tools_name }}" # Networks-it_tools_docker_networks_alias: "{{ it_tools_name }}"-it_tools_docker_networks_default: []-it_tools_docker_networks_custom: []-it_tools_docker_networks: "{{ docker_networks_common- + it_tools_docker_networks_default- + it_tools_docker_networks_custom }}"--# Capabilities-it_tools_docker_capabilities_default: []-it_tools_docker_capabilities_custom: []-it_tools_docker_capabilities: "{{ it_tools_docker_capabilities_default- + it_tools_docker_capabilities_custom }}"--# Security Opts-it_tools_docker_security_opts_default: []-it_tools_docker_security_opts_custom: []-it_tools_docker_security_opts: "{{ it_tools_docker_security_opts_default- + it_tools_docker_security_opts_custom }}"+it_tools_role_docker_networks_alias: "{{ it_tools_name }}"+it_tools_role_docker_networks_default: []+it_tools_role_docker_networks_custom: []+it_tools_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='it_tools')+ + lookup('role_var', '_docker_networks_custom', role='it_tools') }}" # Restart Policy-it_tools_docker_restart_policy: unless-stopped+it_tools_role_docker_restart_policy: unless-stopped # State-it_tools_docker_state: started+it_tools_role_docker_state: started
modified
roles/it_tools/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/jdownloader2/defaults/main.yml
@@ -17,67 +17,62 @@ # Paths ################################ -jdownloader2_paths_folder: "{{ jdownloader2_name }}"-jdownloader2_paths_location: "{{ server_appdata_path }}/{{ jdownloader2_paths_folder }}"-jdownloader2_paths_downloads_location: "/mnt/local/downloads/{{ jdownloader2_name }}/output"-jdownloader2_paths_tools_location: "{{ jdownloader2_paths_location }}/config/libs"-jdownloader2_paths_folders_list:- - "{{ jdownloader2_paths_location }}"- - "{{ jdownloader2_paths_location }}/config"- - "{{ jdownloader2_paths_tools_location }}"- - "{{ jdownloader2_paths_downloads_location }}"+jdownloader2_role_paths_folder: "{{ jdownloader2_name }}"+jdownloader2_role_paths_location: "{{ server_appdata_path }}/{{ jdownloader2_role_paths_folder }}"+jdownloader2_role_paths_downloads_location: "{{ server_local_folder_path }}/downloads/{{ jdownloader2_name }}/output"+jdownloader2_role_paths_tools_location: "{{ jdownloader2_role_paths_location }}/config/libs"+jdownloader2_role_paths_folders_list:+ - "{{ jdownloader2_role_paths_location }}"+ - "{{ jdownloader2_role_paths_location }}/config"+ - "{{ jdownloader2_role_paths_tools_location }}"+ - "{{ jdownloader2_role_paths_downloads_location }}" ################################ # Web ################################ -jdownloader2_web_subdomain: "{{ jdownloader2_name }}"-jdownloader2_web_domain: "{{ user.domain }}"-jdownloader2_web_port: "5800"-jdownloader2_web_url: "{{ 'https://' + (jdownloader2_web_subdomain + '.' + jdownloader2_web_domain- if (jdownloader2_web_subdomain | length > 0)- else jdownloader2_web_domain) }}"+jdownloader2_role_web_subdomain: "{{ jdownloader2_name }}"+jdownloader2_role_web_domain: "{{ user.domain }}"+jdownloader2_role_web_port: "5800"+jdownloader2_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='jdownloader2') + '.' + lookup('role_var', '_web_domain', role='jdownloader2')+ if (lookup('role_var', '_web_subdomain', role='jdownloader2') | length > 0)+ else lookup('role_var', '_web_domain', role='jdownloader2')) }}" ################################ # DNS ################################ -jdownloader2_dns_record: "{{ jdownloader2_web_subdomain }}"-jdownloader2_dns_zone: "{{ jdownloader2_web_domain }}"-jdownloader2_dns_proxy: "{{ dns.proxied }}"+jdownloader2_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='jdownloader2') }}"+jdownloader2_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='jdownloader2') }}"+jdownloader2_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -jdownloader2_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-jdownloader2_traefik_middleware_default: "{{ traefik_default_middleware }}"-jdownloader2_traefik_middleware_custom: ""-jdownloader2_traefik_certresolver: "{{ traefik_default_certresolver }}"-jdownloader2_traefik_enabled: true-jdownloader2_traefik_api_enabled: false-jdownloader2_traefik_api_endpoint: ""+jdownloader2_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+jdownloader2_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+jdownloader2_role_traefik_middleware_custom: ""+jdownloader2_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+jdownloader2_role_traefik_enabled: true+jdownloader2_role_traefik_api_enabled: false+jdownloader2_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-jdownloader2_docker_container: "{{ jdownloader2_name }}"+jdownloader2_role_docker_container: "{{ jdownloader2_name }}" # Image-jdownloader2_docker_image_pull: true-jdownloader2_docker_image_tag: "latest"-jdownloader2_docker_image: "jlesage/jdownloader-2:{{ jdownloader2_docker_image_tag }}"--# Ports-jdownloader2_docker_ports_defaults: []-jdownloader2_docker_ports_custom: []-jdownloader2_docker_ports: "{{ jdownloader2_docker_ports_defaults- + jdownloader2_docker_ports_custom }}"+jdownloader2_role_docker_image_pull: true+jdownloader2_role_docker_image_repo: "jlesage/jdownloader-2"+jdownloader2_role_docker_image_tag: "latest"+jdownloader2_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='jdownloader2') }}:{{ lookup('role_var', '_docker_image_tag', role='jdownloader2') }}" # Envs-jdownloader2_docker_envs_default:+jdownloader2_role_docker_envs_default: USER_ID: "{{ uid }}" GROUP_ID: "{{ gid }}" TZ: "{{ tz }}"@@ -87,69 +82,31 @@ CLEAN_TMP_DIR: "1" UMASK: "000" ENABLE_CJK_FONT: "1"-jdownloader2_docker_envs_custom: {}-jdownloader2_docker_envs: "{{ jdownloader2_docker_envs_default- | combine(jdownloader2_docker_envs_custom) }}"--# Commands-jdownloader2_docker_commands_default: []-jdownloader2_docker_commands_custom: []-jdownloader2_docker_commands: "{{ jdownloader2_docker_commands_default- + jdownloader2_docker_commands_custom }}"+jdownloader2_role_docker_envs_custom: {}+jdownloader2_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='jdownloader2')+ | combine(lookup('role_var', '_docker_envs_custom', role='jdownloader2')) }}" # Volumes-jdownloader2_docker_volumes_default:- - "{{ jdownloader2_paths_location }}/config:/config"- - "{{ jdownloader2_paths_downloads_location }}:/output"-jdownloader2_docker_volumes_custom: []-jdownloader2_docker_volumes: "{{ jdownloader2_docker_volumes_default- + jdownloader2_docker_volumes_custom }}"--# Devices-jdownloader2_docker_devices_default: []-jdownloader2_docker_devices_custom: []-jdownloader2_docker_devices: "{{ jdownloader2_docker_devices_default- + jdownloader2_docker_devices_custom }}"--# Hosts-jdownloader2_docker_hosts_default: {}-jdownloader2_docker_hosts_custom: {}-jdownloader2_docker_hosts: "{{ docker_hosts_common- | combine(jdownloader2_docker_hosts_default)- | combine(jdownloader2_docker_hosts_custom) }}"--# Labels-jdownloader2_docker_labels_default: {}-jdownloader2_docker_labels_custom: {}-jdownloader2_docker_labels: "{{ docker_labels_common- | combine(jdownloader2_docker_labels_default)- | combine(jdownloader2_docker_labels_custom) }}"+jdownloader2_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='jdownloader2') }}/config:/config"+ - "{{ lookup('role_var', '_paths_downloads_location', role='jdownloader2') }}:/output"+jdownloader2_role_docker_volumes_custom: []+jdownloader2_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='jdownloader2')+ + lookup('role_var', '_docker_volumes_custom', role='jdownloader2') }}" # Hostname-jdownloader2_docker_hostname: "{{ jdownloader2_name }}"+jdownloader2_role_docker_hostname: "{{ jdownloader2_name }}" # Networks-jdownloader2_docker_networks_alias: "{{ jdownloader2_name }}"-jdownloader2_docker_networks_default: []-jdownloader2_docker_networks_custom: []-jdownloader2_docker_networks: "{{ docker_networks_common- + jdownloader2_docker_networks_default- + jdownloader2_docker_networks_custom }}"--# Capabilities-jdownloader2_docker_capabilities_default: []-jdownloader2_docker_capabilities_custom: []-jdownloader2_docker_capabilities: "{{ jdownloader2_docker_capabilities_default- + jdownloader2_docker_capabilities_custom }}"--# Security Opts-jdownloader2_docker_security_opts_default: []-jdownloader2_docker_security_opts_custom: []-jdownloader2_docker_security_opts: "{{ jdownloader2_docker_security_opts_default- + jdownloader2_docker_security_opts_custom }}"+jdownloader2_role_docker_networks_alias: "{{ jdownloader2_name }}"+jdownloader2_role_docker_networks_default: []+jdownloader2_role_docker_networks_custom: []+jdownloader2_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='jdownloader2')+ + lookup('role_var', '_docker_networks_custom', role='jdownloader2') }}" # Restart Policy-jdownloader2_docker_restart_policy: unless-stopped+jdownloader2_role_docker_restart_policy: unless-stopped # State-jdownloader2_docker_state: started+jdownloader2_role_docker_state: started
modified
roles/jdownloader2/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/jdownloader2/tasks/subtasks/legacy.yml
@@ -7,9 +7,9 @@ # GNU General Public License v3.0 # ########################################################################## ----- name: Legacy | Check if '/opt/myjdownloader' exists+- name: Legacy | Check if '{{ server_appdata_path }}/myjdownloader' exists ansible.builtin.stat:- path: "/opt/myjdownloader"+ path: "{{ server_appdata_path }}/myjdownloader" register: opt_myjdownloader - name: Legacy | Migration Block@@ -22,11 +22,11 @@ - name: Legacy | Move opt folder 'myjdownloader' to 'jdownloader2' ansible.builtin.shell: |- mv /opt/myjdownloader "{{ jdownloader2_paths_location }}"+ mv {{ server_appdata_path }}/myjdownloader "{{ lookup('role_var', '_paths_location', role='jdownloader2') }}" - name: Legacy | Set permissions on 'jdownloader2' ansible.builtin.file:- path: "{{ jdownloader2_paths_location }}"+ path: "{{ lookup('role_var', '_paths_location', role='jdownloader2') }}" state: directory recurse: true owner: "{{ user.name }}"
modified
roles/jdownloader2/tasks/subtasks/unzippers.yml
@@ -7,22 +7,22 @@ # GNU General Public License v3.0 # ########################################################################## ----- name: "unzippers | Check if '{{ jdownloader2_paths_tools_location }}/sevenzipjbinding1509.jar' exists"+- name: "unzippers | Check if '{{ lookup('role_var', '_paths_tools_location', role='jdownloader2') }}/sevenzipjbinding1509.jar' exists" ansible.builtin.stat:- path: "{{ jdownloader2_paths_tools_location }}/sevenzipjbinding1509.jar"+ path: "{{ lookup('role_var', '_paths_tools_location', role='jdownloader2') }}/sevenzipjbinding1509.jar" register: sevenzip_1509 -- name: "unzippers | Check if '{{ jdownloader2_paths_tools_location }}/sevenzipjbinding1509Linux.jar' exists"+- name: "unzippers | Check if '{{ lookup('role_var', '_paths_tools_location', role='jdownloader2') }}/sevenzipjbinding1509Linux.jar' exists" ansible.builtin.stat:- path: "{{ jdownloader2_paths_tools_location }}/sevenzipjbinding1509Linux.jar"+ path: "{{ lookup('role_var', '_paths_tools_location', role='jdownloader2') }}/sevenzipjbinding1509Linux.jar" register: sevenzip_1509linux -- name: unzippers | Import tools "{{ jdownloader2_paths_tools_location | basename }}" tasks+- name: unzippers | Import tools "{{ lookup('role_var', '_paths_tools_location', role='jdownloader2') | basename }}" tasks block: - name: unzippers | Import 7zip 1509 ansible.builtin.copy: src: "sevenzipjbinding1509.jar"- dest: "{{ jdownloader2_paths_tools_location }}/sevenzipjbinding1509.jar"+ dest: "{{ lookup('role_var', '_paths_tools_location', role='jdownloader2') }}/sevenzipjbinding1509.jar" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0775"@@ -32,7 +32,7 @@ - name: unzippers | Import 7zip 1509Linux ansible.builtin.copy: src: "sevenzipjbinding1509Linux.jar"- dest: "{{ jdownloader2_paths_tools_location }}/sevenzipjbinding1509Linux.jar"+ dest: "{{ lookup('role_var', '_paths_tools_location', role='jdownloader2') }}/sevenzipjbinding1509Linux.jar" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0775"
modified
roles/jellyseerr/defaults/main.yml
@@ -17,144 +17,93 @@ # Settings ################################ -jellyseerr_log_level: "INFO"-jellyseerr_emby: false+jellyseerr_role_log_level: "INFO" ################################ # Paths ################################ -jellyseerr_paths_folder: "{{ jellyseerr_name }}"-jellyseerr_paths_location: "{{ server_appdata_path }}/{{ jellyseerr_paths_folder }}"-jellyseerr_paths_folders_list:- - "{{ jellyseerr_paths_location }}"+jellyseerr_role_paths_folder: "{{ jellyseerr_name }}"+jellyseerr_role_paths_location: "{{ server_appdata_path }}/{{ jellyseerr_role_paths_folder }}"+jellyseerr_role_paths_folders_list:+ - "{{ jellyseerr_role_paths_location }}" ################################ # Web ################################ -jellyseerr_web_subdomain: "{{ jellyseerr_name }}"-jellyseerr_web_domain: "{{ user.domain }}"-jellyseerr_web_port: "5055"-jellyseerr_web_url: "{{ 'https://' + (lookup('vars', jellyseerr_name + '_web_subdomain', default=jellyseerr_web_subdomain) + '.' + lookup('vars', jellyseerr_name + '_web_domain', default=jellyseerr_web_domain)- if (lookup('vars', jellyseerr_name + '_web_subdomain', default=jellyseerr_web_subdomain) | length > 0)- else lookup('vars', jellyseerr_name + '_web_domain', default=jellyseerr_web_domain)) }}"+jellyseerr_role_web_subdomain: "{{ jellyseerr_name }}"+jellyseerr_role_web_domain: "{{ user.domain }}"+jellyseerr_role_web_port: "5055"+jellyseerr_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='jellyseerr') + '.' + lookup('role_var', '_web_domain', role='jellyseerr')+ if (lookup('role_var', '_web_subdomain', role='jellyseerr') | length > 0)+ else lookup('role_var', '_web_domain', role='jellyseerr')) }}" ################################ # DNS ################################ -jellyseerr_dns_record: "{{ lookup('vars', jellyseerr_name + '_web_subdomain', default=jellyseerr_web_subdomain) }}"-jellyseerr_dns_zone: "{{ lookup('vars', jellyseerr_name + '_web_domain', default=jellyseerr_web_domain) }}"-jellyseerr_dns_proxy: "{{ dns.proxied }}"+jellyseerr_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='jellyseerr') }}"+jellyseerr_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='jellyseerr') }}"+jellyseerr_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -jellyseerr_traefik_sso_middleware: ""-jellyseerr_traefik_middleware_default: "{{ traefik_default_middleware }}"-jellyseerr_traefik_middleware_custom: ""-jellyseerr_traefik_certresolver: "{{ traefik_default_certresolver }}"-jellyseerr_traefik_enabled: true-jellyseerr_traefik_api_enabled: false-jellyseerr_traefik_api_endpoint: ""+jellyseerr_role_traefik_sso_middleware: ""+jellyseerr_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+jellyseerr_role_traefik_middleware_custom: ""+jellyseerr_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+jellyseerr_role_traefik_enabled: true+jellyseerr_role_traefik_api_enabled: false+jellyseerr_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-jellyseerr_docker_container: "{{ jellyseerr_name }}"+jellyseerr_role_docker_container: "{{ jellyseerr_name }}" # Image-jellyseerr_docker_image_pull: true-jellyseerr_docker_image_repo: "fallenbagel/jellyseerr"-jellyseerr_docker_image_tag: "latest"-jellyseerr_docker_image: "{{ lookup('vars', jellyseerr_name + '_docker_image_repo', default=jellyseerr_docker_image_repo)- + ':' + lookup('vars', jellyseerr_name + '_docker_image_tag', default=jellyseerr_docker_image_tag) }}"--# Ports-jellyseerr_docker_ports_defaults: []-jellyseerr_docker_ports_custom: []-jellyseerr_docker_ports: "{{ lookup('vars', jellyseerr_name + '_docker_ports_defaults', default=jellyseerr_docker_ports_defaults)- + lookup('vars', jellyseerr_name + '_docker_ports_custom', default=jellyseerr_docker_ports_custom) }}"+jellyseerr_role_docker_image_pull: true+jellyseerr_role_docker_image_repo: "fallenbagel/jellyseerr"+jellyseerr_role_docker_image_tag: "latest"+jellyseerr_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='jellyseerr') }}:{{ lookup('role_var', '_docker_image_tag', role='jellyseerr') }}" # Envs-jellyseerr_docker_envs_default:+jellyseerr_role_docker_envs_default: UMASK: "002" TZ: "{{ tz }}"- LOG_LEVEL: "{{ jellyseerr_log_level }}"- JELLYFIN_TYPE: "{{ 'emby' if jellyseerr_emby else omit }}"-jellyseerr_docker_envs_custom: {}-jellyseerr_docker_envs: "{{ lookup('vars', jellyseerr_name + '_docker_envs_default', default=jellyseerr_docker_envs_default)- | combine(lookup('vars', jellyseerr_name + '_docker_envs_custom', default=jellyseerr_docker_envs_custom)) }}"--# Commands-jellyseerr_docker_commands_default: []-jellyseerr_docker_commands_custom: []-jellyseerr_docker_commands: "{{ lookup('vars', jellyseerr_name + '_docker_commands_default', default=jellyseerr_docker_commands_default)- + lookup('vars', jellyseerr_name + '_docker_commands_custom', default=jellyseerr_docker_commands_custom) }}"+ LOG_LEVEL: "{{ lookup('role_var', '_log_level', role='jellyseerr') }}"+jellyseerr_role_docker_envs_custom: {}+jellyseerr_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='jellyseerr')+ | combine(lookup('role_var', '_docker_envs_custom', role='jellyseerr')) }}" # Volumes-jellyseerr_docker_volumes_default:- - "{{ jellyseerr_paths_location }}:/app/config"-jellyseerr_docker_volumes_custom: []-jellyseerr_docker_volumes: "{{ lookup('vars', jellyseerr_name + '_docker_volumes_default', default=jellyseerr_docker_volumes_default)- + lookup('vars', jellyseerr_name + '_docker_volumes_custom', default=jellyseerr_docker_volumes_custom) }}"--# Devices-jellyseerr_docker_devices_default: []-jellyseerr_docker_devices_custom: []-jellyseerr_docker_devices: "{{ lookup('vars', jellyseerr_name + '_docker_devices_default', default=jellyseerr_docker_devices_default)- + lookup('vars', jellyseerr_name + '_docker_devices_custom', default=jellyseerr_docker_devices_custom) }}"--# Hosts-jellyseerr_docker_hosts_default: {}-jellyseerr_docker_hosts_custom: {}-jellyseerr_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', jellyseerr_name + '_docker_hosts_default', default=jellyseerr_docker_hosts_default))- | combine(lookup('vars', jellyseerr_name + '_docker_hosts_custom', default=jellyseerr_docker_hosts_custom)) }}"--# Labels-jellyseerr_docker_labels_default: {}-jellyseerr_docker_labels_custom: {}-jellyseerr_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', jellyseerr_name + '_docker_labels_default', default=jellyseerr_docker_labels_default))- | combine(lookup('vars', jellyseerr_name + '_docker_labels_custom', default=jellyseerr_docker_labels_custom)) }}"+jellyseerr_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='jellyseerr') }}:/app/config"+jellyseerr_role_docker_volumes_custom: []+jellyseerr_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='jellyseerr')+ + lookup('role_var', '_docker_volumes_custom', role='jellyseerr') }}" # Hostname-jellyseerr_docker_hostname: "{{ jellyseerr_name }}"--# Network Mode-jellyseerr_docker_network_mode_default: "{{ docker_networks_name_common }}"-jellyseerr_docker_network_mode: "{{ lookup('vars', jellyseerr_name + '_docker_network_mode_default', default=jellyseerr_docker_network_mode_default) }}"+jellyseerr_role_docker_hostname: "{{ jellyseerr_name }}" # Networks-jellyseerr_docker_networks_alias: "{{ jellyseerr_name }}"-jellyseerr_docker_networks_default: []-jellyseerr_docker_networks_custom: []-jellyseerr_docker_networks: "{{ docker_networks_common- + lookup('vars', jellyseerr_name + '_docker_networks_default', default=jellyseerr_docker_networks_default)- + lookup('vars', jellyseerr_name + '_docker_networks_custom', default=jellyseerr_docker_networks_custom) }}"--# Capabilities-jellyseerr_docker_capabilities_default: []-jellyseerr_docker_capabilities_custom: []-jellyseerr_docker_capabilities: "{{ lookup('vars', jellyseerr_name + '_docker_capabilities_default', default=jellyseerr_docker_capabilities_default)- + lookup('vars', jellyseerr_name + '_docker_capabilities_custom', default=jellyseerr_docker_capabilities_custom) }}"--# Security Opts-jellyseerr_docker_security_opts_default: []-jellyseerr_docker_security_opts_custom: []-jellyseerr_docker_security_opts: "{{ lookup('vars', jellyseerr_name + '_docker_security_opts_default', default=jellyseerr_docker_security_opts_default)- + lookup('vars', jellyseerr_name + '_docker_security_opts_custom', default=jellyseerr_docker_security_opts_custom) }}"+jellyseerr_role_docker_networks_alias: "{{ jellyseerr_name }}"+jellyseerr_role_docker_networks_default: []+jellyseerr_role_docker_networks_custom: []+jellyseerr_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='jellyseerr')+ + lookup('role_var', '_docker_networks_custom', role='jellyseerr') }}" # Restart Policy-jellyseerr_docker_restart_policy: unless-stopped+jellyseerr_role_docker_restart_policy: unless-stopped # State-jellyseerr_docker_state: started+jellyseerr_role_docker_state: started # User-jellyseerr_docker_user: "{{ uid }}:{{ gid }}"+jellyseerr_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/jellyseerr/tasks/main2.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/jellystat/defaults/main.yml
@@ -17,39 +17,50 @@ # Settings ################################ -jellystat_postgres_name: "{{ jellystat_name }}-postgres"-jellystat_postgres_docker_env_db: "jfstat"-jellystat_postgres_docker_image_tag: "15.2-alpine"-jellystat_postgres_docker_image_repo: "postgres"+jellystat_role_postgres_deploy: true+jellystat_role_postgres_name: "{{ jellystat_name }}-postgres"+jellystat_role_postgres_user: "{{ postgres_role_docker_env_user }}"+jellystat_role_postgres_password: "{{ postgres_role_docker_env_password }}"+jellystat_role_postgres_docker_env_db: "jfstat"+jellystat_role_postgres_docker_image_tag: "15.2-alpine"+jellystat_role_postgres_docker_image_repo: "postgres"+jellystat_role_postgres_docker_healthcheck:+ test: ["CMD-SHELL", "pg_isready -d {{ lookup('role_var', '_postgres_docker_env_db', role='jellystat') }} -U {{ postgres_role_docker_env_user }}"]+ start_period: 20s+ interval: 30s+ retries: 5+ timeout: 5s+jellystat_role_postgres_paths_folder: "{{ jellystat_name }}"+jellystat_role_postgres_paths_location: "{{ server_appdata_path }}/{{ jellystat_role_postgres_paths_folder }}/postgres" ################################ # Paths ################################ -jellystat_paths_folder: "{{ jellystat_name }}"-jellystat_paths_location: "{{ server_appdata_path }}/{{ jellystat_paths_folder }}"-jellystat_paths_jwt_secret_file: "{{ jellystat_paths_location }}/jwt_secret.txt"-jellystat_paths_folders_list:- - "{{ jellystat_paths_location }}"+jellystat_role_paths_folder: "{{ jellystat_name }}"+jellystat_role_paths_location: "{{ server_appdata_path }}/{{ jellystat_role_paths_folder }}"+jellystat_role_paths_jwt_secret_file: "{{ jellystat_role_paths_location }}/jwt_secret.txt"+jellystat_role_paths_folders_list:+ - "{{ jellystat_role_paths_location }}" ################################ # Web ################################ -jellystat_web_subdomain: "{{ jellystat_name }}"-jellystat_web_domain: "{{ user.domain }}"-jellystat_web_port: "3000"-jellystat_web_url: "{{ 'https://' + (lookup('vars', jellystat_name + '_web_subdomain', default=jellystat_web_subdomain) + '.' + lookup('vars', jellystat_name + '_web_domain', default=jellystat_web_domain)- if (lookup('vars', jellystat_name + '_web_subdomain', default=jellystat_web_subdomain) | length > 0)- else lookup('vars', jellystat_name + '_web_domain', default=jellystat_web_domain)) }}"+jellystat_role_web_subdomain: "{{ jellystat_name }}"+jellystat_role_web_domain: "{{ user.domain }}"+jellystat_role_web_port: "3000"+jellystat_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='jellystat') + '.' + lookup('role_var', '_web_domain', role='jellystat')+ if (lookup('role_var', '_web_subdomain', role='jellystat') | length > 0)+ else lookup('role_var', '_web_domain', role='jellystat')) }}" ################################ # DNS ################################ -jellystat_dns_record: "{{ lookup('vars', jellystat_name + '_web_subdomain', default=jellystat_web_subdomain) }}"-jellystat_dns_zone: "{{ lookup('vars', jellystat_name + '_web_domain', default=jellystat_web_domain) }}"-jellystat_dns_proxy: "{{ dns.proxied }}"+jellystat_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='jellystat') }}"+jellystat_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='jellystat') }}"+jellystat_role_dns_proxy: "{{ dns_proxied }}" ################################ # Settings@@ -62,112 +73,63 @@ # Traefik ################################ -jellystat_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-jellystat_traefik_middleware_default: "{{ traefik_default_middleware }}"-jellystat_traefik_middleware_custom: ""-jellystat_traefik_certresolver: "{{ traefik_default_certresolver }}"-jellystat_traefik_enabled: true-jellystat_traefik_api_enabled: false-jellystat_traefik_api_endpoint: ""+jellystat_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+jellystat_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+jellystat_role_traefik_middleware_custom: ""+jellystat_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+jellystat_role_traefik_enabled: true+jellystat_role_traefik_api_enabled: false+jellystat_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-jellystat_docker_container: "{{ jellystat_name }}"+jellystat_role_docker_container: "{{ jellystat_name }}" # Image-jellystat_docker_image_pull: true-jellystat_docker_image_repo: "cyfershepard/jellystat"-jellystat_docker_image_tag: "latest"-jellystat_docker_image: "{{ lookup('vars', jellystat_name + '_docker_image_repo', default=jellystat_docker_image_repo)- + ':' + lookup('vars', jellystat_name + '_docker_image_tag', default=jellystat_docker_image_tag) }}"--# Ports-jellystat_docker_ports_defaults: []-jellystat_docker_ports_custom: []-jellystat_docker_ports: "{{ lookup('vars', jellystat_name + '_docker_ports_defaults', default=jellystat_docker_ports_defaults)- + lookup('vars', jellystat_name + '_docker_ports_custom', default=jellystat_docker_ports_custom) }}"+jellystat_role_docker_image_pull: true+jellystat_role_docker_image_repo: "cyfershepard/jellystat"+jellystat_role_docker_image_tag: "latest"+jellystat_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='jellystat') }}:{{ lookup('role_var', '_docker_image_tag', role='jellystat') }}" # Envs-jellystat_docker_envs_default:- POSTGRES_USER: "{{ postgres_docker_env_user }}"- POSTGRES_PASSWORD: "{{ postgres_docker_env_password }}"- POSTGRES_IP: "{{ jellystat_postgres_name }}"+jellystat_role_docker_envs_default:+ POSTGRES_USER: "{{ lookup('role_var', '_postgres_user', role='jellystat') }}"+ POSTGRES_PASSWORD: "{{ lookup('role_var', '_postgres_password', role='jellystat') }}"+ POSTGRES_IP: "{{ lookup('role_var', '_postgres_name', role='jellystat') }}" POSTGRES_PORT: "5432" JWT_SECRET: "{{ jwt_token.stdout }}"-jellystat_docker_envs_custom: {}-jellystat_docker_envs: "{{ lookup('vars', jellystat_name + '_docker_envs_default', default=jellystat_docker_envs_default)- | combine(lookup('vars', jellystat_name + '_docker_envs_custom', default=jellystat_docker_envs_custom)) }}"--# Commands-jellystat_docker_commands_default: []-jellystat_docker_commands_custom: []-jellystat_docker_commands: "{{ lookup('vars', jellystat_name + '_docker_commands_default', default=jellystat_docker_commands_default)- + lookup('vars', jellystat_name + '_docker_commands_custom', default=jellystat_docker_commands_custom) }}"+jellystat_role_docker_envs_custom: {}+jellystat_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='jellystat')+ | combine(lookup('role_var', '_docker_envs_custom', role='jellystat')) }}" # Volumes-jellystat_docker_volumes_default:- - "{{ jellystat_paths_location }}:/app/backend/backup-data"-jellystat_docker_volumes_custom: []-jellystat_docker_volumes: "{{ lookup('vars', jellystat_name + '_docker_volumes_default', default=jellystat_docker_volumes_default)- + lookup('vars', jellystat_name + '_docker_volumes_custom', default=jellystat_docker_volumes_custom) }}"--# Devices-jellystat_docker_devices_default: []-jellystat_docker_devices_custom: []-jellystat_docker_devices: "{{ lookup('vars', jellystat_name + '_docker_devices_default', default=jellystat_docker_devices_default)- + lookup('vars', jellystat_name + '_docker_devices_custom', default=jellystat_docker_devices_custom) }}"--# Hosts-jellystat_docker_hosts_default: {}-jellystat_docker_hosts_custom: {}-jellystat_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', jellystat_name + '_docker_hosts_default', default=jellystat_docker_hosts_default))- | combine(lookup('vars', jellystat_name + '_docker_hosts_custom', default=jellystat_docker_hosts_custom)) }}"--# Labels-jellystat_docker_labels_default: {}-jellystat_docker_labels_custom: {}-jellystat_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', jellystat_name + '_docker_labels_default', default=jellystat_docker_labels_default))- | combine(lookup('vars', jellystat_name + '_docker_labels_custom', default=jellystat_docker_labels_custom)) }}"+jellystat_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='jellystat') }}:/app/backend/backup-data"+jellystat_role_docker_volumes_custom: []+jellystat_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='jellystat')+ + lookup('role_var', '_docker_volumes_custom', role='jellystat') }}" # Hostname-jellystat_docker_hostname: "{{ jellystat_name }}"--# Network Mode-jellystat_docker_network_mode_default: "{{ docker_networks_name_common }}"-jellystat_docker_network_mode: "{{ lookup('vars', jellystat_name + '_docker_network_mode_default', default=jellystat_docker_network_mode_default) }}"+jellystat_role_docker_hostname: "{{ jellystat_name }}" # Networks-jellystat_docker_networks_alias: "{{ jellystat_name }}"-jellystat_docker_networks_default: []-jellystat_docker_networks_custom: []-jellystat_docker_networks: "{{ docker_networks_common- + lookup('vars', jellystat_name + '_docker_networks_default', default=jellystat_docker_networks_default)- + lookup('vars', jellystat_name + '_docker_networks_custom', default=jellystat_docker_networks_custom) }}"--# Capabilities-jellystat_docker_capabilities_default: []-jellystat_docker_capabilities_custom: []-jellystat_docker_capabilities: "{{ lookup('vars', jellystat_name + '_docker_capabilities_default', default=jellystat_docker_capabilities_default)- + lookup('vars', jellystat_name + '_docker_capabilities_custom', default=jellystat_docker_capabilities_custom) }}"--# Security Opts-jellystat_docker_security_opts_default: []-jellystat_docker_security_opts_custom: []-jellystat_docker_security_opts: "{{ lookup('vars', jellystat_name + '_docker_security_opts_default', default=jellystat_docker_security_opts_default)- + lookup('vars', jellystat_name + '_docker_security_opts_custom', default=jellystat_docker_security_opts_custom) }}"+jellystat_role_docker_networks_alias: "{{ jellystat_name }}"+jellystat_role_docker_networks_default: []+jellystat_role_docker_networks_custom: []+jellystat_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='jellystat')+ + lookup('role_var', '_docker_networks_custom', role='jellystat') }}" # Restart Policy-jellystat_docker_restart_policy: unless-stopped+jellystat_role_docker_restart_policy: unless-stopped # State-jellystat_docker_state: started+jellystat_role_docker_state: started # Dependencies-jellystat_depends_on: "{{ jellystat_postgres_name }}"-jellystat_depends_on_delay: "0"-jellystat_depends_on_healthchecks: "false"+jellystat_role_depends_on: "{{ lookup('role_var', '_postgres_name', role='jellystat') }}"+jellystat_role_depends_on_delay: "0"+jellystat_role_depends_on_healthchecks: "false"
modified
roles/jellystat/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -22,7 +22,7 @@ - name: Check if JWT secret file exists ansible.builtin.stat:- path: "{{ jellystat_paths_jwt_secret_file }}"+ path: "{{ lookup('role_var', '_paths_jwt_secret_file', role='jellystat') }}" register: jwt_file - name: Generate JWT Token Secret@@ -33,25 +33,29 @@ - name: Store JWT Token Secret in a file ansible.builtin.copy: content: "{{ jwt_secret.stdout }}"- dest: "{{ jellystat_paths_jwt_secret_file }}"+ dest: "{{ lookup('role_var', '_paths_jwt_secret_file', role='jellystat') }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664" when: not jwt_file.stat.exists - name: Read JWT Token Secret from file- ansible.builtin.shell: cat "{{ jellystat_paths_jwt_secret_file }}"+ ansible.builtin.shell: cat "{{ lookup('role_var', '_paths_jwt_secret_file', role='jellystat') }}" register: jwt_token- changed_when: False+ changed_when: false -- name: PostgreSQL Role+- name: "Import Postgres Role" ansible.builtin.include_role: name: postgres vars:- postgres_instances: ["{{ jellystat_postgres_name }}"]- postgres_docker_env_db: "{{ jellystat_postgres_docker_env_db }}"- postgres_docker_image_tag: "{{ jellystat_postgres_docker_image_tag }}"- postgres_docker_image_repo: "{{ jellystat_postgres_docker_image_repo }}"+ postgres_instances: ["{{ lookup('role_var', '_postgres_name', role='jellystat') }}"]+ postgres_role_docker_image_tag: "{{ lookup('role_var', '_postgres_docker_image_tag', role='jellystat') }}"+ postgres_role_docker_image_repo: "{{ lookup('role_var', '_postgres_docker_image_repo', role='jellystat') }}"+ postgres_role_paths_folder: "{{ lookup('role_var', '_postgres_paths_folder', role='jellystat') }}"+ postgres_role_paths_location: "{{ lookup('role_var', '_postgres_paths_location', role='jellystat') }}"+ postgres_role_docker_env_db: "{{ lookup('role_var', '_postgres_docker_env_db', role='jellystat') }}"+ postgres_role_docker_healthcheck: "{{ lookup('role_var', '_postgres_docker_healthcheck', role='jellystat') }}"+ when: lookup('role_var', '_postgres_deploy', role='jellystat') - name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"
modified
roles/joplin/defaults/main.yml
@@ -17,149 +17,111 @@ # Settings ################################ -joplin_postgres_name: "{{ joplin_name }}-postgres"-joplin_postgres_docker_image_tag: "13"-joplin_postgres_docker_image_repo: "postgres"-joplin_postgres_docker_env_db: "joplin"-joplin_postgres_docker_env_user: "joplin"-joplin_postgres_docker_env_password: "joplin"-joplin_postgres_paths_folder: "{{ joplin_name }}"+joplin_role_postgres_deploy: true+joplin_role_postgres_name: "{{ joplin_name }}-postgres"+joplin_role_postgres_user: "joplin"+joplin_role_postgres_password: "joplin"+joplin_role_postgres_docker_env_db: "joplin"+joplin_role_postgres_docker_image_tag: "13"+joplin_role_postgres_docker_image_repo: "postgres"+joplin_role_postgres_docker_healthcheck:+ test: ["CMD-SHELL", "pg_isready -d {{ lookup('role_var', '_postgres_docker_env_db', role='joplin') }} -U {{ lookup('role_var', '_postgres_user', role='joplin') }}"]+ start_period: 20s+ interval: 30s+ retries: 5+ timeout: 5s+joplin_role_postgres_paths_folder: "{{ joplin_name }}"+joplin_role_postgres_paths_location: "{{ server_appdata_path }}/{{ joplin_role_postgres_paths_folder }}/postgres" ################################ # Paths ################################ -joplin_paths_folder: "{{ joplin_name }}"-joplin_paths_location: "{{ server_appdata_path }}/{{ joplin_paths_folder }}"-joplin_paths_folders_list:- - "{{ joplin_paths_location }}"+joplin_role_paths_folder: "{{ joplin_name }}"+joplin_role_paths_location: "{{ server_appdata_path }}/{{ joplin_role_paths_folder }}"+joplin_role_paths_folders_list:+ - "{{ joplin_role_paths_location }}" ################################ # Web ################################ -joplin_web_subdomain: "{{ joplin_name }}"-joplin_web_domain: "{{ user.domain }}"-joplin_web_port: "22300"-joplin_web_url: "{{ 'https://' + (joplin_web_subdomain + '.' + joplin_web_domain- if (joplin_web_subdomain | length > 0)- else joplin_web_domain) }}"+joplin_role_web_subdomain: "{{ joplin_name }}"+joplin_role_web_domain: "{{ user.domain }}"+joplin_role_web_port: "22300"+joplin_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='joplin') + '.' + lookup('role_var', '_web_domain', role='joplin')+ if (lookup('role_var', '_web_subdomain', role='joplin') | length > 0)+ else lookup('role_var', '_web_domain', role='joplin')) }}" ################################ # DNS ################################ -joplin_dns_record: "{{ joplin_web_subdomain }}"-joplin_dns_zone: "{{ joplin_web_domain }}"-joplin_dns_proxy: "{{ dns.proxied }}"+joplin_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='joplin') }}"+joplin_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='joplin') }}"+joplin_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -joplin_traefik_sso_middleware: ""-joplin_traefik_middleware_default: "{{ traefik_default_middleware }}"-joplin_traefik_middleware_custom: ""-joplin_traefik_certresolver: "{{ traefik_default_certresolver }}"-joplin_traefik_enabled: true-joplin_traefik_api_enabled: false-joplin_traefik_api_endpoint: ""+joplin_role_traefik_sso_middleware: ""+joplin_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+joplin_role_traefik_middleware_custom: ""+joplin_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+joplin_role_traefik_enabled: true+joplin_role_traefik_api_enabled: false+joplin_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-joplin_docker_container: "{{ joplin_name }}"+joplin_role_docker_container: "{{ joplin_name }}" # Image-joplin_docker_image_pull: true-joplin_docker_image_tag: "latest"-joplin_docker_image: "joplin/server:{{ joplin_docker_image_tag }}"--# Ports-joplin_docker_ports_defaults: []-joplin_docker_ports_custom: []-joplin_docker_ports: "{{ joplin_docker_ports_defaults- + joplin_docker_ports_custom }}"+joplin_role_docker_image_pull: true+joplin_role_docker_image_repo: "joplin/server"+joplin_role_docker_image_tag: "latest"+joplin_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='joplin') }}:{{ lookup('role_var', '_docker_image_tag', role='joplin') }}" # Envs-joplin_docker_envs_default:+joplin_role_docker_envs_default: TZ: "{{ tz }}"- APP_BASE_URL: "{{ joplin_web_url }}"+ APP_BASE_URL: "{{ lookup('role_var', '_web_url', role='joplin') }}" APP_PORT: "22300"- POSTGRES_PASSWORD: "{{ joplin_postgres_docker_env_password }}"- POSTGRES_DATABASE: "{{ joplin_postgres_docker_env_db }}"- POSTGRES_USER: "{{ joplin_postgres_docker_env_user }}"+ POSTGRES_PASSWORD: "{{ lookup('role_var', '_postgres_password', role='joplin') }}"+ POSTGRES_DATABASE: "{{ lookup('role_var', '_postgres_docker_env_db', role='joplin') }}"+ POSTGRES_USER: "{{ lookup('role_var', '_postgres_user', role='joplin') }}" POSTGRES_PORT: "5432"- POSTGRES_HOST: "{{ joplin_postgres_name }}"+ POSTGRES_HOST: "{{ lookup('role_var', '_postgres_name', role='joplin') }}" DB_CLIENT: "pg"-joplin_docker_envs_custom: {}-joplin_docker_envs: "{{ joplin_docker_envs_default- | combine(joplin_docker_envs_custom) }}"--# Commands-joplin_docker_commands_default: []-joplin_docker_commands_custom: []-joplin_docker_commands: "{{ joplin_docker_commands_default- + joplin_docker_commands_custom }}"--# Volumes-joplin_docker_volumes_default: []-joplin_docker_volumes_custom: []-joplin_docker_volumes: "{{ joplin_docker_volumes_default- + joplin_docker_volumes_custom }}"--# Devices-joplin_docker_devices_default: []-joplin_docker_devices_custom: []-joplin_docker_devices: "{{ joplin_docker_devices_default- + joplin_docker_devices_custom }}"--# Hosts-joplin_docker_hosts_default: {}-joplin_docker_hosts_custom: {}-joplin_docker_hosts: "{{ docker_hosts_common- | combine(joplin_docker_hosts_default)- | combine(joplin_docker_hosts_custom) }}"--# Labels-joplin_docker_labels_default: {}-joplin_docker_labels_custom: {}-joplin_docker_labels: "{{ docker_labels_common- | combine(joplin_docker_labels_default)- | combine(joplin_docker_labels_custom) }}"+joplin_role_docker_envs_custom: {}+joplin_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='joplin')+ | combine(lookup('role_var', '_docker_envs_custom', role='joplin')) }}" # Hostname-joplin_docker_hostname: "{{ joplin_name }}"+joplin_role_docker_hostname: "{{ joplin_name }}" # Networks-joplin_docker_networks_alias: "{{ joplin_name }}"-joplin_docker_networks_default: []-joplin_docker_networks_custom: []-joplin_docker_networks: "{{ docker_networks_common- + joplin_docker_networks_default- + joplin_docker_networks_custom }}"--# Capabilities-joplin_docker_capabilities_default: []-joplin_docker_capabilities_custom: []-joplin_docker_capabilities: "{{ joplin_docker_capabilities_default- + joplin_docker_capabilities_custom }}"--# Security Opts-joplin_docker_security_opts_default: []-joplin_docker_security_opts_custom: []-joplin_docker_security_opts: "{{ joplin_docker_security_opts_default- + joplin_docker_security_opts_custom }}"+joplin_role_docker_networks_alias: "{{ joplin_name }}"+joplin_role_docker_networks_default: []+joplin_role_docker_networks_custom: []+joplin_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='joplin')+ + lookup('role_var', '_docker_networks_custom', role='joplin') }}" # Restart Policy-joplin_docker_restart_policy: unless-stopped+joplin_role_docker_restart_policy: unless-stopped # State-joplin_docker_state: started+joplin_role_docker_state: started # Dependencies-joplin_depends_on: "{{ joplin_postgres_name }}"-joplin_depends_on_delay: "0"-joplin_depends_on_healthchecks: "false"+joplin_role_depends_on: "{{ lookup('role_var', '_postgres_name', role='joplin') }}"+joplin_role_depends_on_delay: "0"+joplin_role_depends_on_healthchecks: "false"++# Create Docker Container Timeout+joplin_docker_create_timeout: 300
modified
roles/joplin/tasks/main.yml
@@ -12,25 +12,27 @@ vars: var_prefix: "{{ joplin_name }}_postgres" --- name: PostgreSQL Role+- name: "Import Postgres Role" ansible.builtin.include_role: name: postgres vars:- postgres_instances: ["{{ joplin_postgres_name }}"]- postgres_docker_image_tag: "{{ joplin_postgres_docker_image_tag }}"- postgres_docker_image_repo: "{{ joplin_postgres_docker_image_repo }}"- postgres_docker_env_db: "{{ joplin_postgres_docker_env_db }}"- postgres_docker_env_user: "{{ joplin_postgres_docker_env_user }}"- postgres_docker_env_password: "{{ joplin_postgres_docker_env_password }}"- postgres_paths_folder: "{{ joplin_postgres_paths_folder }}"+ postgres_instances: ["{{ lookup('role_var', '_postgres_name', role='joplin') }}"]+ postgres_role_docker_image_tag: "{{ lookup('role_var', '_postgres_docker_image_tag', role='joplin') }}"+ postgres_role_docker_image_repo: "{{ lookup('role_var', '_postgres_docker_image_repo', role='joplin') }}"+ postgres_role_paths_folder: "{{ lookup('role_var', '_postgres_paths_folder', role='joplin') }}"+ postgres_role_paths_location: "{{ lookup('role_var', '_postgres_paths_location', role='joplin') }}"+ postgres_role_docker_env_db: "{{ lookup('role_var', '_postgres_docker_env_db', role='joplin') }}"+ postgres_role_docker_healthcheck: "{{ lookup('role_var', '_postgres_docker_healthcheck', role='joplin') }}"+ postgres_role_docker_env_user: "{{ lookup('role_var', '_postgres_user', role='joplin') }}"+ postgres_role_docker_env_password: "{{ lookup('role_var', '_postgres_password', role='joplin') }}"+ when: lookup('role_var', '_postgres_deploy', role='joplin') - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/karakeep/defaults/main.yml
@@ -14,71 +14,69 @@ karakeep_name: karakeep ################################+# Container Dependant Variables+################################++karakeep_meili_name: "meilisearch"+karakeep_meili_port: "7700"+karakeep_chrome_name: "chrome"+karakeep_chrome_port: "9222"++################################ # Paths ################################ -karakeep_paths_folder: "{{ karakeep_name }}"-karakeep_paths_location: "{{ server_appdata_path }}/{{ karakeep_paths_folder }}"-karakeep_paths_folders_list:- - "{{ karakeep_paths_location }}"+karakeep_role_paths_folder: "{{ karakeep_name }}"+karakeep_role_paths_location: "{{ server_appdata_path }}/{{ karakeep_role_paths_folder }}"+karakeep_role_paths_folders_list:+ - "{{ karakeep_role_paths_location }}" ################################ # Web ################################ -karakeep_web_subdomain: "{{ karakeep_name }}"-karakeep_web_domain: "{{ user.domain }}"-karakeep_web_port: "3000"-karakeep_web_url: "{{ 'https://' + (karakeep_web_subdomain + '.' + karakeep_web_domain- if (karakeep_web_subdomain | length > 0)- else karakeep_web_domain) }}"+karakeep_role_web_subdomain: "{{ karakeep_name }}"+karakeep_role_web_domain: "{{ user.domain }}"+karakeep_role_web_port: "3000"+karakeep_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='karakeep') + '.' + lookup('role_var', '_web_domain', role='karakeep')+ if (lookup('role_var', '_web_subdomain', role='karakeep') | length > 0)+ else lookup('role_var', '_web_domain', role='karakeep')) }}" ################################ # DNS ################################ -karakeep_dns_record: "{{ karakeep_web_subdomain }}"-karakeep_dns_zone: "{{ karakeep_web_domain }}"-karakeep_dns_proxy: "{{ dns.proxied }}"+karakeep_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='karakeep') }}"+karakeep_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='karakeep') }}"+karakeep_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -karakeep_traefik_sso_middleware: ""-karakeep_traefik_middleware_default: "{{ traefik_default_middleware }}"-karakeep_traefik_middleware_custom: ""-karakeep_traefik_certresolver: "{{ traefik_default_certresolver }}"-karakeep_traefik_enabled: true-karakeep_traefik_api_enabled: false-karakeep_traefik_api_endpoint: ""+karakeep_role_traefik_sso_middleware: ""+karakeep_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+karakeep_role_traefik_middleware_custom: ""+karakeep_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+karakeep_role_traefik_enabled: true+karakeep_role_traefik_api_enabled: false+karakeep_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-karakeep_docker_container: "{{ karakeep_name }}"--# Dependant Container Settings-karakeep_meili_name: "meilisearch"-karakeep_meili_port: "7700"-karakeep_chrome_name: "chrome"-karakeep_chrome_port: "9222"+karakeep_role_docker_container: "{{ karakeep_name }}" # Image-karakeep_docker_image_pull: true-karakeep_docker_image: "ghcr.io/karakeep-app/karakeep"-karakeep_docker_image_tag: "release"--# Ports-karakeep_docker_ports_defaults: []-karakeep_docker_ports_custom: []-karakeep_docker_ports: "{{ karakeep_docker_ports_defaults- + karakeep_docker_ports_custom }}"+karakeep_role_docker_image_pull: true+karakeep_role_docker_image_repo: "ghcr.io/karakeep-app/karakeep"+karakeep_role_docker_image_tag: "release"+karakeep_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='karakeep') }}:{{ lookup('role_var', '_docker_image_tag', role='karakeep') }}" # Envs-karakeep_docker_envs_default:+karakeep_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"@@ -87,70 +85,32 @@ BROWSER_WEB_URL: "{{ 'http://' + karakeep_chrome_name + ':' + karakeep_chrome_port }}" NEXTAUTH_SECRET: "{{ karakeep_saltbox_facts.facts.secret_key }}" MEILI_MASTER_KEY: "{{ meilisearch_saltbox_facts.facts.secret_key }}"- NEXTAUTH_URL: "{{ karakeep_web_url }}"+ NEXTAUTH_URL: "{{ lookup('role_var', '_web_url', role='karakeep') }}" DATA_DIR: "/data"-karakeep_docker_envs_custom: {}-karakeep_docker_envs: "{{ karakeep_docker_envs_default- | combine(karakeep_docker_envs_custom) }}"--# Commands-karakeep_docker_commands_default: []-karakeep_docker_commands_custom: []-karakeep_docker_commands: "{{ karakeep_docker_commands_default- + karakeep_docker_commands_custom }}"+karakeep_role_docker_envs_custom: {}+karakeep_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='karakeep')+ | combine(lookup('role_var', '_docker_envs_custom', role='karakeep')) }}" # Volumes-karakeep_docker_volumes_default:- - "{{ karakeep_paths_location }}/data:/data"-karakeep_docker_volumes_custom: []-karakeep_docker_volumes: "{{ karakeep_docker_volumes_default- + karakeep_docker_volumes_custom }}"--# Devices-karakeep_docker_devices_default: []-karakeep_docker_devices_custom: []-karakeep_docker_devices: "{{ karakeep_docker_devices_default- + karakeep_docker_devices_custom }}"--# Hosts-karakeep_docker_hosts_default: {}-karakeep_docker_hosts_custom: {}-karakeep_docker_hosts: "{{ docker_hosts_common- | combine(karakeep_docker_hosts_default)- | combine(karakeep_docker_hosts_custom) }}"--# Labels-karakeep_docker_labels_default: {}-karakeep_docker_labels_custom: {}-karakeep_docker_labels: "{{ docker_labels_common- | combine(karakeep_docker_labels_default)- | combine(karakeep_docker_labels_custom) }}"+karakeep_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='karakeep') }}/data:/data"+karakeep_role_docker_volumes_custom: []+karakeep_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='karakeep')+ + lookup('role_var', '_docker_volumes_custom', role='karakeep') }}" # Hostname-karakeep_docker_hostname: "{{ karakeep_name }}"+karakeep_role_docker_hostname: "{{ karakeep_name }}" # Networks-karakeep_docker_networks_alias: "{{ karakeep_name }}"-karakeep_docker_networks_default: []-karakeep_docker_networks_custom: []-karakeep_docker_networks: "{{ docker_networks_common- + karakeep_docker_networks_default- + karakeep_docker_networks_custom }}"--# Capabilities-karakeep_docker_capabilities_default: []-karakeep_docker_capabilities_custom: []-karakeep_docker_capabilities: "{{ karakeep_docker_capabilities_default- + karakeep_docker_capabilities_custom }}"--# Security Opts-karakeep_docker_security_opts_default: []-karakeep_docker_security_opts_custom: []-karakeep_docker_security_opts: "{{ karakeep_docker_security_opts_default- + karakeep_docker_security_opts_custom }}"+karakeep_role_docker_networks_alias: "{{ karakeep_name }}"+karakeep_role_docker_networks_default: []+karakeep_role_docker_networks_custom: []+karakeep_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='karakeep')+ + lookup('role_var', '_docker_networks_custom', role='karakeep') }}" # Restart Policy-karakeep_docker_restart_policy: unless-stopped+karakeep_role_docker_restart_policy: unless-stopped # State-karakeep_docker_state: started+karakeep_role_docker_state: started
modified
roles/karakeep/tasks/main.yml
@@ -16,27 +16,27 @@ - name: Check if legacy folder exists ansible.builtin.stat:- path: "/opt/hoarder"+ path: "{{ server_appdata_path }}/hoarder" register: karakeep_legacy_folder - name: Check if new folder exists ansible.builtin.stat:- path: "/opt/karakeep"+ path: "{{ server_appdata_path }}/karakeep" register: karakeep_new_folder - name: Migrate karakeep directory migrate_folder:- legacy_path: /opt/hoarder- new_path: "{{ karakeep_paths_location }}"+ legacy_path: "{{ server_appdata_path }}/hoarder"+ new_path: "{{ karakeep_role_paths_location }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: '0775' recurse: false when: karakeep_legacy_folder.stat.exists and not karakeep_new_folder.stat.exists -- name: Check if '/opt/saltbox/hoarder.ini' folder exists+- name: Check if '{{ server_appdata_path }}/saltbox/hoarder.ini' folder exists ansible.builtin.stat:- path: "/opt/saltbox/hoarder.ini"+ path: "{{ server_appdata_path }}/saltbox/hoarder.ini" register: hoarder_fact_stat - name: Migration Block@@ -50,6 +50,7 @@ secret_key: "" owner: "{{ user.name }}" group: "{{ user.name }}"+ base_path: "{{ server_appdata_path }}" register: hoarder_saltbox_facts - name: "Save Karakeep Saltbox facts"@@ -60,6 +61,7 @@ secret_key: "{{ hoarder_saltbox_facts.facts.secret_key }}" owner: "{{ user.name }}" group: "{{ user.name }}"+ base_path: "{{ server_appdata_path }}" - name: "Delete legacy Hoarder Saltbox facts" saltbox_facts:@@ -67,6 +69,7 @@ instance: "hoarder" delete_type: "role" method: "delete"+ base_path: "{{ server_appdata_path }}" - name: "Save Karakeep Saltbox Facts" saltbox_facts:@@ -76,6 +79,7 @@ secret_key: "{{ lookup('ansible.builtin.password', '/dev/null', chars=['ascii_letters', 'digits'], length=36) }}" owner: "{{ user.name }}" group: "{{ user.name }}"+ base_path: "{{ server_appdata_path }}" register: karakeep_saltbox_facts - name: Chrome role@@ -89,9 +93,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/kavita/defaults/main.yml
@@ -17,125 +17,82 @@ # Paths ################################ -kavita_paths_folder: "{{ kavita_name }}"-kavita_paths_location: "{{ server_appdata_path }}/{{ kavita_paths_folder }}"-kavita_paths_folders_list:- - "{{ kavita_paths_location }}"+kavita_role_paths_folder: "{{ kavita_name }}"+kavita_role_paths_location: "{{ server_appdata_path }}/{{ kavita_role_paths_folder }}"+kavita_role_paths_folders_list:+ - "{{ kavita_role_paths_location }}" ################################ # Web ################################ -kavita_web_subdomain: "{{ kavita_name }}"-kavita_web_domain: "{{ user.domain }}"-kavita_web_port: "5000"-kavita_web_url: "{{ 'https://' + (kavita_web_subdomain + '.' + kavita_web_domain- if (kavita_web_subdomain | length > 0)- else kavita_web_domain) }}"+kavita_role_web_subdomain: "{{ kavita_name }}"+kavita_role_web_domain: "{{ user.domain }}"+kavita_role_web_port: "5000"+kavita_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='kavita') + '.' + lookup('role_var', '_web_domain', role='kavita')+ if (lookup('role_var', '_web_subdomain', role='kavita') | length > 0)+ else lookup('role_var', '_web_domain', role='kavita')) }}" ################################ # DNS ################################ -kavita_dns_record: "{{ kavita_web_subdomain }}"-kavita_dns_zone: "{{ kavita_web_domain }}"-kavita_dns_proxy: "{{ dns.proxied }}"+kavita_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='kavita') }}"+kavita_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='kavita') }}"+kavita_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -kavita_traefik_sso_middleware: ""-kavita_traefik_middleware_default: "{{ traefik_default_middleware }}"-kavita_traefik_middleware_custom: ""-kavita_traefik_certresolver: "{{ traefik_default_certresolver }}"-kavita_traefik_enabled: true-kavita_traefik_api_enabled: false-kavita_traefik_api_endpoint: ""+kavita_role_traefik_sso_middleware: ""+kavita_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+kavita_role_traefik_middleware_custom: ""+kavita_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+kavita_role_traefik_enabled: true+kavita_role_traefik_api_enabled: false+kavita_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-kavita_docker_container: "{{ kavita_name }}"+kavita_role_docker_container: "{{ kavita_name }}" # Image-kavita_docker_image_pull: true-kavita_docker_image_tag: "latest"-kavita_docker_image: "jvmilazz0/kavita:{{ kavita_docker_image_tag }}"--# Ports-kavita_docker_ports_defaults: []-kavita_docker_ports_custom: []-kavita_docker_ports: "{{ kavita_docker_ports_defaults- + kavita_docker_ports_custom }}"+kavita_role_docker_image_pull: true+kavita_role_docker_image_repo: "jvmilazz0/kavita"+kavita_role_docker_image_tag: "latest"+kavita_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='kavita') }}:{{ lookup('role_var', '_docker_image_tag', role='kavita') }}" # Envs-kavita_docker_envs_default:+kavita_role_docker_envs_default: TZ: "{{ tz }}"-kavita_docker_envs_custom: {}-kavita_docker_envs: "{{ kavita_docker_envs_default- | combine(kavita_docker_envs_custom) }}"--# Commands-kavita_docker_commands_default: []-kavita_docker_commands_custom: []-kavita_docker_commands: "{{ kavita_docker_commands_default- + kavita_docker_commands_custom }}"+kavita_role_docker_envs_custom: {}+kavita_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='kavita')+ | combine(lookup('role_var', '_docker_envs_custom', role='kavita')) }}" # Volumes-kavita_docker_volumes_default:- - "{{ kavita_paths_location }}:/kavita/config"-kavita_docker_volumes_custom: []-kavita_docker_volumes: "{{ kavita_docker_volumes_default- + kavita_docker_volumes_custom }}"--# Devices-kavita_docker_devices_default: []-kavita_docker_devices_custom: []-kavita_docker_devices: "{{ kavita_docker_devices_default- + kavita_docker_devices_custom }}"--# Hosts-kavita_docker_hosts_default: {}-kavita_docker_hosts_custom: {}-kavita_docker_hosts: "{{ docker_hosts_common- | combine(kavita_docker_hosts_default)- | combine(kavita_docker_hosts_custom) }}"--# Labels-kavita_docker_labels_default: {}-kavita_docker_labels_custom: {}-kavita_docker_labels: "{{ docker_labels_common- | combine(kavita_docker_labels_default)- | combine(kavita_docker_labels_custom) }}"+kavita_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='kavita') }}:/kavita/config"+kavita_role_docker_volumes_custom: []+kavita_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='kavita')+ + lookup('role_var', '_docker_volumes_custom', role='kavita') }}" # Hostname-kavita_docker_hostname: "{{ kavita_name }}"+kavita_role_docker_hostname: "{{ kavita_name }}" # Networks-kavita_docker_networks_alias: "{{ kavita_name }}"-kavita_docker_networks_default: []-kavita_docker_networks_custom: []-kavita_docker_networks: "{{ docker_networks_common- + kavita_docker_networks_default- + kavita_docker_networks_custom }}"--# Capabilities-kavita_docker_capabilities_default: []-kavita_docker_capabilities_custom: []-kavita_docker_capabilities: "{{ kavita_docker_capabilities_default- + kavita_docker_capabilities_custom }}"--# Security Opts-kavita_docker_security_opts_default: []-kavita_docker_security_opts_custom: []-kavita_docker_security_opts: "{{ kavita_docker_security_opts_default- + kavita_docker_security_opts_custom }}"+kavita_role_docker_networks_alias: "{{ kavita_name }}"+kavita_role_docker_networks_default: []+kavita_role_docker_networks_custom: []+kavita_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='kavita')+ + lookup('role_var', '_docker_networks_custom', role='kavita') }}" # Restart Policy-kavita_docker_restart_policy: unless-stopped+kavita_role_docker_restart_policy: unless-stopped # State-kavita_docker_state: started+kavita_role_docker_state: started
modified
roles/kavita/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/kcptun_client/tasks/main.yml
@@ -22,18 +22,18 @@ owner: "{{ user.name }}" group: "{{ user.name }}" with_items:- - /opt/kcptun-client- - /opt/kcptun-client/config+ - "{{ server_appdata_path }}/kcptun-client"+ - "{{ server_appdata_path }}/kcptun-client/config" - name: "Check if kcptun-client config file exists" ansible.builtin.stat:- path: "/opt/kcptun-client/config/config.json"+ path: "{{ server_appdata_path }}/kcptun-client/config/config.json" register: kcptun_config - name: "Import config file if it doesnt exist" ansible.builtin.template: src: config.json.j2- dest: /opt/kcptun-client/config/config.json+ dest: "{{ server_appdata_path }}/kcptun-client/config/config.json" force: true owner: "{{ user.name }}" group: "{{ user.name }}"@@ -44,11 +44,11 @@ community.docker.docker_container: name: kcptun-client image: horjulf/kcptun:latest- pull: yes+ pull: true env: TZ: "{{ tz }}" volumes:- - "/opt/kcptun-client/config:/config"+ - "{{ server_appdata_path }}/kcptun-client/config:/config" command: "/bin/client -c /config/config.json" labels: "com.github.saltbox.saltbox_managed": "true"
modified
roles/kcptun_server/tasks/main.yml
@@ -22,18 +22,18 @@ owner: "{{ user.name }}" group: "{{ user.name }}" with_items:- - /opt/kcptun-server- - /opt/kcptun-server/config+ - "{{ server_appdata_path }}/kcptun-server"+ - "{{ server_appdata_path }}/kcptun-server/config" - name: "Check if kcptun-server config file exists" ansible.builtin.stat:- path: "/opt/kcptun-server/config/config.json"+ path: "{{ server_appdata_path }}/kcptun-server/config/config.json" register: kcptun_config - name: "Import config file if it doesnt exist" ansible.builtin.template: src: config.json.j2- dest: /opt/kcptun-server/config/config.json+ dest: "{{ server_appdata_path }}/kcptun-server/config/config.json" force: true owner: "{{ user.name }}" group: "{{ user.name }}"@@ -48,7 +48,7 @@ env: TZ: "{{ tz }}" volumes:- - "/opt/kcptun-server/config:/config"+ - "{{ server_appdata_path }}/kcptun-server/config:/config" command: "/bin/server -c /config/config.json" labels: "com.github.saltbox.saltbox_managed": "true"
modified
roles/kitana/defaults/main.yml
@@ -17,127 +17,90 @@ # Paths ################################ -kitana_paths_folder: "{{ kitana_name }}"-kitana_paths_location: "{{ server_appdata_path }}/{{ kitana_paths_folder }}"-kitana_paths_folders_list:- - "{{ kitana_paths_location }}"-kitana_paths_config_location: "{{ kitana_paths_location }}/config.yml"+kitana_role_paths_folder: "{{ kitana_name }}"+kitana_role_paths_location: "{{ server_appdata_path }}/{{ kitana_role_paths_folder }}"+kitana_role_paths_folders_list:+ - "{{ kitana_role_paths_location }}"+kitana_role_paths_config_location: "{{ kitana_role_paths_location }}/config.yml" ################################ # Web ################################ -kitana_web_subdomain: "{{ kitana_name }}"-kitana_web_domain: "{{ user.domain }}"-kitana_web_port: "31337"-kitana_web_url: "{{ 'https://' + (kitana_web_subdomain + '.' + kitana_web_domain- if (kitana_web_subdomain | length > 0)- else kitana_web_domain) }}"+kitana_role_web_subdomain: "{{ kitana_name }}"+kitana_role_web_domain: "{{ user.domain }}"+kitana_role_web_port: "31337"+kitana_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='kitana') + '.' + lookup('role_var', '_web_domain', role='kitana')+ if (lookup('role_var', '_web_subdomain', role='kitana') | length > 0)+ else lookup('role_var', '_web_domain', role='kitana')) }}" ################################ # DNS ################################ -kitana_dns_record: "{{ kitana_web_subdomain }}"-kitana_dns_zone: "{{ kitana_web_domain }}"-kitana_dns_proxy: "{{ dns.proxied }}"+kitana_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='kitana') }}"+kitana_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='kitana') }}"+kitana_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -kitana_traefik_sso_middleware: ""-kitana_traefik_middleware_default: "{{ traefik_default_middleware }}"-kitana_traefik_middleware_custom: ""-kitana_traefik_certresolver: "{{ traefik_default_certresolver }}"-kitana_traefik_enabled: true-kitana_traefik_api_enabled: false-kitana_traefik_api_endpoint: ""+kitana_role_traefik_sso_middleware: ""+kitana_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+kitana_role_traefik_middleware_custom: ""+kitana_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+kitana_role_traefik_enabled: true+kitana_role_traefik_api_enabled: false+kitana_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-kitana_docker_container: "{{ kitana_name }}"+kitana_role_docker_container: "{{ kitana_name }}" # Image-kitana_docker_image_pull: true-kitana_docker_image_tag: "latest"-kitana_docker_image: "pannal/kitana:{{ kitana_docker_image_tag }}"--# Ports-kitana_docker_ports_defaults: []-kitana_docker_ports_custom: []-kitana_docker_ports: "{{ kitana_docker_ports_defaults- + kitana_docker_ports_custom }}"+kitana_role_docker_image_pull: true+kitana_role_docker_image_repo: "pannal/kitana"+kitana_role_docker_image_tag: "latest"+kitana_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='kitana') }}:{{ lookup('role_var', '_docker_image_tag', role='kitana') }}" # Envs-kitana_docker_envs_default:+kitana_role_docker_envs_default: TZ: "{{ tz }}"-kitana_docker_envs_custom: {}-kitana_docker_envs: "{{ kitana_docker_envs_default- | combine(kitana_docker_envs_custom) }}"+kitana_role_docker_envs_custom: {}+kitana_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='kitana')+ | combine(lookup('role_var', '_docker_envs_custom', role='kitana')) }}" # Commands-kitana_docker_commands_default:+kitana_role_docker_commands_default: - "-P"-kitana_docker_commands_custom: []-kitana_docker_commands: "{{ kitana_docker_commands_default- + kitana_docker_commands_custom }}"+kitana_role_docker_commands_custom: []+kitana_role_docker_commands: "{{ lookup('role_var', '_docker_commands_default', role='kitana')+ + lookup('role_var', '_docker_commands_custom', role='kitana') }}" # Volumes-kitana_docker_volumes_default:- - "{{ kitana_paths_location }}:/app/data"-kitana_docker_volumes_custom: []-kitana_docker_volumes: "{{ kitana_docker_volumes_default- + kitana_docker_volumes_custom }}"--# Devices-kitana_docker_devices_default: []-kitana_docker_devices_custom: []-kitana_docker_devices: "{{ kitana_docker_devices_default- + kitana_docker_devices_custom }}"--# Hosts-kitana_docker_hosts_default: {}-kitana_docker_hosts_custom: {}-kitana_docker_hosts: "{{ docker_hosts_common- | combine(kitana_docker_hosts_default)- | combine(kitana_docker_hosts_custom) }}"--# Labels-kitana_docker_labels_default: {}-kitana_docker_labels_custom: {}-kitana_docker_labels: "{{ docker_labels_common- | combine(kitana_docker_labels_default)- | combine(kitana_docker_labels_custom) }}"+kitana_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='kitana') }}:/app/data"+kitana_role_docker_volumes_custom: []+kitana_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='kitana')+ + lookup('role_var', '_docker_volumes_custom', role='kitana') }}" # Hostname-kitana_docker_hostname: "{{ kitana_name }}"+kitana_role_docker_hostname: "{{ kitana_name }}" # Networks-kitana_docker_networks_alias: "{{ kitana_name }}"-kitana_docker_networks_default: []-kitana_docker_networks_custom: []-kitana_docker_networks: "{{ docker_networks_common- + kitana_docker_networks_default- + kitana_docker_networks_custom }}"--# Capabilities-kitana_docker_capabilities_default: []-kitana_docker_capabilities_custom: []-kitana_docker_capabilities: "{{ kitana_docker_capabilities_default- + kitana_docker_capabilities_custom }}"--# Security Opts-kitana_docker_security_opts_default: []-kitana_docker_security_opts_custom: []-kitana_docker_security_opts: "{{ kitana_docker_security_opts_default- + kitana_docker_security_opts_custom }}"+kitana_role_docker_networks_alias: "{{ kitana_name }}"+kitana_role_docker_networks_default: []+kitana_role_docker_networks_custom: []+kitana_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='kitana')+ + lookup('role_var', '_docker_networks_custom', role='kitana') }}" # Restart Policy-kitana_docker_restart_policy: unless-stopped+kitana_role_docker_restart_policy: unless-stopped # State-kitana_docker_state: started+kitana_role_docker_state: started
modified
roles/kitana/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/koel/defaults/main.yml
@@ -17,145 +17,102 @@ # Paths ################################ -koel_paths_folder: "{{ koel_name }}"-koel_paths_location: "{{ server_appdata_path }}/{{ koel_paths_folder }}"-koel_paths_folders_list:- - "{{ koel_paths_location }}"- - "{{ koel_paths_location }}/app"- - "{{ koel_paths_location }}/app/covers"- - "{{ koel_paths_location }}/app/search-indexes"+koel_role_paths_folder: "{{ koel_name }}"+koel_role_paths_location: "{{ server_appdata_path }}/{{ koel_role_paths_folder }}"+koel_role_paths_folders_list:+ - "{{ koel_role_paths_location }}"+ - "{{ koel_role_paths_location }}/app"+ - "{{ koel_role_paths_location }}/app/covers"+ - "{{ koel_role_paths_location }}/app/search-indexes" - "/mnt/unionfs/Media/Music" ################################ # Web ################################ -koel_web_subdomain: "{{ koel_name }}"-koel_web_domain: "{{ user.domain }}"-koel_web_port: "80"-koel_web_url: "{{ 'https://' + (koel_web_subdomain + '.' + koel_web_domain- if (koel_web_subdomain | length > 0)- else koel_web_domain) }}"+koel_role_web_subdomain: "{{ koel_name }}"+koel_role_web_domain: "{{ user.domain }}"+koel_role_web_port: "80"+koel_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='koel') + '.' + lookup('role_var', '_web_domain', role='koel')+ if (lookup('role_var', '_web_subdomain', role='koel') | length > 0)+ else lookup('role_var', '_web_domain', role='koel')) }}" ################################ # DNS ################################ -koel_dns_record: "{{ koel_web_subdomain }}"-koel_dns_zone: "{{ koel_web_domain }}"-koel_dns_proxy: "{{ dns.proxied }}"+koel_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='koel') }}"+koel_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='koel') }}"+koel_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -koel_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-koel_traefik_middleware_default: "{{ traefik_default_middleware }}"-koel_traefik_middleware_custom: ""-koel_traefik_certresolver: "{{ traefik_default_certresolver }}"-koel_traefik_enabled: true-koel_traefik_api_enabled: true-koel_traefik_api_endpoint: "PathPrefix(`/api`)"+koel_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+koel_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+koel_role_traefik_middleware_custom: ""+koel_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+koel_role_traefik_enabled: true+koel_role_traefik_api_enabled: true+koel_role_traefik_api_endpoint: "PathPrefix(`/api`)" ################################ # Docker ################################ # Container-koel_docker_container: "{{ koel_name }}"+koel_role_docker_container: "{{ koel_name }}" # Image-koel_docker_image_pull: true-koel_docker_image_tag: "latest"-koel_docker_image: "phanan/koel:{{ koel_docker_image_tag }}"--# Ports-koel_docker_ports_defaults: []-koel_docker_ports_custom: []-koel_docker_ports: "{{ koel_docker_ports_defaults- + koel_docker_ports_custom }}"+koel_role_docker_image_pull: true+koel_role_docker_image_tag: "latest"+koel_role_docker_image_repo: "phanan/koel"+koel_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='koel') }}:{{ lookup('role_var', '_docker_image_tag', role='koel') }}" # Envs-koel_docker_envs_default:+koel_role_docker_envs_default: TZ: "{{ tz }}" DB_CONNECTION: "mysql" DB_HOST: "{{ koel_name }}-mariadb" DB_PORT: "3306" DB_DATABASE: "{{ koel_name }}" DB_USERNAME: "root"- DB_PASSWORD: "{{ mariadb_docker_env_password }}"+ DB_PASSWORD: "{{ lookup('role_var', '_docker_env_password', role='mariadb') }}" APP_KEY: "base64:{{ koel_secret_key }}"- APP_URL: "{{ koel_web_url }}"+ APP_URL: "{{ lookup('role_var', '_web_url', role='koel') }}" FORCE_HTTPS: "true"-koel_docker_envs_custom: {}-koel_docker_envs: "{{ koel_docker_envs_default- | combine(koel_docker_envs_custom) }}"--# Commands-koel_docker_commands_default: []-koel_docker_commands_custom: []-koel_docker_commands: "{{ koel_docker_commands_default- + koel_docker_commands_custom }}"+koel_role_docker_envs_custom: {}+koel_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='koel')+ | combine(lookup('role_var', '_docker_envs_custom', role='koel')) }}" # Volumes-koel_docker_volumes_default:+koel_role_docker_volumes_default: - "/mnt/unionfs/Media/Music:/music:ro"- - "{{ koel_paths_location }}/app/covers:/var/www/html/public/img/covers"- - "{{ koel_paths_location }}/app/search-indexes:/var/www/html/storage/search-indexes"-koel_docker_volumes_custom: []-koel_docker_volumes: "{{ koel_docker_volumes_default- + koel_docker_volumes_custom }}"--# Devices-koel_docker_devices_default: []-koel_docker_devices_custom: []-koel_docker_devices: "{{ koel_docker_devices_default- + koel_docker_devices_custom }}"--# Hosts-koel_docker_hosts_default: {}-koel_docker_hosts_custom: {}-koel_docker_hosts: "{{ docker_hosts_common- | combine(koel_docker_hosts_default)- | combine(koel_docker_hosts_custom) }}"--# Labels-koel_docker_labels_default: {}-koel_docker_labels_custom: {}-koel_docker_labels: "{{ docker_labels_common- | combine(koel_docker_labels_default)- | combine(koel_docker_labels_custom) }}"+ - "{{ lookup('role_var', '_paths_location', role='koel') }}/app/covers:/var/www/html/public/img/covers"+ - "{{ lookup('role_var', '_paths_location', role='koel') }}/app/search-indexes:/var/www/html/storage/search-indexes"+koel_role_docker_volumes_custom: []+koel_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='koel')+ + lookup('role_var', '_docker_volumes_custom', role='koel') }}" # Hostname-koel_docker_hostname: "{{ koel_name }}"+koel_role_docker_hostname: "{{ koel_name }}" # Networks-koel_docker_networks_alias: "{{ koel_name }}"-koel_docker_networks_default: []-koel_docker_networks_custom: []-koel_docker_networks: "{{ docker_networks_common- + koel_docker_networks_default- + koel_docker_networks_custom }}"--# Capabilities-koel_docker_capabilities_default: []-koel_docker_capabilities_custom: []-koel_docker_capabilities: "{{ koel_docker_capabilities_default- + koel_docker_capabilities_custom }}"--# Security Opts-koel_docker_security_opts_default: []-koel_docker_security_opts_custom: []-koel_docker_security_opts: "{{ koel_docker_security_opts_default- + koel_docker_security_opts_custom }}"+koel_role_docker_networks_alias: "{{ koel_name }}"+koel_role_docker_networks_default: []+koel_role_docker_networks_custom: []+koel_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='koel')+ + lookup('role_var', '_docker_networks_custom', role='koel') }}" # Restart Policy-koel_docker_restart_policy: unless-stopped+koel_role_docker_restart_policy: unless-stopped # State-koel_docker_state: started+koel_role_docker_state: started # Dependencies-koel_depends_on: "{{ koel_name }}-mariadb"-koel_depends_on_delay: "0"-koel_depends_on_healthchecks: "false"+koel_role_depends_on: "{{ koel_name }}-mariadb"+koel_role_depends_on_delay: "0"+koel_role_depends_on_healthchecks: "false"
modified
roles/koel/tasks/main.yml
@@ -9,7 +9,7 @@ --- - name: Check if db folder exists ansible.builtin.stat:- path: "{{ server_appdata_path }}/{{ koel_paths_folder }}/db"+ path: "{{ server_appdata_path }}/{{ lookup('role_var', '_paths_folder', role='koel') }}/db" register: stat_koel_db_folder - name: Remove legacy MariaDB Docker container@@ -22,20 +22,20 @@ name: mariadb vars: mariadb_instances: ["{{ koel_name }}-mariadb"]- mariadb_paths_folder: "{{ koel_name }}"- mariadb_paths_location: "{{ server_appdata_path }}/{{ koel_paths_folder }}/db"+ mariadb_role_paths_folder: "{{ koel_name }}"+ mariadb_role_paths_location: "{{ server_appdata_path }}/{{ lookup('role_var', '_paths_folder', role='koel') }}/db" - name: MariaDB | Create koel database community.mysql.mysql_db: name: "koel" login_host: "{{ koel_name }}-mariadb" login_user: "root"- login_password: "{{ mariadb_docker_env_password }}"+ login_password: "{{ lookup('role_var', '_docker_env_password', role='mariadb') }}" state: present - name: Check if db folder exists ansible.builtin.stat:- path: "{{ koel_paths_location }}/vars.ini"+ path: "{{ lookup('role_var', '_paths_location', role='koel') }}/vars.ini" register: stat_vars_ini - name: "Generate Secret Key for sessions"@@ -43,9 +43,9 @@ register: generate_koel_secret_key when: not stat_vars_ini.stat.exists -- name: "Add Secret Key to '{{ koel_paths_location }}/vars.ini'"+- name: "Add Secret Key to '{{ lookup('role_var', '_paths_location', role='koel') }}/vars.ini'" community.general.ini_file:- path: "{{ koel_paths_location }}/vars.ini"+ path: "{{ lookup('role_var', '_paths_location', role='koel') }}/vars.ini" section: "general" option: app_key value: "{{ generate_koel_secret_key.stdout }}"@@ -56,14 +56,14 @@ - name: "Set koel_secret_key variable" ansible.builtin.set_fact:- koel_secret_key: "{{ lookup('ini', 'app_key section=general file=' + koel_paths_location + '/vars.ini') | default(generate_koel_secret_key.stdout) }}"+ koel_secret_key: "{{ lookup('ini', 'app_key section=general file=' + lookup('role_var', '_paths_location', role='koel') + '/vars.ini') | default(generate_koel_secret_key.stdout) }}" - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -103,6 +103,6 @@ login_db: "koel" login_host: "{{ koel_name }}-mariadb" login_user: "root"- login_password: "{{ mariadb_docker_env_password }}"+ login_password: "{{ lookup('role_var', '_docker_env_password', role='mariadb') }}" query: 'UPDATE `users` SET `id` = "1", `name` = "{{ user.name }}", `email` = "{{ user.email }}", `password` = "{{ koel_admin_password_hash.stdout }}", `preferences` = NULL, `remember_token` = NULL, `created_at` = "{{ koel_date.stdout }}", `updated_at` = "{{ koel_date.stdout }}" WHERE ((`id` = "1"));' when: not stat_koel_db_folder.stat.exists
modified
roles/kometa/defaults/main.yml
@@ -17,112 +17,63 @@ # Settings ################################ -kometa_time: "03:00"+kometa_role_time: "03:00" ################################ # Paths ################################ -kometa_paths_folder: "{{ kometa_name }}"-kometa_paths_location: "{{ server_appdata_path }}/{{ kometa_paths_folder }}"-kometa_paths_folders_list:- - "{{ kometa_paths_location }}"-kometa_paths_recursive: true+kometa_role_paths_folder: "{{ kometa_name }}"+kometa_role_paths_location: "{{ server_appdata_path }}/{{ kometa_role_paths_folder }}"+kometa_role_paths_folders_list:+ - "{{ kometa_role_paths_location }}"+kometa_role_paths_recursive: true ################################ # Docker ################################ # Container-kometa_docker_container: "{{ kometa_name }}"+kometa_role_docker_container: "{{ kometa_name }}" # Image-kometa_docker_image_pull: true-kometa_docker_image_repo: "kometateam/kometa"-kometa_docker_image_tag: "latest"-kometa_docker_image: "{{ lookup('vars', kometa_name + '_docker_image_repo', default=kometa_docker_image_repo)- + ':' + lookup('vars', kometa_name + '_docker_image_tag', default=kometa_docker_image_tag) }}"--# Ports-kometa_docker_ports_defaults: []-kometa_docker_ports_custom: []-kometa_docker_ports: "{{ lookup('vars', kometa_name + '_docker_ports_defaults', default=kometa_docker_ports_defaults)- + lookup('vars', kometa_name + '_docker_ports_custom', default=kometa_docker_ports_custom) }}"+kometa_role_docker_image_pull: true+kometa_role_docker_image_repo: "kometateam/kometa"+kometa_role_docker_image_tag: "latest"+kometa_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='kometa') }}:{{ lookup('role_var', '_docker_image_tag', role='kometa') }}" # Envs-kometa_docker_envs_default:+kometa_role_docker_envs_default: TZ: "{{ tz }}" LOG_LEVEL: "DEBUG"- KOMETA_TIMES: "{{ lookup('vars', kometa_name + '_time', default=kometa_time) }}"-kometa_docker_envs_custom: {}-kometa_docker_envs: "{{ lookup('vars', kometa_name + '_docker_envs_default', default=kometa_docker_envs_default)- | combine(lookup('vars', kometa_name + '_docker_envs_custom', default=kometa_docker_envs_custom)) }}"--# Commands-kometa_docker_commands_default: []-kometa_docker_commands_custom: []-kometa_docker_commands: "{{ lookup('vars', kometa_name + '_docker_commands_default', default=kometa_docker_commands_default)- + lookup('vars', kometa_name + '_docker_commands_custom', default=kometa_docker_commands_custom) }}"+ KOMETA_TIMES: "{{ lookup('role_var', '_time', role='kometa') }}"+kometa_role_docker_envs_custom: {}+kometa_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='kometa')+ | combine(lookup('role_var', '_docker_envs_custom', role='kometa')) }}" # Volumes-kometa_docker_volumes_default:- - "{{ kometa_paths_location }}:/config"-kometa_docker_volumes_custom: []-kometa_docker_volumes: "{{ lookup('vars', kometa_name + '_docker_volumes_default', default=kometa_docker_volumes_default)- + lookup('vars', kometa_name + '_docker_volumes_custom', default=kometa_docker_volumes_custom) }}"--# Devices-kometa_docker_devices_default: []-kometa_docker_devices_custom: []-kometa_docker_devices: "{{ lookup('vars', kometa_name + '_docker_devices_default', default=kometa_docker_devices_default)- + lookup('vars', kometa_name + '_docker_devices_custom', default=kometa_docker_devices_custom) }}"--# Hosts-kometa_docker_hosts_default: {}-kometa_docker_hosts_custom: {}-kometa_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', kometa_name + '_docker_hosts_default', default=kometa_docker_hosts_default))- | combine(lookup('vars', kometa_name + '_docker_hosts_custom', default=kometa_docker_hosts_custom)) }}"--# Labels-kometa_docker_labels_default: {}-kometa_docker_labels_custom: {}-kometa_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', kometa_name + '_docker_labels_default', default=kometa_docker_labels_default))- | combine(lookup('vars', kometa_name + '_docker_labels_custom', default=kometa_docker_labels_custom)) }}"+kometa_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='kometa') }}:/config"+kometa_role_docker_volumes_custom: []+kometa_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='kometa')+ + lookup('role_var', '_docker_volumes_custom', role='kometa') }}" # Hostname-kometa_docker_hostname: "{{ kometa_name }}"--# Network Mode-kometa_docker_network_mode_default: "{{ docker_networks_name_common }}"-kometa_docker_network_mode: "{{ lookup('vars', kometa_name + '_docker_network_mode_default', default=kometa_docker_network_mode_default) }}"+kometa_role_docker_hostname: "{{ kometa_name }}" # Networks-kometa_docker_networks_alias: "{{ kometa_name }}"-kometa_docker_networks_default: []-kometa_docker_networks_custom: []-kometa_docker_networks: "{{ docker_networks_common- + lookup('vars', kometa_name + '_docker_networks_default', default=kometa_docker_networks_default)- + lookup('vars', kometa_name + '_docker_networks_custom', default=kometa_docker_networks_custom) }}"--# Capabilities-kometa_docker_capabilities_default: []-kometa_docker_capabilities_custom: []-kometa_docker_capabilities: "{{ lookup('vars', kometa_name + '_docker_capabilities_default', default=kometa_docker_capabilities_default)- + lookup('vars', kometa_name + '_docker_capabilities_custom', default=kometa_docker_capabilities_custom) }}"--# Security Opts-kometa_docker_security_opts_default: []-kometa_docker_security_opts_custom: []-kometa_docker_security_opts: "{{ lookup('vars', kometa_name + '_docker_security_opts_default', default=kometa_docker_security_opts_default)- + lookup('vars', kometa_name + '_docker_security_opts_custom', default=kometa_docker_security_opts_custom) }}"+kometa_role_docker_networks_alias: "{{ kometa_name }}"+kometa_role_docker_networks_default: []+kometa_role_docker_networks_custom: []+kometa_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='kometa')+ + lookup('role_var', '_docker_networks_custom', role='kometa') }}" # Restart Policy-kometa_docker_restart_policy: unless-stopped+kometa_role_docker_restart_policy: unless-stopped # State-kometa_docker_state: started+kometa_role_docker_state: started # User-kometa_docker_user: "{{ uid }}:{{ gid }}"+kometa_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/kometa/tasks/main2.yml
@@ -22,7 +22,7 @@ - name: Download config.yml.template ansible.builtin.get_url: url: https://raw.githubusercontent.com/Kometa-Team/Kometa/master/config/config.yml.template- dest: "{{ kometa_paths_location }}/config.yml.template"+ dest: "{{ lookup('role_var', '_paths_location', role='kometa') }}/config.yml.template" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"@@ -30,9 +30,9 @@ validate_certs: false ignore_errors: true -- name: "Checking if 'config.yml' exists in {{ kometa_paths_location }}"+- name: "Checking if 'config.yml' exists in {{ lookup('role_var', '_paths_location', role='kometa') }}" ansible.builtin.stat:- path: "{{ kometa_paths_location }}/config.yml"+ path: "{{ lookup('role_var', '_paths_location', role='kometa') }}/config.yml" register: kometa_config - name: "Fail when 'config.yml' is not present"@@ -47,4 +47,4 @@ ansible.builtin.debug: msg: - "You should attempt a manual run first to ensure the config is working and to use oAuth for Trakt config etc. To do this run the below command"- - "docker run --rm -it --network=saltbox -u '{{ uid }}:{{ gid }}' -e 'TZ={{ tz }}' -v {{ kometa_paths_location }}:/config {{ kometa_docker_image }} --run"+ - "docker run --rm -it --network=saltbox -u '{{ uid }}:{{ gid }}' -e 'TZ={{ tz }}' -v {{ lookup('role_var', '_paths_location', role='kometa') }}:/config {{ lookup('role_var', '_docker_image', role='kometa') }} --run"
modified
roles/komga/defaults/main.yml
@@ -17,129 +17,87 @@ # Paths ################################ -komga_paths_folder: "{{ komga_name }}"-komga_paths_location: "{{ server_appdata_path }}/{{ komga_paths_folder }}"-komga_paths_folders_list:- - "{{ komga_paths_location }}"- - "/mnt/local/Media/Comics"+komga_role_paths_folder: "{{ komga_name }}"+komga_role_paths_location: "{{ server_appdata_path }}/{{ komga_role_paths_folder }}"+komga_role_paths_folders_list:+ - "{{ komga_role_paths_location }}"+ - "{{ server_local_folder_path }}/Media/Comics" ################################ # Web ################################ -komga_web_subdomain: "{{ komga_name }}"-komga_web_domain: "{{ user.domain }}"-komga_web_port: "25600"-komga_web_url: "{{ 'https://' + (komga_web_subdomain + '.' + komga_web_domain- if (komga_web_subdomain | length > 0)- else komga_web_domain) }}"+komga_role_web_subdomain: "{{ komga_name }}"+komga_role_web_domain: "{{ user.domain }}"+komga_role_web_port: "25600"+komga_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='komga') + '.' + lookup('role_var', '_web_domain', role='komga')+ if (lookup('role_var', '_web_subdomain', role='komga') | length > 0)+ else lookup('role_var', '_web_domain', role='komga')) }}" ################################ # DNS ################################ -komga_dns_record: "{{ komga_web_subdomain }}"-komga_dns_zone: "{{ komga_web_domain }}"-komga_dns_proxy: "{{ dns.proxied }}"+komga_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='komga') }}"+komga_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='komga') }}"+komga_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -komga_traefik_sso_middleware: ""-komga_traefik_middleware_default: "{{ traefik_default_middleware }}"-komga_traefik_middleware_custom: ""-komga_traefik_certresolver: "{{ traefik_default_certresolver }}"-komga_traefik_enabled: true-komga_traefik_api_enabled: false-komga_traefik_api_endpoint: ""+komga_role_traefik_sso_middleware: ""+komga_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+komga_role_traefik_middleware_custom: ""+komga_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+komga_role_traefik_enabled: true+komga_role_traefik_api_enabled: false+komga_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-komga_docker_container: "{{ komga_name }}"+komga_role_docker_container: "{{ komga_name }}" # Image-komga_docker_image_pull: true-komga_docker_image_tag: "latest"-komga_docker_image: "gotson/komga:{{ komga_docker_image_tag }}"--# Ports-komga_docker_ports_defaults: []-komga_docker_ports_custom: []-komga_docker_ports: "{{ komga_docker_ports_defaults- + komga_docker_ports_custom }}"+komga_role_docker_image_pull: true+komga_role_docker_image_tag: "latest"+komga_role_docker_image_repo: "gotson/komga"+komga_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='komga') }}:{{ lookup('role_var', '_docker_image_tag', role='komga') }}" # Envs-komga_docker_envs_default: {}-komga_docker_envs_custom: {}-komga_docker_envs: "{{ komga_docker_envs_default- | combine(komga_docker_envs_custom) }}"--# Commands-komga_docker_commands_default: []-komga_docker_commands_custom: []-komga_docker_commands: "{{ komga_docker_commands_default- + komga_docker_commands_custom }}"+komga_role_docker_envs_default:+ KOMGA_CORS_ALLOWEDORIGINS: "*"+komga_role_docker_envs_custom: {}+komga_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='komga')+ | combine(lookup('role_var', '_docker_envs_custom', role='komga')) }}" # Volumes-komga_docker_volumes_default:- - "{{ komga_paths_location }}:/config"+komga_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='komga') }}:/config" - "/mnt/unionfs/Media/Comics:/comics"-komga_docker_volumes_custom: []-komga_docker_volumes: "{{ komga_docker_volumes_default- + komga_docker_volumes_custom }}"--# Devices-komga_docker_devices_default: []-komga_docker_devices_custom: []-komga_docker_devices: "{{ komga_docker_devices_default- + komga_docker_devices_custom }}"--# Hosts-komga_docker_hosts_default: {}-komga_docker_hosts_custom: {}-komga_docker_hosts: "{{ docker_hosts_common- | combine(komga_docker_hosts_default)- | combine(komga_docker_hosts_custom) }}"--# Labels-komga_docker_labels_default: {}-komga_docker_labels_custom: {}-komga_docker_labels: "{{ docker_labels_common- | combine(komga_docker_labels_default)- | combine(komga_docker_labels_custom) }}"+komga_role_docker_volumes_custom: []+komga_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='komga')+ + lookup('role_var', '_docker_volumes_custom', role='komga') }}" # Hostname-komga_docker_hostname: "{{ komga_name }}"+komga_role_docker_hostname: "{{ komga_name }}" # Networks-komga_docker_networks_alias: "{{ komga_name }}"-komga_docker_networks_default: []-komga_docker_networks_custom: []-komga_docker_networks: "{{ docker_networks_common- + komga_docker_networks_default- + komga_docker_networks_custom }}"--# Capabilities-komga_docker_capabilities_default: []-komga_docker_capabilities_custom: []-komga_docker_capabilities: "{{ komga_docker_capabilities_default- + komga_docker_capabilities_custom }}"--# Security Opts-komga_docker_security_opts_default: []-komga_docker_security_opts_custom: []-komga_docker_security_opts: "{{ komga_docker_security_opts_default- + komga_docker_security_opts_custom }}"+komga_role_docker_networks_alias: "{{ komga_name }}"+komga_role_docker_networks_default: []+komga_role_docker_networks_custom: []+komga_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='komga')+ + lookup('role_var', '_docker_networks_custom', role='komga') }}" # Restart Policy-komga_docker_restart_policy: unless-stopped+komga_role_docker_restart_policy: unless-stopped # State-komga_docker_state: started+komga_role_docker_state: started # User-komga_docker_user: "{{ uid }}:{{ gid }}"+komga_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/komga/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/krusader/defaults/main.yml
@@ -8,80 +8,75 @@ ########################################################################## --- ################################-# Docker Socket Proxy-################################--krusader_docker_socket_proxy_envs:- CONTAINERS: "1"- POST: "0"--################################ # Basics ################################ krusader_name: krusader ################################+# Docker Socket Proxy+################################++krusader_role_docker_socket_proxy_envs:+ CONTAINERS: "1"+ POST: "0"++################################ # Paths ################################ -krusader_paths_folder: "{{ krusader_name }}"-krusader_paths_location: "{{ server_appdata_path }}/{{ krusader_paths_folder }}"-krusader_paths_folders_list:- - "{{ krusader_paths_location }}"- - "{{ krusader_paths_location }}/config"+krusader_role_paths_folder: "{{ krusader_name }}"+krusader_role_paths_location: "{{ server_appdata_path }}/{{ krusader_role_paths_folder }}"+krusader_role_paths_folders_list:+ - "{{ krusader_role_paths_location }}"+ - "{{ krusader_role_paths_location }}/config" ################################ # Web ################################ -krusader_web_subdomain: "{{ krusader_name }}"-krusader_web_domain: "{{ user.domain }}"-krusader_web_port: "6080"-krusader_web_url: "{{ 'https://' + (krusader_web_subdomain + '.' + krusader_web_domain- if (krusader_web_subdomain | length > 0)- else krusader_web_domain) }}"+krusader_role_web_subdomain: "{{ krusader_name }}"+krusader_role_web_domain: "{{ user.domain }}"+krusader_role_web_port: "6080"+krusader_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='krusader') + '.' + lookup('role_var', '_web_domain', role='krusader')+ if (lookup('role_var', '_web_subdomain', role='krusader') | length > 0)+ else lookup('role_var', '_web_domain', role='krusader')) }}" ################################ # DNS ################################ -krusader_dns_record: "{{ krusader_web_subdomain }}"-krusader_dns_zone: "{{ krusader_web_domain }}"-krusader_dns_proxy: "{{ dns.proxied }}"+krusader_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='krusader') }}"+krusader_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='krusader') }}"+krusader_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -krusader_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-krusader_traefik_middleware_default: "{{ traefik_default_middleware }}"-krusader_traefik_middleware_api: "{{ traefik_global_middleware }}"-krusader_traefik_certresolver: "{{ traefik_default_certresolver }}"-krusader_traefik_enabled: true-krusader_traefik_api_enabled: false-krusader_traefik_api_endpoint: ""+krusader_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+krusader_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+krusader_role_traefik_middleware_api: "{{ traefik_global_middleware }}"+krusader_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+krusader_role_traefik_enabled: true+krusader_role_traefik_api_enabled: false+krusader_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-krusader_docker_container: "{{ krusader_name }}"+krusader_role_docker_container: "{{ krusader_name }}" # Image-krusader_docker_image_pull: true-krusader_docker_image_tag: "latest"-krusader_docker_image: "binhex/arch-krusader:{{ krusader_docker_image_tag }}"--# Ports-krusader_docker_ports_defaults: []-krusader_docker_ports_custom: []-krusader_docker_ports: "{{ krusader_docker_ports_defaults- + krusader_docker_ports_custom }}"+krusader_role_docker_image_pull: true+krusader_role_docker_image_tag: "latest"+krusader_role_docker_image_repo: "binhex/arch-krusader"+krusader_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='krusader') }}:{{ lookup('role_var', '_docker_image_tag', role='krusader') }}" # Envs-krusader_docker_envs_default:+krusader_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"@@ -89,73 +84,35 @@ DOCKER_HOST: "tcp://{{ krusader_name }}-docker-socket-proxy:2375" WEBPAGE_TITLE: "Krusader File Manager Web" TEMP_FOLDER: "/tmp"-krusader_docker_envs_custom: {}-krusader_docker_envs: "{{ krusader_docker_envs_default- | combine(krusader_docker_envs_custom) }}"--# Commands-krusader_docker_commands_default: []-krusader_docker_commands_custom: []-krusader_docker_commands: "{{ krusader_docker_commands_default- + krusader_docker_commands_custom }}"+krusader_role_docker_envs_custom: {}+krusader_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='krusader')+ | combine(lookup('role_var', '_docker_envs_custom', role='krusader')) }}" # Volumes-krusader_docker_volumes_default:- - "{{ krusader_paths_location }}/config:/config"-krusader_docker_volumes_custom: []-krusader_docker_volumes: "{{ krusader_docker_volumes_default- + krusader_docker_volumes_custom }}"--# Devices-krusader_docker_devices_default: []-krusader_docker_devices_custom: []-krusader_docker_devices: "{{ krusader_docker_devices_default- + krusader_docker_devices_custom }}"--# Hosts-krusader_docker_hosts_default: {}-krusader_docker_hosts_custom: {}-krusader_docker_hosts: "{{ docker_hosts_common- | combine(krusader_docker_hosts_default)- | combine(krusader_docker_hosts_custom) }}"--# Labels-krusader_docker_labels_default: {}-krusader_docker_labels_custom: {}-krusader_docker_labels: "{{ docker_labels_common- | combine(krusader_docker_labels_default)- | combine(krusader_docker_labels_custom) }}"+krusader_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='krusader') }}/config:/config"+krusader_role_docker_volumes_custom: []+krusader_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='krusader')+ + lookup('role_var', '_docker_volumes_custom', role='krusader') }}" # Hostname-krusader_docker_hostname: "{{ krusader_name }}"+krusader_role_docker_hostname: "{{ krusader_name }}" # Networks-krusader_docker_networks_alias: "{{ krusader_name }}"-krusader_docker_networks_default: []-krusader_docker_networks_custom: []-krusader_docker_networks: "{{ docker_networks_common- + krusader_docker_networks_default- + krusader_docker_networks_custom }}"--# Capabilities-krusader_docker_capabilities_default: []-krusader_docker_capabilities_custom: []-krusader_docker_capabilities: "{{ krusader_docker_capabilities_default- + krusader_docker_capabilities_custom }}"--# Security Opts-krusader_docker_security_opts_default: []-krusader_docker_security_opts_custom: []-krusader_docker_security_opts: "{{ krusader_docker_security_opts_default- + krusader_docker_security_opts_custom }}"+krusader_role_docker_networks_alias: "{{ krusader_name }}"+krusader_role_docker_networks_default: []+krusader_role_docker_networks_custom: []+krusader_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='krusader')+ + lookup('role_var', '_docker_networks_custom', role='krusader') }}" # Restart Policy-krusader_docker_restart_policy: unless-stopped+krusader_role_docker_restart_policy: unless-stopped # State-krusader_docker_state: started+krusader_role_docker_state: started # Dependencies-krusader_depends_on: "{{ krusader_name }}-docker-socket-proxy"-krusader_depends_on_delay: "0"-krusader_depends_on_healthchecks: "false"+krusader_role_depends_on: "{{ krusader_name }}-docker-socket-proxy"+krusader_role_depends_on_delay: "0"+krusader_role_depends_on_healthchecks: "false"
modified
roles/krusader/tasks/main.yml
@@ -12,14 +12,14 @@ name: docker_socket_proxy vars: docker_socket_proxy_name: "{{ krusader_name }}-docker-socket-proxy"- docker_socket_proxy_docker_envs: "{{ krusader_docker_socket_proxy_envs }}"+ docker_socket_proxy_role_docker_envs_custom: "{{ lookup('role_var', '_docker_socket_proxy_envs', role='krusader') }}" - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/lazylibrarian/defaults/main.yml
@@ -17,128 +17,85 @@ # Paths ################################ -lazylibrarian_paths_folder: "{{ lazylibrarian_name }}"-lazylibrarian_paths_location: "{{ server_appdata_path }}/{{ lazylibrarian_paths_folder }}"-lazylibrarian_paths_folders_list:- - "{{ lazylibrarian_paths_location }}"+lazylibrarian_role_paths_folder: "{{ lazylibrarian_name }}"+lazylibrarian_role_paths_location: "{{ server_appdata_path }}/{{ lazylibrarian_role_paths_folder }}"+lazylibrarian_role_paths_folders_list:+ - "{{ lazylibrarian_role_paths_location }}" ################################ # Web ################################ -lazylibrarian_web_subdomain: "{{ lazylibrarian_name }}"-lazylibrarian_web_domain: "{{ user.domain }}"-lazylibrarian_web_port: "5299"-lazylibrarian_web_url: "{{ 'https://' + (lazylibrarian_web_subdomain + '.' + lazylibrarian_web_domain- if (lazylibrarian_web_subdomain | length > 0)- else lazylibrarian_web_domain) }}"+lazylibrarian_role_web_subdomain: "{{ lazylibrarian_name }}"+lazylibrarian_role_web_domain: "{{ user.domain }}"+lazylibrarian_role_web_port: "5299"+lazylibrarian_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='lazylibrarian') + '.' + lookup('role_var', '_web_domain', role='lazylibrarian')+ if (lookup('role_var', '_web_subdomain', role='lazylibrarian') | length > 0)+ else lookup('role_var', '_web_domain', role='lazylibrarian')) }}" ################################ # DNS ################################ -lazylibrarian_dns_record: "{{ lazylibrarian_web_subdomain }}"-lazylibrarian_dns_zone: "{{ lazylibrarian_web_domain }}"-lazylibrarian_dns_proxy: "{{ dns.proxied }}"+lazylibrarian_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='lazylibrarian') }}"+lazylibrarian_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='lazylibrarian') }}"+lazylibrarian_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -lazylibrarian_traefik_sso_middleware: ""-lazylibrarian_traefik_middleware_default: "{{ traefik_default_middleware }}"-lazylibrarian_traefik_middleware_custom: ""-lazylibrarian_traefik_certresolver: "{{ traefik_default_certresolver }}"-lazylibrarian_traefik_enabled: true-lazylibrarian_traefik_api_enabled: false-lazylibrarian_traefik_api_endpoint: ""+lazylibrarian_role_traefik_sso_middleware: ""+lazylibrarian_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+lazylibrarian_role_traefik_middleware_custom: ""+lazylibrarian_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+lazylibrarian_role_traefik_enabled: true+lazylibrarian_role_traefik_api_enabled: false+lazylibrarian_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-lazylibrarian_docker_container: "{{ lazylibrarian_name }}"+lazylibrarian_role_docker_container: "{{ lazylibrarian_name }}" # Image-lazylibrarian_docker_image_pull: true-lazylibrarian_docker_image_tag: "latest"-lazylibrarian_docker_image: "lscr.io/linuxserver/lazylibrarian:{{ lazylibrarian_docker_image_tag }}"--# Ports-lazylibrarian_docker_ports_defaults: []-lazylibrarian_docker_ports_custom: []-lazylibrarian_docker_ports: "{{ lazylibrarian_docker_ports_defaults- + lazylibrarian_docker_ports_custom }}"+lazylibrarian_role_docker_image_pull: true+lazylibrarian_role_docker_image_tag: "latest"+lazylibrarian_role_docker_image_repo: "lscr.io/linuxserver/lazylibrarian"+lazylibrarian_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='lazylibrarian') }}:{{ lookup('role_var', '_docker_image_tag', role='lazylibrarian') }}" # Envs-lazylibrarian_docker_envs_default:+lazylibrarian_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}" DOCKER_MODS: "linuxserver/mods:universal-calibre|linuxserver/mods:lazylibrarian-ffmpeg"-lazylibrarian_docker_envs_custom: {}-lazylibrarian_docker_envs: "{{ lazylibrarian_docker_envs_default- | combine(lazylibrarian_docker_envs_custom) }}"--# Commands-lazylibrarian_docker_commands_default: []-lazylibrarian_docker_commands_custom: []-lazylibrarian_docker_commands: "{{ lazylibrarian_docker_commands_default- + lazylibrarian_docker_commands_custom }}"+lazylibrarian_role_docker_envs_custom: {}+lazylibrarian_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='lazylibrarian')+ | combine(lookup('role_var', '_docker_envs_custom', role='lazylibrarian')) }}" # Volumes-lazylibrarian_docker_volumes_default:- - "{{ lazylibrarian_paths_location }}:/config"-lazylibrarian_docker_volumes_custom: []-lazylibrarian_docker_volumes: "{{ lazylibrarian_docker_volumes_default- + lazylibrarian_docker_volumes_custom }}"--# Devices-lazylibrarian_docker_devices_default: []-lazylibrarian_docker_devices_custom: []-lazylibrarian_docker_devices: "{{ lazylibrarian_docker_devices_default- + lazylibrarian_docker_devices_custom }}"--# Hosts-lazylibrarian_docker_hosts_default: {}-lazylibrarian_docker_hosts_custom: {}-lazylibrarian_docker_hosts: "{{ docker_hosts_common- | combine(lazylibrarian_docker_hosts_default)- | combine(lazylibrarian_docker_hosts_custom) }}"--# Labels-lazylibrarian_docker_labels_default: {}-lazylibrarian_docker_labels_custom: {}-lazylibrarian_docker_labels: "{{ docker_labels_common- | combine(lazylibrarian_docker_labels_default)- | combine(lazylibrarian_docker_labels_custom) }}"+lazylibrarian_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='lazylibrarian') }}:/config"+lazylibrarian_role_docker_volumes_custom: []+lazylibrarian_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='lazylibrarian')+ + lookup('role_var', '_docker_volumes_custom', role='lazylibrarian') }}" # Hostname-lazylibrarian_docker_hostname: "{{ lazylibrarian_name }}"+lazylibrarian_role_docker_hostname: "{{ lazylibrarian_name }}" # Networks-lazylibrarian_docker_networks_alias: "{{ lazylibrarian_name }}"-lazylibrarian_docker_networks_default: []-lazylibrarian_docker_networks_custom: []-lazylibrarian_docker_networks: "{{ docker_networks_common- + lazylibrarian_docker_networks_default- + lazylibrarian_docker_networks_custom }}"--# Capabilities-lazylibrarian_docker_capabilities_default: []-lazylibrarian_docker_capabilities_custom: []-lazylibrarian_docker_capabilities: "{{ lazylibrarian_docker_capabilities_default- + lazylibrarian_docker_capabilities_custom }}"--# Security Opts-lazylibrarian_docker_security_opts_default: []-lazylibrarian_docker_security_opts_custom: []-lazylibrarian_docker_security_opts: "{{ lazylibrarian_docker_security_opts_default- + lazylibrarian_docker_security_opts_custom }}"+lazylibrarian_role_docker_networks_alias: "{{ lazylibrarian_name }}"+lazylibrarian_role_docker_networks_default: []+lazylibrarian_role_docker_networks_custom: []+lazylibrarian_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='lazylibrarian')+ + lookup('role_var', '_docker_networks_custom', role='lazylibrarian') }}" # Restart Policy-lazylibrarian_docker_restart_policy: unless-stopped+lazylibrarian_role_docker_restart_policy: unless-stopped # State-lazylibrarian_docker_state: started+lazylibrarian_role_docker_state: started
modified
roles/lazylibrarian/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/lgsm/defaults/main.yml
@@ -17,114 +17,59 @@ # Paths ################################ -lgsm_paths_folder: "{{ lgsm_name }}"-lgsm_paths_location: "{{ server_appdata_path }}/{{ lgsm_paths_folder }}"-lgsm_paths_folders_list:- - "{{ lgsm_paths_location }}"+lgsm_role_paths_folder: "{{ lgsm_name }}"+lgsm_role_paths_location: "{{ server_appdata_path }}/{{ lgsm_role_paths_folder }}"+lgsm_role_paths_folders_list:+ - "{{ lgsm_role_paths_location }}" ################################ # Web ################################ -lgsm_web_subdomain: "{{ lgsm_name }}"-lgsm_web_domain: "{{ user.domain }}"+lgsm_role_web_subdomain: "{{ lgsm_name }}"+lgsm_role_web_domain: "{{ user.domain }}" ################################ # DNS ################################ -lgsm_dns_record: "{{ lookup('vars', lgsm_name + '_web_subdomain', default=lgsm_web_subdomain) }}"-lgsm_dns_zone: "{{ lookup('vars', lgsm_name + '_web_domain', default=lgsm_web_domain) }}"-lgsm_dns_proxy: false+lgsm_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='lgsm') }}"+lgsm_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='lgsm') }}"+lgsm_role_dns_proxy: false ################################ # Docker ################################ # Container-lgsm_docker_container: "{{ lgsm_name }}"+lgsm_role_docker_container: "{{ lgsm_name }}" # Image-lgsm_docker_image_pull: true-lgsm_docker_image_repo: "gameservermanagers/gameserver"-lgsm_docker_image_tag: "{{ lgsm_name | replace('lgsm_', '') }}"-lgsm_docker_image: "{{ lookup('vars', lgsm_name + '_docker_image_repo', default=lgsm_docker_image_repo)- + ':' + lookup('vars', lgsm_name + '_docker_image_tag', default=lgsm_docker_image_tag) }}"--# Ports-lgsm_docker_ports_defaults: []-lgsm_docker_ports_custom: []-lgsm_docker_ports: "{{ lookup('vars', lgsm_name + '_docker_ports_defaults', default=lgsm_docker_ports_defaults)- + lookup('vars', lgsm_name + '_docker_ports_custom', default=lgsm_docker_ports_custom) }}"--# Envs-lgsm_docker_envs_default: {}-lgsm_docker_envs_custom: {}-lgsm_docker_envs: "{{ lookup('vars', lgsm_name + '_docker_envs_default', default=lgsm_docker_envs_default)- | combine(lookup('vars', lgsm_name + '_docker_envs_custom', default=lgsm_docker_envs_custom)) }}"--# Commands-lgsm_docker_commands_default: []-lgsm_docker_commands_custom: []-lgsm_docker_commands: "{{ lookup('vars', lgsm_name + '_docker_commands_default', default=lgsm_docker_commands_default)- + lookup('vars', lgsm_name + '_docker_commands_custom', default=lgsm_docker_commands_custom) }}"+lgsm_role_docker_image_pull: true+lgsm_role_docker_image_repo: "gameservermanagers/gameserver"+lgsm_role_docker_image_tag: "{{ lgsm_name | replace('lgsm_', '') }}"+lgsm_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='lgsm') }}:{{ lookup('role_var', '_docker_image_tag', role='lgsm') }}" # Volumes-lgsm_docker_volumes_default:- - "{{ lgsm_paths_location }}:/data"-lgsm_docker_volumes_custom: []-lgsm_docker_volumes: "{{ lookup('vars', lgsm_name + '_docker_volumes_default', default=lgsm_docker_volumes_default)- + lookup('vars', lgsm_name + '_docker_volumes_custom', default=lgsm_docker_volumes_custom) }}"--# Devices-lgsm_docker_devices_default: []-lgsm_docker_devices_custom: []-lgsm_docker_devices: "{{ lookup('vars', lgsm_name + '_docker_devices_default', default=lgsm_docker_devices_default)- + lookup('vars', lgsm_name + '_docker_devices_custom', default=lgsm_docker_devices_custom) }}"--# Hosts-lgsm_docker_hosts_default: {}-lgsm_docker_hosts_custom: {}-lgsm_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', lgsm_name + '_docker_hosts_default', default=lgsm_docker_hosts_default))- | combine(lookup('vars', lgsm_name + '_docker_hosts_custom', default=lgsm_docker_hosts_custom)) }}"--# Labels-lgsm_docker_labels_default: {}-lgsm_docker_labels_custom: {}-lgsm_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', lgsm_name + '_docker_labels_default', default=lgsm_docker_labels_default))- | combine(lookup('vars', lgsm_name + '_docker_labels_custom', default=lgsm_docker_labels_custom)) }}"+lgsm_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='lgsm') }}:/data"+lgsm_role_docker_volumes_custom: []+lgsm_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='lgsm')+ + lookup('role_var', '_docker_volumes_custom', role='lgsm') }}" # Hostname-lgsm_docker_hostname: "{{ lgsm_name }}"--# Network Mode-lgsm_docker_network_mode_default: "{{ docker_networks_name_common }}"-lgsm_docker_network_mode: "{{ lookup('vars', lgsm_name + '_docker_network_mode_default', default=lgsm_docker_network_mode_default) }}"+lgsm_role_docker_hostname: "{{ lgsm_name }}" # Networks-lgsm_docker_networks_alias: "{{ lgsm_name }}"-lgsm_docker_networks_default: []-lgsm_docker_networks_custom: []-lgsm_docker_networks: "{{ docker_networks_common- + lookup('vars', lgsm_name + '_docker_networks_default', default=lgsm_docker_networks_default)- + lookup('vars', lgsm_name + '_docker_networks_custom', default=lgsm_docker_networks_custom) }}"--# Capabilities-lgsm_docker_capabilities_default: []-lgsm_docker_capabilities_custom: []-lgsm_docker_capabilities: "{{ lookup('vars', lgsm_name + '_docker_capabilities_default', default=lgsm_docker_capabilities_default)- + lookup('vars', lgsm_name + '_docker_capabilities_custom', default=lgsm_docker_capabilities_custom) }}"--# Security Opts-lgsm_docker_security_opts_default: []-lgsm_docker_security_opts_custom: []-lgsm_docker_security_opts: "{{ lookup('vars', lgsm_name + '_docker_security_opts_default', default=lgsm_docker_security_opts_default)- + lookup('vars', lgsm_name + '_docker_security_opts_custom', default=lgsm_docker_security_opts_custom) }}"+lgsm_role_docker_networks_alias: "{{ lgsm_name }}"+lgsm_role_docker_networks_default: []+lgsm_role_docker_networks_custom: []+lgsm_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='lgsm')+ + lookup('role_var', '_docker_networks_custom', role='lgsm') }}" # Restart Policy-lgsm_docker_restart_policy: unless-stopped+lgsm_role_docker_restart_policy: unless-stopped # State-lgsm_docker_state: started+lgsm_role_docker_state: started
modified
roles/lgsm/tasks/main2.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/linkding/defaults/main.yml
@@ -17,64 +17,59 @@ # Paths ################################ -linkding_paths_folder: "{{ linkding_name }}"-linkding_paths_location: "{{ server_appdata_path }}/{{ linkding_paths_folder }}"-linkding_paths_folders_list:- - "{{ linkding_paths_location }}"+linkding_role_paths_folder: "{{ linkding_name }}"+linkding_role_paths_location: "{{ server_appdata_path }}/{{ linkding_role_paths_folder }}"+linkding_role_paths_folders_list:+ - "{{ linkding_role_paths_location }}" ################################ # Web ################################ -linkding_web_subdomain: "{{ linkding_name }}"-linkding_web_domain: "{{ user.domain }}"-linkding_web_port: "9090"-linkding_web_url: "{{ 'https://' + (linkding_web_subdomain + '.' + linkding_web_domain- if (linkding_web_subdomain | length > 0)- else linkding_web_domain) }}"+linkding_role_web_subdomain: "{{ linkding_name }}"+linkding_role_web_domain: "{{ user.domain }}"+linkding_role_web_port: "9090"+linkding_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='linkding') + '.' + lookup('role_var', '_web_domain', role='linkding')+ if (lookup('role_var', '_web_subdomain', role='linkding') | length > 0)+ else lookup('role_var', '_web_domain', role='linkding')) }}" ################################ # DNS ################################ -linkding_dns_record: "{{ linkding_web_subdomain }}"-linkding_dns_zone: "{{ linkding_web_domain }}"-linkding_dns_proxy: "{{ dns.proxied }}"+linkding_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='linkding') }}"+linkding_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='linkding') }}"+linkding_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -linkding_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-linkding_traefik_middleware_default: "{{ traefik_default_middleware }}"-linkding_traefik_middleware_custom: ""-linkding_traefik_certresolver: "{{ traefik_default_certresolver }}"-linkding_traefik_enabled: true-linkding_traefik_api_enabled: true-linkding_traefik_api_endpoint: "PathPrefix(`/api`)"-linkding_traefik_api_middleware_http: "{{ 'dropsecurityheaders@file,' + traefik_default_middleware_http_api }}"-linkding_traefik_api_middleware: "{{ 'dropsecurityheaders@file,' + traefik_default_middleware_api }}"+linkding_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+linkding_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+linkding_role_traefik_middleware_custom: ""+linkding_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+linkding_role_traefik_enabled: true+linkding_role_traefik_api_enabled: true+linkding_role_traefik_api_endpoint: "PathPrefix(`/api`)"+linkding_role_traefik_api_middleware_http: "{{ 'dropsecurityheaders@file,' + traefik_default_middleware_http_api }}"+linkding_role_traefik_api_middleware: "{{ 'dropsecurityheaders@file,' + traefik_default_middleware_api }}" ################################ # Docker ################################ # Container-linkding_docker_container: "{{ linkding_name }}"+linkding_role_docker_container: "{{ linkding_name }}" # Image-linkding_docker_image_pull: true-linkding_docker_image_tag: "latest"-linkding_docker_image: "sissbruecker/linkding:{{ linkding_docker_image_tag }}"--# Ports-linkding_docker_ports_defaults: []-linkding_docker_ports_custom: []-linkding_docker_ports: "{{ linkding_docker_ports_defaults- + linkding_docker_ports_custom }}"+linkding_role_docker_image_pull: true+linkding_role_docker_image_tag: "latest"+linkding_role_docker_image_repo: "sissbruecker/linkding"+linkding_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='linkding') }}:{{ lookup('role_var', '_docker_image_tag', role='linkding') }}" # Envs-linkding_docker_envs_default:+linkding_role_docker_envs_default: TZ: "{{ tz }}" LD_CONTAINER_NAME: "{{ linkding_name }}" LD_HOST_PORT: "9090"@@ -84,69 +79,31 @@ LD_DISABLE_BACKGROUND_TASKS: "false" LD_DISABLE_URL_VALIDATION: "false" LD_ENABLE_AUTH_PROXY: "false"- LD_CSRF_TRUSTED_ORIGINS: "{{ linkding_web_url }}"-linkding_docker_envs_custom: {}-linkding_docker_envs: "{{ linkding_docker_envs_default- | combine(linkding_docker_envs_custom) }}"--# Commands-linkding_docker_commands_default: []-linkding_docker_commands_custom: []-linkding_docker_commands: "{{ linkding_docker_commands_default- + linkding_docker_commands_custom }}"+ LD_CSRF_TRUSTED_ORIGINS: "{{ lookup('role_var', '_web_url', role='linkding') }}"+linkding_role_docker_envs_custom: {}+linkding_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='linkding')+ | combine(lookup('role_var', '_docker_envs_custom', role='linkding')) }}" # Volumes-linkding_docker_volumes_default:- - "{{ linkding_paths_location }}:/etc/linkding/data"-linkding_docker_volumes_custom: []-linkding_docker_volumes: "{{ linkding_docker_volumes_default- + linkding_docker_volumes_custom }}"--# Devices-linkding_docker_devices_default: []-linkding_docker_devices_custom: []-linkding_docker_devices: "{{ linkding_docker_devices_default- + linkding_docker_devices_custom }}"--# Hosts-linkding_docker_hosts_default: {}-linkding_docker_hosts_custom: {}-linkding_docker_hosts: "{{ docker_hosts_common- | combine(linkding_docker_hosts_default)- | combine(linkding_docker_hosts_custom) }}"--# Labels-linkding_docker_labels_default: {}-linkding_docker_labels_custom: {}-linkding_docker_labels: "{{ docker_labels_common- | combine(linkding_docker_labels_default)- | combine(linkding_docker_labels_custom) }}"+linkding_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='linkding') }}:/etc/linkding/data"+linkding_role_docker_volumes_custom: []+linkding_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='linkding')+ + lookup('role_var', '_docker_volumes_custom', role='linkding') }}" # Hostname-linkding_docker_hostname: "{{ linkding_name }}"+linkding_role_docker_hostname: "{{ linkding_name }}" # Networks-linkding_docker_networks_alias: "{{ linkding_name }}"-linkding_docker_networks_default: []-linkding_docker_networks_custom: []-linkding_docker_networks: "{{ docker_networks_common- + linkding_docker_networks_default- + linkding_docker_networks_custom }}"--# Capabilities-linkding_docker_capabilities_default: []-linkding_docker_capabilities_custom: []-linkding_docker_capabilities: "{{ linkding_docker_capabilities_default- + linkding_docker_capabilities_custom }}"--# Security Opts-linkding_docker_security_opts_default: []-linkding_docker_security_opts_custom: []-linkding_docker_security_opts: "{{ linkding_docker_security_opts_default- + linkding_docker_security_opts_custom }}"+linkding_role_docker_networks_alias: "{{ linkding_name }}"+linkding_role_docker_networks_default: []+linkding_role_docker_networks_custom: []+linkding_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='linkding')+ + lookup('role_var', '_docker_networks_custom', role='linkding') }}" # Restart Policy-linkding_docker_restart_policy: unless-stopped+linkding_role_docker_restart_policy: unless-stopped # State-linkding_docker_state: started+linkding_role_docker_state: started
modified
roles/linkding/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/linkwarden/defaults/main.yml
@@ -17,148 +17,112 @@ # Settings ################################ -linkwarden_postgres_name: "{{ linkwarden_name }}-postgres"-linkwarden_postgres_docker_env_user: "{{ linkwarden_name }}"-linkwarden_postgres_docker_env_password: "{{ linkwarden_name }}"-linkwarden_postgres_docker_env_db: "{{ linkwarden_name }}"-linkwarden_postgres_docker_image_tag: "16-alpine"-linkwarden_postgres_docker_image_repo: "postgres"-linkwarden_postgres_paths_folder: "{{ linkwarden_name }}"-linkwarden_postgres_paths_location: "{{ server_appdata_path }}/{{ postgres_paths_folder }}/postgres"+linkwarden_role_postgres_deploy: true+linkwarden_role_postgres_name: "{{ linkwarden_name }}-postgres"+linkwarden_role_postgres_user: "{{ linkwarden_name }}"+linkwarden_role_postgres_password: "{{ linkwarden_name }}"+linkwarden_role_postgres_docker_env_db: "{{ linkwarden_name }}"+linkwarden_role_postgres_docker_image_tag: "16-alpine"+linkwarden_role_postgres_docker_image_repo: "postgres"+linkwarden_role_postgres_docker_healthcheck:+ test: ["CMD-SHELL", "pg_isready -d {{ lookup('role_var', '_postgres_docker_env_db', role='linkwarden') }} -U {{ lookup('role_var', '_postgres_user', role='linkwarden') }}"]+ start_period: 20s+ interval: 30s+ retries: 5+ timeout: 5s+linkwarden_role_postgres_paths_folder: "{{ linkwarden_name }}"+linkwarden_role_postgres_paths_location: "{{ server_appdata_path }}/{{ linkwarden_role_postgres_paths_folder }}/postgres" ################################ # Paths ################################ -linkwarden_paths_folder: "{{ linkwarden_name }}"-linkwarden_paths_location: "{{ server_appdata_path }}/{{ linkwarden_paths_folder }}"-linkwarden_paths_folders_list:- - "{{ linkwarden_paths_location }}"+linkwarden_role_paths_folder: "{{ linkwarden_name }}"+linkwarden_role_paths_location: "{{ server_appdata_path }}/{{ linkwarden_role_paths_folder }}"+linkwarden_role_paths_folders_list:+ - "{{ linkwarden_role_paths_location }}" ################################ # Web ################################ -linkwarden_web_subdomain: "{{ linkwarden_name }}"-linkwarden_web_domain: "{{ user.domain }}"-linkwarden_web_port: "3000"-linkwarden_web_url: "{{ 'https://' + (linkwarden_web_subdomain + '.' + linkwarden_web_domain- if (linkwarden_web_subdomain | length > 0)- else linkwarden_web_domain) }}"+linkwarden_role_web_subdomain: "{{ linkwarden_name }}"+linkwarden_role_web_domain: "{{ user.domain }}"+linkwarden_role_web_port: "3000"+linkwarden_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='linkwarden') + '.' + lookup('role_var', '_web_domain', role='linkwarden')+ if (lookup('role_var', '_web_subdomain', role='linkwarden') | length > 0)+ else lookup('role_var', '_web_domain', role='linkwarden')) }}" ################################ # DNS ################################ -linkwarden_dns_record: "{{ linkwarden_web_subdomain }}"-linkwarden_dns_zone: "{{ linkwarden_web_domain }}"-linkwarden_dns_proxy: "{{ dns.proxied }}"+linkwarden_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='linkwarden') }}"+linkwarden_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='linkwarden') }}"+linkwarden_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -linkwarden_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-linkwarden_traefik_middleware_default: "{{ traefik_default_middleware }}"-linkwarden_traefik_middleware_custom: ""-linkwarden_traefik_certresolver: "{{ traefik_default_certresolver }}"-linkwarden_traefik_enabled: true-linkwarden_traefik_api_enabled: true-linkwarden_traefik_api_endpoint: "PathPrefix(`/api`)"+linkwarden_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+linkwarden_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+linkwarden_role_traefik_middleware_custom: ""+linkwarden_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+linkwarden_role_traefik_enabled: true+linkwarden_role_traefik_api_enabled: true+linkwarden_role_traefik_api_endpoint: "PathPrefix(`/api`)" ################################ # Docker ################################ # Container-linkwarden_docker_container: "{{ linkwarden_name }}"+linkwarden_role_docker_container: "{{ linkwarden_name }}" # Image-linkwarden_docker_image_pull: true-linkwarden_docker_image_tag: "latest"-linkwarden_docker_image: "ghcr.io/linkwarden/linkwarden:{{ linkwarden_docker_image_tag }}"--# Ports-linkwarden_docker_ports_defaults: []-linkwarden_docker_ports_custom: []-linkwarden_docker_ports: "{{ linkwarden_docker_ports_defaults- + linkwarden_docker_ports_custom }}"+linkwarden_role_docker_image_pull: true+linkwarden_role_docker_image_tag: "latest"+linkwarden_role_docker_image_repo: "ghcr.io/linkwarden/linkwarden"+linkwarden_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='linkwarden') }}:{{ lookup('role_var', '_docker_image_tag', role='linkwarden') }}" # Envs-linkwarden_docker_envs_default:+linkwarden_role_docker_envs_default: TZ: "{{ tz }}" NEXT_PUBLIC_CREDENTIALS_ENABLED: "true" STORAGE_FOLDER: "/data" NEXTAUTH_SECRET: "{{ linkwarden_secret_key.stdout }}"- NEXTAUTH_URL: "{{ linkwarden_web_url }}/api/v1/auth"- DATABASE_URL: "postgresql://{{ linkwarden_postgres_docker_env_user }}:{{ linkwarden_postgres_docker_env_password }}@{{ linkwarden_postgres_name }}:5432/{{ linkwarden_postgres_docker_env_db }}"-linkwarden_docker_envs_custom: {}-linkwarden_docker_envs: "{{ linkwarden_docker_envs_default- | combine(linkwarden_docker_envs_custom) }}"--# Commands-linkwarden_docker_commands_default: []-linkwarden_docker_commands_custom: []-linkwarden_docker_commands: "{{ linkwarden_docker_commands_default- + linkwarden_docker_commands_custom }}"+ NEXTAUTH_URL: "{{ lookup('role_var', '_web_url', role='linkwarden') }}/api/v1/auth"+ DATABASE_URL: "postgresql://{{ lookup('role_var', '_postgres_user', role='linkwarden') }}:{{ lookup('role_var', '_postgres_password', role='linkwarden') }}@{{ lookup('role_var', '_postgres_name', role='linkwarden') }}:5432/{{ lookup('role_var', '_postgres_docker_env_db', role='linkwarden') }}"+linkwarden_role_docker_envs_custom: {}+linkwarden_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='linkwarden')+ | combine(lookup('role_var', '_docker_envs_custom', role='linkwarden')) }}" # Volumes-linkwarden_docker_volumes_default:- - "{{ linkwarden_paths_location }}:/data/data"-linkwarden_docker_volumes_custom: []-linkwarden_docker_volumes: "{{ linkwarden_docker_volumes_default- + linkwarden_docker_volumes_custom }}"--# Devices-linkwarden_docker_devices_default: []-linkwarden_docker_devices_custom: []-linkwarden_docker_devices: "{{ linkwarden_docker_devices_default- + linkwarden_docker_devices_custom }}"--# Hosts-linkwarden_docker_hosts_default: {}-linkwarden_docker_hosts_custom: {}-linkwarden_docker_hosts: "{{ docker_hosts_common- | combine(linkwarden_docker_hosts_default)- | combine(linkwarden_docker_hosts_custom) }}"--# Labels-linkwarden_docker_labels_default: {}-linkwarden_docker_labels_custom: {}-linkwarden_docker_labels: "{{ docker_labels_common- | combine(linkwarden_docker_labels_default)- | combine(linkwarden_docker_labels_custom) }}"+linkwarden_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='linkwarden') }}:/data/data"+linkwarden_role_docker_volumes_custom: []+linkwarden_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='linkwarden')+ + lookup('role_var', '_docker_volumes_custom', role='linkwarden') }}" # Hostname-linkwarden_docker_hostname: "{{ linkwarden_name }}"+linkwarden_role_docker_hostname: "{{ linkwarden_name }}" # Networks-linkwarden_docker_networks_alias: "{{ linkwarden_name }}"-linkwarden_docker_networks_default: []-linkwarden_docker_networks_custom: []-linkwarden_docker_networks: "{{ docker_networks_common- + linkwarden_docker_networks_default- + linkwarden_docker_networks_custom }}"--# Capabilities-linkwarden_docker_capabilities_default: []-linkwarden_docker_capabilities_custom: []-linkwarden_docker_capabilities: "{{ linkwarden_docker_capabilities_default- + linkwarden_docker_capabilities_custom }}"--# Security Opts-linkwarden_docker_security_opts_default: []-linkwarden_docker_security_opts_custom: []-linkwarden_docker_security_opts: "{{ linkwarden_docker_security_opts_default- + linkwarden_docker_security_opts_custom }}"+linkwarden_role_docker_networks_alias: "{{ linkwarden_name }}"+linkwarden_role_docker_networks_default: []+linkwarden_role_docker_networks_custom: []+linkwarden_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='linkwarden')+ + lookup('role_var', '_docker_networks_custom', role='linkwarden') }}" # Restart Policy-linkwarden_docker_restart_policy: unless-stopped+linkwarden_role_docker_restart_policy: unless-stopped # State-linkwarden_docker_state: started+linkwarden_role_docker_state: started # Dependencies-linkwarden_depends_on: "{{ linkwarden_postgres_name }}"-linkwarden_depends_on_delay: "0"-linkwarden_depends_on_healthchecks: "false"+linkwarden_role_depends_on: "{{ lookup('role_var', '_postgres_name', role='linkwarden') }}"+linkwarden_role_depends_on_delay: "0"+linkwarden_role_depends_on_healthchecks: "false"
modified
roles/linkwarden/tasks/main.yml
@@ -7,18 +7,20 @@ # GNU General Public License v3.0 # ######################################################################### ----- name: PostgreSQL Role+- name: "Import Postgres Role" ansible.builtin.include_role: name: postgres vars:- postgres_instances: ["{{ linkwarden_postgres_name }}"]- postgres_docker_env_user: "{{ linkwarden_postgres_docker_env_user }}"- postgres_docker_env_password: "{{ linkwarden_postgres_docker_env_password }}"- postgres_docker_env_db: "{{ linkwarden_postgres_docker_env_db }}"- postgres_docker_image_tag: "{{ linkwarden_postgres_docker_image_tag }}"- postgres_docker_image_repo: "{{ linkwarden_postgres_docker_image_repo }}"- postgres_paths_folder: "{{ linkwarden_postgres_paths_folder }}"- postgres_paths_location: "{{ linkwarden_postgres_paths_location }}"+ postgres_instances: ["{{ lookup('role_var', '_postgres_name', role='linkwarden') }}"]+ postgres_role_docker_image_tag: "{{ lookup('role_var', '_postgres_docker_image_tag', role='linkwarden') }}"+ postgres_role_docker_image_repo: "{{ lookup('role_var', '_postgres_docker_image_repo', role='linkwarden') }}"+ postgres_role_paths_folder: "{{ lookup('role_var', '_postgres_paths_folder', role='linkwarden') }}"+ postgres_role_paths_location: "{{ lookup('role_var', '_postgres_paths_location', role='linkwarden') }}"+ postgres_role_docker_env_db: "{{ lookup('role_var', '_postgres_docker_env_db', role='linkwarden') }}"+ postgres_role_docker_healthcheck: "{{ lookup('role_var', '_postgres_docker_healthcheck', role='linkwarden') }}"+ postgres_role_docker_env_user: "{{ lookup('role_var', '_postgres_user', role='linkwarden') }}"+ postgres_role_docker_env_password: "{{ lookup('role_var', '_postgres_password', role='linkwarden') }}"+ when: lookup('role_var', '_postgres_deploy', role='linkwarden') - name: "Generate Secret Key" ansible.builtin.shell: "openssl rand -base64 45"@@ -27,9 +29,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/maintainerr/defaults/main.yml
@@ -17,134 +17,85 @@ # Paths ################################ -maintainerr_paths_folder: "{{ maintainerr_name }}"-maintainerr_paths_location: "{{ server_appdata_path }}/{{ maintainerr_paths_folder }}"-maintainerr_paths_folders_list:- - "{{ maintainerr_paths_location }}"+maintainerr_role_paths_folder: "{{ maintainerr_name }}"+maintainerr_role_paths_location: "{{ server_appdata_path }}/{{ maintainerr_role_paths_folder }}"+maintainerr_role_paths_folders_list:+ - "{{ maintainerr_role_paths_location }}" ################################ # Web ################################ -maintainerr_web_subdomain: "{{ maintainerr_name }}"-maintainerr_web_domain: "{{ user.domain }}"-maintainerr_web_port: "6246"-maintainerr_web_url: "{{ 'https://' + (lookup('vars', maintainerr_name + '_web_subdomain', default=maintainerr_web_subdomain) + '.' + lookup('vars', maintainerr_name + '_web_domain', default=maintainerr_web_domain)- if (lookup('vars', maintainerr_name + '_web_subdomain', default=maintainerr_web_subdomain) | length > 0)- else lookup('vars', maintainerr_name + '_web_domain', default=maintainerr_web_domain)) }}"+maintainerr_role_web_subdomain: "{{ maintainerr_name }}"+maintainerr_role_web_domain: "{{ user.domain }}"+maintainerr_role_web_port: "6246"+maintainerr_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='maintainerr') + '.' + lookup('role_var', '_web_domain', role='maintainerr')+ if (lookup('role_var', '_web_subdomain', role='maintainerr') | length > 0)+ else lookup('role_var', '_web_domain', role='maintainerr')) }}" ################################ # DNS ################################ -maintainerr_dns_record: "{{ lookup('vars', maintainerr_name + '_web_subdomain', default=maintainerr_web_subdomain) }}"-maintainerr_dns_zone: "{{ lookup('vars', maintainerr_name + '_web_domain', default=maintainerr_web_domain) }}"-maintainerr_dns_proxy: "{{ dns.proxied }}"+maintainerr_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='maintainerr') }}"+maintainerr_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='maintainerr') }}"+maintainerr_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -maintainerr_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-maintainerr_traefik_middleware_default: "{{ traefik_default_middleware }}"-maintainerr_traefik_middleware_custom: ""-maintainerr_traefik_certresolver: "{{ traefik_default_certresolver }}"-maintainerr_traefik_enabled: true-maintainerr_traefik_api_enabled: false-maintainerr_traefik_api_endpoint: ""+maintainerr_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+maintainerr_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+maintainerr_role_traefik_middleware_custom: ""+maintainerr_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+maintainerr_role_traefik_enabled: true+maintainerr_role_traefik_api_enabled: false+maintainerr_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-maintainerr_docker_container: "{{ maintainerr_name }}"+maintainerr_role_docker_container: "{{ maintainerr_name }}" # Image-maintainerr_docker_image_pull: true-maintainerr_docker_image_repo: "jorenn92/maintainerr"-maintainerr_docker_image_tag: "latest"-maintainerr_docker_image: "{{ lookup('vars', maintainerr_name + '_docker_image_repo', default=maintainerr_docker_image_repo)- + ':' + lookup('vars', maintainerr_name + '_docker_image_tag', default=maintainerr_docker_image_tag) }}"--# Ports-maintainerr_docker_ports_defaults: []-maintainerr_docker_ports_custom: []-maintainerr_docker_ports: "{{ lookup('vars', maintainerr_name + '_docker_ports_defaults', default=maintainerr_docker_ports_defaults)- + lookup('vars', maintainerr_name + '_docker_ports_custom', default=maintainerr_docker_ports_custom) }}"+maintainerr_role_docker_image_pull: true+maintainerr_role_docker_image_repo: "jorenn92/maintainerr"+maintainerr_role_docker_image_tag: "latest"+maintainerr_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='maintainerr') }}:{{ lookup('role_var', '_docker_image_tag', role='maintainerr') }}" # Envs-maintainerr_docker_envs_default:+maintainerr_role_docker_envs_default: TZ: "{{ tz }}"-maintainerr_docker_envs_custom: {}-maintainerr_docker_envs: "{{ lookup('vars', maintainerr_name + '_docker_envs_default', default=maintainerr_docker_envs_default)- | combine(lookup('vars', maintainerr_name + '_docker_envs_custom', default=maintainerr_docker_envs_custom)) }}"--# Commands-maintainerr_docker_commands_default: []-maintainerr_docker_commands_custom: []-maintainerr_docker_commands: "{{ lookup('vars', maintainerr_name + '_docker_commands_default', default=maintainerr_docker_commands_default)- + lookup('vars', maintainerr_name + '_docker_commands_custom', default=maintainerr_docker_commands_custom) }}"+maintainerr_role_docker_envs_custom: {}+maintainerr_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='maintainerr')+ | combine(lookup('role_var', '_docker_envs_custom', role='maintainerr')) }}" # Volumes-maintainerr_docker_volumes_default:- - "{{ maintainerr_paths_location }}:/opt/data"-maintainerr_docker_volumes_custom: []-maintainerr_docker_volumes: "{{ lookup('vars', maintainerr_name + '_docker_volumes_default', default=maintainerr_docker_volumes_default)- + lookup('vars', maintainerr_name + '_docker_volumes_custom', default=maintainerr_docker_volumes_custom) }}"--# Devices-maintainerr_docker_devices_default: []-maintainerr_docker_devices_custom: []-maintainerr_docker_devices: "{{ lookup('vars', maintainerr_name + '_docker_devices_default', default=maintainerr_docker_devices_default)- + lookup('vars', maintainerr_name + '_docker_devices_custom', default=maintainerr_docker_devices_custom) }}"--# Hosts-maintainerr_docker_hosts_default: {}-maintainerr_docker_hosts_custom: {}-maintainerr_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', maintainerr_name + '_docker_hosts_default', default=maintainerr_docker_hosts_default))- | combine(lookup('vars', maintainerr_name + '_docker_hosts_custom', default=maintainerr_docker_hosts_custom)) }}"--# Labels-maintainerr_docker_labels_default: {}-maintainerr_docker_labels_custom: {}-maintainerr_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', maintainerr_name + '_docker_labels_default', default=maintainerr_docker_labels_default))- | combine(lookup('vars', maintainerr_name + '_docker_labels_custom', default=maintainerr_docker_labels_custom)) }}"+maintainerr_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='maintainerr') }}:/opt/data"+maintainerr_role_docker_volumes_custom: []+maintainerr_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='maintainerr')+ + lookup('role_var', '_docker_volumes_custom', role='maintainerr') }}" # Hostname-maintainerr_docker_hostname: "{{ maintainerr_name }}"--# Network Mode-maintainerr_docker_network_mode_default: "{{ docker_networks_name_common }}"-maintainerr_docker_network_mode: "{{ lookup('vars', maintainerr_name + '_docker_network_mode_default', default=maintainerr_docker_network_mode_default) }}"+maintainerr_role_docker_hostname: "{{ maintainerr_name }}" # Networks-maintainerr_docker_networks_alias: "{{ maintainerr_name }}"-maintainerr_docker_networks_default: []-maintainerr_docker_networks_custom: []-maintainerr_docker_networks: "{{ docker_networks_common- + lookup('vars', maintainerr_name + '_docker_networks_default', default=maintainerr_docker_networks_default)- + lookup('vars', maintainerr_name + '_docker_networks_custom', default=maintainerr_docker_networks_custom) }}"--# Capabilities-maintainerr_docker_capabilities_default: []-maintainerr_docker_capabilities_custom: []-maintainerr_docker_capabilities: "{{ lookup('vars', maintainerr_name + '_docker_capabilities_default', default=maintainerr_docker_capabilities_default)- + lookup('vars', maintainerr_name + '_docker_capabilities_custom', default=maintainerr_docker_capabilities_custom) }}"--# Security Opts-maintainerr_docker_security_opts_default: []-maintainerr_docker_security_opts_custom: []-maintainerr_docker_security_opts: "{{ lookup('vars', maintainerr_name + '_docker_security_opts_default', default=maintainerr_docker_security_opts_default)- + lookup('vars', maintainerr_name + '_docker_security_opts_custom', default=maintainerr_docker_security_opts_custom) }}"+maintainerr_role_docker_networks_alias: "{{ maintainerr_name }}"+maintainerr_role_docker_networks_default: []+maintainerr_role_docker_networks_custom: []+maintainerr_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='maintainerr')+ + lookup('role_var', '_docker_networks_custom', role='maintainerr') }}" # Restart Policy-maintainerr_docker_restart_policy: unless-stopped+maintainerr_role_docker_restart_policy: unless-stopped # State-maintainerr_docker_state: started+maintainerr_role_docker_state: started # User-maintainerr_docker_user: "{{ uid }}:{{ gid }}"+maintainerr_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/maintainerr/tasks/main2.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/makemkv/defaults/main.yml
@@ -17,130 +17,87 @@ # Paths ################################ -makemkv_paths_folder: "{{ makemkv_name }}"-makemkv_paths_location: "{{ server_appdata_path }}/{{ makemkv_paths_folder }}"-makemkv_paths_folders_list:- - "{{ makemkv_paths_location }}"+makemkv_role_paths_folder: "{{ makemkv_name }}"+makemkv_role_paths_location: "{{ server_appdata_path }}/{{ makemkv_role_paths_folder }}"+makemkv_role_paths_folders_list:+ - "{{ makemkv_role_paths_location }}" - "/mnt/unionfs/makemkv" ################################ # Web ################################ -makemkv_web_subdomain: "{{ makemkv_name }}"-makemkv_web_domain: "{{ user.domain }}"-makemkv_web_port: "5800"-makemkv_web_url: "{{ 'https://' + (makemkv_web_subdomain + '.' + makemkv_web_domain- if (makemkv_web_subdomain | length > 0)- else makemkv_web_domain) }}"+makemkv_role_web_subdomain: "{{ makemkv_name }}"+makemkv_role_web_domain: "{{ user.domain }}"+makemkv_role_web_port: "5800"+makemkv_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='makemkv') + '.' + lookup('role_var', '_web_domain', role='makemkv')+ if (lookup('role_var', '_web_subdomain', role='makemkv') | length > 0)+ else lookup('role_var', '_web_domain', role='makemkv')) }}" ################################ # DNS ################################ -makemkv_dns_record: "{{ makemkv_web_subdomain }}"-makemkv_dns_zone: "{{ makemkv_web_domain }}"-makemkv_dns_proxy: "{{ dns.proxied }}"+makemkv_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='makemkv') }}"+makemkv_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='makemkv') }}"+makemkv_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -makemkv_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-makemkv_traefik_middleware_default: "{{ traefik_default_middleware }}"-makemkv_traefik_middleware_custom: ""-makemkv_traefik_certresolver: "{{ traefik_default_certresolver }}"-makemkv_traefik_enabled: true-makemkv_traefik_api_enabled: false-makemkv_traefik_api_endpoint: ""+makemkv_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+makemkv_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+makemkv_role_traefik_middleware_custom: ""+makemkv_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+makemkv_role_traefik_enabled: true+makemkv_role_traefik_api_enabled: false+makemkv_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-makemkv_docker_container: "{{ makemkv_name }}"+makemkv_role_docker_container: "{{ makemkv_name }}" # Image-makemkv_docker_image_pull: true-makemkv_docker_image_tag: "latest"-makemkv_docker_image: "jlesage/makemkv:{{ makemkv_docker_image_tag }}"--# Ports-makemkv_docker_ports_defaults: []-makemkv_docker_ports_custom: []-makemkv_docker_ports: "{{ makemkv_docker_ports_defaults- + makemkv_docker_ports_custom }}"+makemkv_role_docker_image_pull: true+makemkv_role_docker_image_tag: "latest"+makemkv_role_docker_image_repo: "jlesage/makemkv"+makemkv_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='makemkv') }}:{{ lookup('role_var', '_docker_image_tag', role='makemkv') }}" # Envs-makemkv_docker_envs_default:+makemkv_role_docker_envs_default: TZ: "{{ tz }}" USER_ID: "{{ uid }}" GROUP_ID: "{{ gid }}" KEEP_APP_RUNNING: "1"-makemkv_docker_envs_custom: {}-makemkv_docker_envs: "{{ makemkv_docker_envs_default- | combine(makemkv_docker_envs_custom) }}"--# Commands-makemkv_docker_commands_default: []-makemkv_docker_commands_custom: []-makemkv_docker_commands: "{{ makemkv_docker_commands_default- + makemkv_docker_commands_custom }}"+makemkv_role_docker_envs_custom: {}+makemkv_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='makemkv')+ | combine(lookup('role_var', '_docker_envs_custom', role='makemkv')) }}" # Volumes-makemkv_docker_volumes_default:- - "{{ makemkv_paths_location }}:/docker/appdata/makemkv"+makemkv_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='makemkv') }}:/docker/appdata/makemkv" - "/mnt/unionfs:/storage:ro"- - "/mnt/unionfs/makemkv:/output:rw"-makemkv_docker_volumes_custom: []-makemkv_docker_volumes: "{{ makemkv_docker_volumes_default- + makemkv_docker_volumes_custom }}"--# Devices-makemkv_docker_devices_default: []-makemkv_docker_devices_custom: []-makemkv_docker_devices: "{{ makemkv_docker_devices_default- + makemkv_docker_devices_custom }}"--# Hosts-makemkv_docker_hosts_default: {}-makemkv_docker_hosts_custom: {}-makemkv_docker_hosts: "{{ docker_hosts_common- | combine(makemkv_docker_hosts_default)- | combine(makemkv_docker_hosts_custom) }}"--# Labels-makemkv_docker_labels_default: {}-makemkv_docker_labels_custom: {}-makemkv_docker_labels: "{{ docker_labels_common- | combine(makemkv_docker_labels_default)- | combine(makemkv_docker_labels_custom) }}"+ - "/mnt/unionfs/makemkv:/output"+makemkv_role_docker_volumes_custom: []+makemkv_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='makemkv')+ + lookup('role_var', '_docker_volumes_custom', role='makemkv') }}" # Hostname-makemkv_docker_hostname: "{{ makemkv_name }}"+makemkv_role_docker_hostname: "{{ makemkv_name }}" # Networks-makemkv_docker_networks_alias: "{{ makemkv_name }}"-makemkv_docker_networks_default: []-makemkv_docker_networks_custom: []-makemkv_docker_networks: "{{ docker_networks_common- + makemkv_docker_networks_default- + makemkv_docker_networks_custom }}"--# Capabilities-makemkv_docker_capabilities_default: []-makemkv_docker_capabilities_custom: []-makemkv_docker_capabilities: "{{ makemkv_docker_capabilities_default- + makemkv_docker_capabilities_custom }}"--# Security Opts-makemkv_docker_security_opts_default: []-makemkv_docker_security_opts_custom: []-makemkv_docker_security_opts: "{{ makemkv_docker_security_opts_default- + makemkv_docker_security_opts_custom }}"+makemkv_role_docker_networks_alias: "{{ makemkv_name }}"+makemkv_role_docker_networks_default: []+makemkv_role_docker_networks_custom: []+makemkv_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='makemkv')+ + lookup('role_var', '_docker_networks_custom', role='makemkv') }}" # Restart Policy-makemkv_docker_restart_policy: unless-stopped+makemkv_role_docker_restart_policy: unless-stopped # State-makemkv_docker_state: started+makemkv_role_docker_state: started
modified
roles/makemkv/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/maybe_finance/defaults/main.yml
@@ -17,73 +17,77 @@ # Settings ################################ -maybe_finance_postgres_name: "{{ maybe_finance_name }}-postgres"-maybe_finance_postgres_docker_env_db: "{{ maybe_finance_name }}"-maybe_finance_postgres_docker_image_tag: "16"-maybe_finance_postgres_docker_image_repo: "postgres"-maybe_finance_postgres_paths_folder: "{{ maybe_finance_name }}"-maybe_finance_postgres_paths_location: "{{ server_appdata_path }}/{{ maybe_finance_postgres_paths_folder }}/postgres"+maybe_finance_role_postgres_deploy: true+maybe_finance_role_postgres_name: "{{ maybe_finance_name }}-postgres"+maybe_finance_role_postgres_user: "{{ postgres_role_docker_env_user }}"+maybe_finance_role_postgres_password: "{{ postgres_role_docker_env_password }}"+maybe_finance_role_postgres_docker_env_db: "{{ maybe_finance_name }}"+maybe_finance_role_postgres_docker_image_tag: "16"+maybe_finance_role_postgres_docker_image_repo: "postgres"+maybe_finance_role_postgres_docker_healthcheck:+ test: ["CMD-SHELL", "pg_isready -d {{ lookup('role_var', '_postgres_docker_env_db', role='maybe_finance') }} -U {{ postgres_role_docker_env_user }}"]+ start_period: 20s+ interval: 30s+ retries: 5+ timeout: 5s+maybe_finance_role_postgres_paths_folder: "{{ maybe_finance_name }}"+maybe_finance_role_postgres_paths_location: "{{ server_appdata_path }}/{{ maybe_finance_role_postgres_paths_folder }}/postgres" ################################ # Paths ################################ -maybe_finance_paths_folder: "{{ maybe_finance_name }}"-maybe_finance_paths_location: "{{ server_appdata_path }}/{{ maybe_finance_paths_folder }}"-maybe_finance_paths_folders_list:- - "{{ maybe_finance_paths_location }}"+maybe_finance_role_paths_folder: "{{ maybe_finance_name }}"+maybe_finance_role_paths_location: "{{ server_appdata_path }}/{{ maybe_finance_role_paths_folder }}"+maybe_finance_role_paths_folders_list:+ - "{{ maybe_finance_role_paths_location }}" ################################ # Web ################################ -maybe_finance_web_subdomain: "{{ maybe_finance_name }}"-maybe_finance_web_domain: "{{ user.domain }}"-maybe_finance_web_port: "3000"-maybe_finance_web_url: "{{ 'https://' + (maybe_finance_web_subdomain + '.' + maybe_finance_web_domain- if (maybe_finance_web_subdomain | length > 0)- else maybe_finance_web_domain) }}"+maybe_finance_role_web_subdomain: "{{ maybe_finance_name }}"+maybe_finance_role_web_domain: "{{ user.domain }}"+maybe_finance_role_web_port: "3000"+maybe_finance_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='maybe_finance') + '.' + lookup('role_var', '_web_domain', role='maybe_finance')+ if (lookup('role_var', '_web_subdomain', role='maybe_finance') | length > 0)+ else lookup('role_var', '_web_domain', role='maybe_finance')) }}" ################################ # DNS ################################ -maybe_finance_dns_record: "{{ maybe_finance_web_subdomain }}"-maybe_finance_dns_zone: "{{ maybe_finance_web_domain }}"-maybe_finance_dns_proxy: "{{ dns.proxied }}"+maybe_finance_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='maybe_finance') }}"+maybe_finance_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='maybe_finance') }}"+maybe_finance_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -maybe_finance_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-maybe_finance_traefik_middleware_default: "{{ traefik_default_middleware }}"-maybe_finance_traefik_middleware_custom: ""-maybe_finance_traefik_certresolver: "{{ traefik_default_certresolver }}"-maybe_finance_traefik_enabled: true-maybe_finance_traefik_api_enabled: false-maybe_finance_traefik_api_endpoint: ""+maybe_finance_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+maybe_finance_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+maybe_finance_role_traefik_middleware_custom: ""+maybe_finance_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+maybe_finance_role_traefik_enabled: true+maybe_finance_role_traefik_api_enabled: false+maybe_finance_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-maybe_finance_docker_container: "{{ maybe_finance_name }}"+maybe_finance_role_docker_container: "{{ maybe_finance_name }}" # Image-maybe_finance_docker_image_pull: true-maybe_finance_docker_image_tag: "latest"-maybe_finance_docker_image: "ghcr.io/maybe-finance/maybe:{{ maybe_finance_docker_image_tag }}"--# Ports-maybe_finance_docker_ports_defaults: []-maybe_finance_docker_ports_custom: []-maybe_finance_docker_ports: "{{ maybe_finance_docker_ports_defaults- + maybe_finance_docker_ports_custom }}"+maybe_finance_role_docker_image_pull: true+maybe_finance_role_docker_image_tag: "latest"+maybe_finance_role_docker_image_repo: "ghcr.io/maybe-finance/maybe"+maybe_finance_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='maybe_finance') }}:{{ lookup('role_var', '_docker_image_tag', role='maybe_finance') }}" # Envs-maybe_finance_docker_envs_default:+maybe_finance_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"@@ -92,80 +96,42 @@ RAILS_ASSUME_SSL: "false" GOOD_JOB_EXECUTION_MODE: "async" SECRET_KEY_BASE: "{{ maybe_finance_saltbox_facts.facts.secret_key_base }}"- DB_USERNAME: "{{ postgres_docker_env_user }}"- DB_PASSWORD: "{{ postgres_docker_env_password }}"- DB_HOST: "{{ maybe_finance_postgres_name }}"+ DB_USERNAME: "{{ lookup('role_var', '_postgres_user', role='maybe_finance') }}"+ DB_PASSWORD: "{{ lookup('role_var', '_postgres_password', role='maybe_finance') }}"+ DB_HOST: "{{ lookup('role_var', '_postgres_name', role='maybe_finance') }}" DB_PORT: "5432"- POSTGRES_USER: "{{ postgres_docker_env_user }}" REDIS_URL: "redis://{{ maybe_finance_name }}-redis:6379/1"- POSTGRES_PASSWORD: "{{ postgres_docker_env_password }}"-maybe_finance_docker_envs_custom: {}-maybe_finance_docker_envs: "{{ maybe_finance_docker_envs_default- | combine(maybe_finance_docker_envs_custom) }}"--# Commands-maybe_finance_docker_commands_default: []-maybe_finance_docker_commands_custom: []-maybe_finance_docker_commands: "{{ maybe_finance_docker_commands_default- + maybe_finance_docker_commands_custom }}"+ POSTGRES_USER: "{{ lookup('role_var', '_postgres_user', role='maybe_finance') }}"+ POSTGRES_PASSWORD: "{{ lookup('role_var', '_postgres_password', role='maybe_finance') }}"+maybe_finance_role_docker_envs_custom: {}+maybe_finance_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='maybe_finance')+ | combine(lookup('role_var', '_docker_envs_custom', role='maybe_finance')) }}" # Volumes-maybe_finance_docker_volumes_default:- - "{{ maybe_finance_paths_location }}:/rails/storage"-maybe_finance_docker_volumes_custom: []-maybe_finance_docker_volumes: "{{ maybe_finance_docker_volumes_default- + maybe_finance_docker_volumes_custom }}"--# Devices-maybe_finance_docker_devices_default: []-maybe_finance_docker_devices_custom: []-maybe_finance_docker_devices: "{{ maybe_finance_docker_devices_default- + maybe_finance_docker_devices_custom }}"--# Hosts-maybe_finance_docker_hosts_default: {}-maybe_finance_docker_hosts_custom: {}-maybe_finance_docker_hosts: "{{ docker_hosts_common- | combine(maybe_finance_docker_hosts_default)- | combine(maybe_finance_docker_hosts_custom) }}"--# Labels-maybe_finance_docker_labels_default: {}-maybe_finance_docker_labels_custom: {}-maybe_finance_docker_labels: "{{ docker_labels_common- | combine(maybe_finance_docker_labels_default)- | combine(maybe_finance_docker_labels_custom) }}"+maybe_finance_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='maybe_finance') }}:/rails/storage"+maybe_finance_role_docker_volumes_custom: []+maybe_finance_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='maybe_finance')+ + lookup('role_var', '_docker_volumes_custom', role='maybe_finance') }}" # Hostname-maybe_finance_docker_hostname: "{{ maybe_finance_name }}"+maybe_finance_role_docker_hostname: "{{ maybe_finance_name }}" # Networks-maybe_finance_docker_networks_alias: "{{ maybe_finance_name }}"-maybe_finance_docker_networks_default: []-maybe_finance_docker_networks_custom: []-maybe_finance_docker_networks: "{{ docker_networks_common- + maybe_finance_docker_networks_default- + maybe_finance_docker_networks_custom }}"--# Capabilities-maybe_finance_docker_capabilities_default: []-maybe_finance_docker_capabilities_custom: []-maybe_finance_docker_capabilities: "{{ maybe_finance_docker_capabilities_default- + maybe_finance_docker_capabilities_custom }}"--# Security Opts-maybe_finance_docker_security_opts_default: []-maybe_finance_docker_security_opts_custom: []-maybe_finance_docker_security_opts: "{{ maybe_finance_docker_security_opts_default- + maybe_finance_docker_security_opts_custom }}"+maybe_finance_role_docker_networks_alias: "{{ maybe_finance_name }}"+maybe_finance_role_docker_networks_default: []+maybe_finance_role_docker_networks_custom: []+maybe_finance_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='maybe_finance')+ + lookup('role_var', '_docker_networks_custom', role='maybe_finance') }}" # Restart Policy-maybe_finance_docker_restart_policy: unless-stopped+maybe_finance_role_docker_restart_policy: unless-stopped # State-maybe_finance_docker_state: started+maybe_finance_role_docker_state: started # Dependencies-maybe_finance_depends_on: "{{ maybe_finance_postgres_name }}"-maybe_finance_depends_on_delay: "5"-maybe_finance_depends_on_healthchecks: "true"+maybe_finance_role_depends_on: "{{ lookup('role_var', '_postgres_name', role='maybe_finance') }}"+maybe_finance_role_depends_on_delay: "5"+maybe_finance_role_depends_on_healthchecks: "true"
modified
roles/maybe_finance/tasks/main.yml
@@ -17,12 +17,12 @@ - name: Generate Secret Key Base community.docker.docker_container: name: maybe_finance-secret-key- image: "{{ maybe_finance_docker_image }}"+ image: "{{ lookup('role_var', '_docker_image', role='maybe_finance') }}" command: "sh -c 'head -c 32 /dev/urandom | base64'"- detach: no+ detach: false networks: - name: saltbox- cleanup: yes+ cleanup: true state: started container_default_behavior: compatibility tls_hostname: localhost@@ -37,33 +37,36 @@ secret_key_base: "{{ maybe_finance_generated_secret_key.container.Output }}" owner: "{{ user.name }}" group: "{{ user.name }}"+ base_path: "{{ server_appdata_path }}" register: maybe_finance_saltbox_facts - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Import Redis Role ansible.builtin.include_role: name: redis vars: redis_instances: ["{{ maybe_finance_name }}-redis"]- redis_paths_folder: "{{ maybe_finance_name }}"- redis_paths_location: "{{ server_appdata_path }}/{{ redis_paths_folder }}/redis"+ redis_role_paths_folder: "{{ maybe_finance_name }}"+ redis_role_paths_location: "{{ server_appdata_path }}/{{ lookup('role_var', '_paths_folder', role='redis') }}/redis" -- name: Import PostgreSQL Role+- name: "Import Postgres Role" ansible.builtin.include_role: name: postgres vars:- postgres_instances: ["{{ maybe_finance_postgres_name }}"]- postgres_docker_env_db: "{{ maybe_finance_postgres_docker_env_db }}"- postgres_docker_image_tag: "{{ maybe_finance_postgres_docker_image_tag }}"- postgres_docker_image_repo: "{{ maybe_finance_postgres_docker_image_repo }}"- postgres_paths_folder: "{{ maybe_finance_postgres_paths_folder }}"- postgres_paths_location: "{{ maybe_finance_postgres_paths_location }}"+ postgres_instances: ["{{ lookup('role_var', '_postgres_name', role='maybe_finance') }}"]+ postgres_role_docker_image_tag: "{{ lookup('role_var', '_postgres_docker_image_tag', role='maybe_finance') }}"+ postgres_role_docker_image_repo: "{{ lookup('role_var', '_postgres_docker_image_repo', role='maybe_finance') }}"+ postgres_role_paths_folder: "{{ lookup('role_var', '_postgres_paths_folder', role='maybe_finance') }}"+ postgres_role_paths_location: "{{ lookup('role_var', '_postgres_paths_location', role='maybe_finance') }}"+ postgres_role_docker_env_db: "{{ lookup('role_var', '_postgres_docker_env_db', role='maybe_finance') }}"+ postgres_role_docker_healthcheck: "{{ lookup('role_var', '_postgres_docker_healthcheck', role='maybe_finance') }}"+ when: lookup('role_var', '_postgres_deploy', role='maybe_finance') - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"
modified
roles/maybe_finance_worker/defaults/main.yml
@@ -17,31 +17,26 @@ # Paths ################################ -maybe_finance_worker_paths_folder: "{{ maybe_finance_worker_name }}"-maybe_finance_worker_paths_location: "{{ server_appdata_path }}/{{ maybe_finance_worker_paths_folder }}"-maybe_finance_worker_paths_folders_list:- - "{{ maybe_finance_worker_paths_location }}"+maybe_finance_worker_role_paths_folder: "{{ maybe_finance_worker_name }}"+maybe_finance_worker_role_paths_location: "{{ server_appdata_path }}/{{ maybe_finance_worker_role_paths_folder }}"+maybe_finance_worker_role_paths_folders_list:+ - "{{ maybe_finance_worker_role_paths_location }}" ################################ # Docker ################################ # Container-maybe_finance_worker_docker_container: "{{ maybe_finance_worker_name }}"+maybe_finance_worker_role_docker_container: "{{ maybe_finance_worker_name }}" # Image-maybe_finance_worker_docker_image_pull: true-maybe_finance_worker_docker_image_tag: "latest"-maybe_finance_worker_docker_image: "ghcr.io/maybe-finance/maybe:{{ maybe_finance_worker_docker_image_tag }}"--# Ports-maybe_finance_worker_docker_ports_defaults: []-maybe_finance_worker_docker_ports_custom: []-maybe_finance_worker_docker_ports: "{{ maybe_finance_worker_docker_ports_defaults- + maybe_finance_worker_docker_ports_custom }}"+maybe_finance_worker_role_docker_image_pull: true+maybe_finance_worker_role_docker_image_tag: "latest"+maybe_finance_worker_role_docker_image_repo: "ghcr.io/maybe-finance/maybe"+maybe_finance_worker_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='maybe_finance_worker') }}:{{ lookup('role_var', '_docker_image_tag', role='maybe_finance_worker') }}" # Envs-maybe_finance_worker_docker_envs_default:+maybe_finance_worker_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"@@ -50,80 +45,42 @@ RAILS_ASSUME_SSL: "false" GOOD_JOB_EXECUTION_MODE: "async" SECRET_KEY_BASE: "{{ maybe_finance_saltbox_facts.facts.secret_key_base }}"- DB_USERNAME: "{{ postgres_docker_env_user }}"- DB_PASSWORD: "{{ postgres_docker_env_password }}"- DB_HOST: "{{ maybe_finance_postgres_name }}"+ DB_USERNAME: "{{ lookup('role_var', '_docker_env_user', role='postgres') }}"+ DB_PASSWORD: "{{ lookup('role_var', '_docker_env_password', role='postgres') }}"+ DB_HOST: "{{ lookup('role_var', '_postgres_name', role='maybe_finance') }}" DB_PORT: "5432"- POSTGRES_USER: "{{ postgres_docker_env_user }}"+ POSTGRES_USER: "{{ lookup('role_var', '_docker_env_user', role='postgres') }}" REDIS_URL: "redis://{{ maybe_finance_name }}-redis:6379/1"- POSTGRES_PASSWORD: "{{ postgres_docker_env_password }}"-maybe_finance_worker_docker_envs_custom: {}-maybe_finance_worker_docker_envs: "{{ maybe_finance_worker_docker_envs_default- | combine(maybe_finance_worker_docker_envs_custom) }}"+ POSTGRES_PASSWORD: "{{ lookup('role_var', '_docker_env_password', role='postgres') }}"+maybe_finance_worker_role_docker_envs_custom: {}+maybe_finance_worker_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='maybe_finance_worker')+ | combine(lookup('role_var', '_docker_envs_custom', role='maybe_finance_worker')) }}" # Commands-maybe_finance_worker_docker_commands_default:+maybe_finance_worker_role_docker_commands_default: - "bundle exec sidekiq"-maybe_finance_worker_docker_commands_custom: []-maybe_finance_worker_docker_commands: "{{ maybe_finance_worker_docker_commands_default- + maybe_finance_worker_docker_commands_custom }}"--# Volumes-maybe_finance_worker_docker_volumes_default: []-maybe_finance_worker_docker_volumes_custom: []-maybe_finance_worker_docker_volumes: "{{ maybe_finance_worker_docker_volumes_default- + maybe_finance_worker_docker_volumes_custom }}"--# Devices-maybe_finance_worker_docker_devices_default: []-maybe_finance_worker_docker_devices_custom: []-maybe_finance_worker_docker_devices: "{{ maybe_finance_worker_docker_devices_default- + maybe_finance_worker_docker_devices_custom }}"--# Hosts-maybe_finance_worker_docker_hosts_default: {}-maybe_finance_worker_docker_hosts_custom: {}-maybe_finance_worker_docker_hosts: "{{ docker_hosts_common- | combine(maybe_finance_worker_docker_hosts_default)- | combine(maybe_finance_worker_docker_hosts_custom) }}"--# Labels-maybe_finance_worker_docker_labels_default: {}-maybe_finance_worker_docker_labels_custom: {}-maybe_finance_worker_docker_labels: "{{ docker_labels_common- | combine(maybe_finance_worker_docker_labels_default)- | combine(maybe_finance_worker_docker_labels_custom) }}"+maybe_finance_worker_role_docker_commands_custom: []+maybe_finance_worker_role_docker_commands: "{{ lookup('role_var', '_docker_commands_default', role='maybe_finance_worker')+ + lookup('role_var', '_docker_commands_custom', role='maybe_finance_worker') }}" # Hostname-maybe_finance_worker_docker_hostname: "{{ maybe_finance_worker_name }}"+maybe_finance_worker_role_docker_hostname: "{{ maybe_finance_worker_name }}" # Networks-maybe_finance_worker_docker_networks_alias: "{{ maybe_finance_worker_name }}"-maybe_finance_worker_docker_networks_default: []-maybe_finance_worker_docker_networks_custom: []-maybe_finance_worker_docker_networks: "{{ docker_networks_common- + maybe_finance_worker_docker_networks_default- + maybe_finance_worker_docker_networks_custom }}"--# Capabilities-maybe_finance_worker_docker_capabilities_default: []-maybe_finance_worker_docker_capabilities_custom: []-maybe_finance_worker_docker_capabilities: "{{ maybe_finance_worker_docker_capabilities_default- + maybe_finance_worker_docker_capabilities_custom }}"--# Security Opts-maybe_finance_worker_docker_security_opts_default: []-maybe_finance_worker_docker_security_opts_custom: []-maybe_finance_worker_docker_security_opts: "{{ maybe_finance_worker_docker_security_opts_default- + maybe_finance_worker_docker_security_opts_custom }}"+maybe_finance_worker_role_docker_networks_alias: "{{ maybe_finance_worker_name }}"+maybe_finance_worker_role_docker_networks_default: []+maybe_finance_worker_role_docker_networks_custom: []+maybe_finance_worker_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='maybe_finance_worker')+ + lookup('role_var', '_docker_networks_custom', role='maybe_finance_worker') }}" # Restart Policy-maybe_finance_worker_docker_restart_policy: unless-stopped+maybe_finance_worker_role_docker_restart_policy: unless-stopped # State-maybe_finance_worker_docker_state: started+maybe_finance_worker_role_docker_state: started # Dependencies-maybe_finance_worker_depends_on: "{{ maybe_finance_worker_postgres_name }}"-maybe_finance_worker_depends_on_delay: "5"-maybe_finance_worker_depends_on_healthchecks: "true"+maybe_finance_worker_role_depends_on: "{{ lookup('role_var', '_postgres_name', role='maybe_finance') }}"+maybe_finance_worker_role_depends_on_delay: "5"+maybe_finance_worker_role_depends_on_healthchecks: "true"
modified
roles/mealie/defaults/main.yml
@@ -17,123 +17,86 @@ # Paths ################################ -mealie_paths_folder: "{{ mealie_name }}"-mealie_paths_location: "{{ server_appdata_path }}/{{ mealie_paths_folder }}"-mealie_paths_folders_list:- - "{{ mealie_paths_location }}"+mealie_role_paths_folder: "{{ mealie_name }}"+mealie_role_paths_location: "{{ server_appdata_path }}/{{ mealie_role_paths_folder }}"+mealie_role_paths_folders_list:+ - "{{ mealie_role_paths_location }}" ################################ # Web ################################ -mealie_web_subdomain: "{{ mealie_name }}"-mealie_web_domain: "{{ user.domain }}"-mealie_web_port: "9000"-mealie_web_url: "{{ 'https://' + (mealie_web_subdomain + '.' + mealie_web_domain- if (mealie_web_subdomain | length > 0)- else mealie_web_domain) }}"+mealie_role_web_subdomain: "{{ mealie_name }}"+mealie_role_web_domain: "{{ user.domain }}"+mealie_role_web_port: "9000"+mealie_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='mealie') + '.' + lookup('role_var', '_web_domain', role='mealie')+ if (lookup('role_var', '_web_subdomain', role='mealie') | length > 0)+ else lookup('role_var', '_web_domain', role='mealie')) }}" ################################ # DNS ################################ -mealie_dns_record: "{{ mealie_web_subdomain }}"-mealie_dns_zone: "{{ mealie_web_domain }}"-mealie_dns_proxy: "{{ dns.proxied }}"+mealie_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='mealie') }}"+mealie_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='mealie') }}"+mealie_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -mealie_traefik_sso_middleware: ""-mealie_traefik_middleware_default: "{{ traefik_default_middleware }}"-mealie_traefik_middleware_custom: ""-mealie_traefik_certresolver: "{{ traefik_default_certresolver }}"-mealie_traefik_enabled: true-mealie_traefik_api_enabled: false-mealie_traefik_api_endpoint: ""+mealie_role_traefik_sso_middleware: ""+mealie_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+mealie_role_traefik_middleware_custom: ""+mealie_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+mealie_role_traefik_enabled: true+mealie_role_traefik_api_enabled: false+mealie_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-mealie_docker_container: "{{ mealie_name }}"+mealie_role_docker_container: "{{ mealie_name }}" # Image-mealie_docker_image_pull: true-mealie_docker_image_tag: "latest"-mealie_docker_image: "ghcr.io/mealie-recipes/mealie:{{ mealie_docker_image_tag }}"+mealie_role_docker_image_pull: true+mealie_role_docker_image_tag: "latest"+mealie_role_docker_image_repo: "ghcr.io/mealie-recipes/mealie"+mealie_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='mealie') }}:{{ lookup('role_var', '_docker_image_tag', role='mealie') }}" # Envs-mealie_docker_envs_default:+mealie_role_docker_envs_default: ALLOW_SIGNUP: "false" PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"- BASE_URL: "{{ mealie_web_url }}"-mealie_docker_envs_custom: {}-mealie_docker_envs: "{{ mealie_docker_envs_default- | combine(mealie_docker_envs_custom) }}"--# Commands-mealie_docker_commands_default: []-mealie_docker_commands_custom: []-mealie_docker_commands: "{{ mealie_docker_commands_default- + mealie_docker_commands_custom }}"+ BASE_URL: "{{ lookup('role_var', '_web_url', role='mealie') }}"+mealie_role_docker_envs_custom: {}+mealie_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='mealie')+ | combine(lookup('role_var', '_docker_envs_custom', role='mealie')) }}" # Volumes-mealie_docker_volumes_default:- - "{{ mealie_paths_location }}:/app/data"-mealie_docker_volumes_custom: []-mealie_docker_volumes: "{{ mealie_docker_volumes_default- + mealie_docker_volumes_custom }}"--# Devices-mealie_docker_devices_default: []-mealie_docker_devices_custom: []-mealie_docker_devices: "{{ mealie_docker_devices_default- + mealie_docker_devices_custom }}"--# Hosts-mealie_docker_hosts_default: {}-mealie_docker_hosts_custom: {}-mealie_docker_hosts: "{{ docker_hosts_common- | combine(mealie_docker_hosts_default)- | combine(mealie_docker_hosts_custom) }}"--# Labels-mealie_docker_labels_default: {}-mealie_docker_labels_custom: {}-mealie_docker_labels: "{{ docker_labels_common- | combine(mealie_docker_labels_default)- | combine(mealie_docker_labels_custom) }}"+mealie_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='mealie') }}:/app/data"+mealie_role_docker_volumes_custom: []+mealie_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='mealie')+ + lookup('role_var', '_docker_volumes_custom', role='mealie') }}" # Hostname-mealie_docker_hostname: "{{ mealie_name }}"+mealie_role_docker_hostname: "{{ mealie_name }}" # Networks-mealie_docker_networks_alias: "{{ mealie_name }}"-mealie_docker_networks_default: []-mealie_docker_networks_custom: []-mealie_docker_networks: "{{ docker_networks_common- + mealie_docker_networks_default- + mealie_docker_networks_custom }}"--# Capabilities-mealie_docker_capabilities_default: []-mealie_docker_capabilities_custom: []-mealie_docker_capabilities: "{{ mealie_docker_capabilities_default- + mealie_docker_capabilities_custom }}"--# Security Opts-mealie_docker_security_opts_default: []-mealie_docker_security_opts_custom: []-mealie_docker_security_opts: "{{ mealie_docker_security_opts_default- + mealie_docker_security_opts_custom }}"+mealie_role_docker_networks_alias: "{{ mealie_name }}"+mealie_role_docker_networks_default: []+mealie_role_docker_networks_custom: []+mealie_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='mealie')+ + lookup('role_var', '_docker_networks_custom', role='mealie') }}" # Restart Policy-mealie_docker_restart_policy: unless-stopped+mealie_role_docker_restart_policy: unless-stopped # State-mealie_docker_state: started+mealie_role_docker_state: started
modified
roles/mealie/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/medusa/defaults/main.yml
@@ -17,130 +17,87 @@ # Paths ################################ -medusa_paths_folder: "{{ medusa_name }}"-medusa_paths_location: "{{ server_appdata_path }}/{{ medusa_paths_folder }}"-medusa_paths_folders_list:- - "{{ medusa_paths_location }}"+medusa_role_paths_folder: "{{ medusa_name }}"+medusa_role_paths_location: "{{ server_appdata_path }}/{{ medusa_role_paths_folder }}"+medusa_role_paths_folders_list:+ - "{{ medusa_role_paths_location }}" ################################ # Web ################################ -medusa_web_subdomain: "{{ medusa_name }}"-medusa_web_domain: "{{ user.domain }}"-medusa_web_port: "8081"-medusa_web_url: "{{ 'https://' + (medusa_web_subdomain + '.' + medusa_web_domain- if (medusa_web_subdomain | length > 0)- else medusa_web_domain) }}"+medusa_role_web_subdomain: "{{ medusa_name }}"+medusa_role_web_domain: "{{ user.domain }}"+medusa_role_web_port: "8081"+medusa_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='medusa') + '.' + lookup('role_var', '_web_domain', role='medusa')+ if (lookup('role_var', '_web_subdomain', role='medusa') | length > 0)+ else lookup('role_var', '_web_domain', role='medusa')) }}" ################################ # DNS ################################ -medusa_dns_record: "{{ medusa_web_subdomain }}"-medusa_dns_zone: "{{ medusa_web_domain }}"-medusa_dns_proxy: "{{ dns.proxied }}"+medusa_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='medusa') }}"+medusa_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='medusa') }}"+medusa_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -medusa_traefik_sso_middleware: ""-medusa_traefik_middleware_default: "{{ traefik_default_middleware }}"-medusa_traefik_middleware_custom: ""-medusa_traefik_certresolver: "{{ traefik_default_certresolver }}"-medusa_traefik_enabled: true-medusa_traefik_api_enabled: false-medusa_traefik_api_endpoint: ""+medusa_role_traefik_sso_middleware: ""+medusa_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+medusa_role_traefik_middleware_custom: ""+medusa_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+medusa_role_traefik_enabled: true+medusa_role_traefik_api_enabled: false+medusa_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-medusa_docker_container: "{{ medusa_name }}"+medusa_role_docker_container: "{{ medusa_name }}" # Image-medusa_docker_image_pull: true-medusa_docker_image_tag: "latest"-medusa_docker_image: "lscr.io/linuxserver/medusa:{{ medusa_docker_image_tag }}"--# Ports-medusa_docker_ports_defaults: []-medusa_docker_ports_custom: []-medusa_docker_ports: "{{ medusa_docker_ports_defaults- + medusa_docker_ports_custom }}"+medusa_role_docker_image_pull: true+medusa_role_docker_image_tag: "latest"+medusa_role_docker_image_repo: "lscr.io/linuxserver/medusa"+medusa_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='medusa') }}:{{ lookup('role_var', '_docker_image_tag', role='medusa') }}" # Envs-medusa_docker_envs_default:+medusa_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}" UMASK: "002"-medusa_docker_envs_custom: {}-medusa_docker_envs: "{{ medusa_docker_envs_default- | combine(medusa_docker_envs_custom) }}"--# Commands-medusa_docker_commands_default: []-medusa_docker_commands_custom: []-medusa_docker_commands: "{{ medusa_docker_commands_default- + medusa_docker_commands_custom }}"+medusa_role_docker_envs_custom: {}+medusa_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='medusa')+ | combine(lookup('role_var', '_docker_envs_custom', role='medusa')) }}" # Volumes-medusa_docker_volumes_default:- - "{{ medusa_paths_location }}:/config"- - "/opt/scripts:/scripts"+medusa_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='medusa') }}:/config"+ - "{{ server_appdata_path }}/scripts:/scripts" - "/mnt/unionfs/Media/TV:/tv"-medusa_docker_volumes_custom: []-medusa_docker_volumes: "{{ medusa_docker_volumes_default- + medusa_docker_volumes_custom }}"--# Devices-medusa_docker_devices_default: []-medusa_docker_devices_custom: []-medusa_docker_devices: "{{ medusa_docker_devices_default- + medusa_docker_devices_custom }}"--# Hosts-medusa_docker_hosts_default: {}-medusa_docker_hosts_custom: {}-medusa_docker_hosts: "{{ docker_hosts_common- | combine(medusa_docker_hosts_default)- | combine(medusa_docker_hosts_custom) }}"--# Labels-medusa_docker_labels_default: {}-medusa_docker_labels_custom: {}-medusa_docker_labels: "{{ docker_labels_common- | combine(medusa_docker_labels_default)- | combine(medusa_docker_labels_custom) }}"+medusa_role_docker_volumes_custom: []+medusa_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='medusa')+ + lookup('role_var', '_docker_volumes_custom', role='medusa') }}" # Hostname-medusa_docker_hostname: "{{ medusa_name }}"+medusa_role_docker_hostname: "{{ medusa_name }}" # Networks-medusa_docker_networks_alias: "{{ medusa_name }}"-medusa_docker_networks_default: []-medusa_docker_networks_custom: []-medusa_docker_networks: "{{ docker_networks_common- + medusa_docker_networks_default- + medusa_docker_networks_custom }}"--# Capabilities-medusa_docker_capabilities_default: []-medusa_docker_capabilities_custom: []-medusa_docker_capabilities: "{{ medusa_docker_capabilities_default- + medusa_docker_capabilities_custom }}"--# Security Opts-medusa_docker_security_opts_default: []-medusa_docker_security_opts_custom: []-medusa_docker_security_opts: "{{ medusa_docker_security_opts_default- + medusa_docker_security_opts_custom }}"+medusa_role_docker_networks_alias: "{{ medusa_name }}"+medusa_role_docker_networks_default: []+medusa_role_docker_networks_custom: []+medusa_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='medusa')+ + lookup('role_var', '_docker_networks_custom', role='medusa') }}" # Restart Policy-medusa_docker_restart_policy: unless-stopped+medusa_role_docker_restart_policy: unless-stopped # State-medusa_docker_state: started+medusa_role_docker_state: started
modified
roles/medusa/tasks/main.yml
@@ -9,9 +9,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/meilisearch/defaults/main.yml
@@ -17,98 +17,55 @@ # Paths ################################ -meilisearch_paths_folder: "{{ meilisearch_name }}"-meilisearch_paths_location: "{{ server_appdata_path }}/{{ meilisearch_paths_folder }}"-meilisearch_paths_folders_list:- - "{{ meilisearch_paths_location }}"+meilisearch_role_paths_folder: "{{ meilisearch_name }}"+meilisearch_role_paths_location: "{{ server_appdata_path }}/{{ meilisearch_role_paths_folder }}"+meilisearch_role_paths_folders_list:+ - "{{ meilisearch_role_paths_location }}" ################################ # Docker ################################ # Container-meilisearch_docker_container: "{{ meilisearch_name }}"+meilisearch_role_docker_container: "{{ meilisearch_name }}" # Image-meilisearch_docker_image_pull: true-meilisearch_docker_image: "getmeili/meilisearch:{{ meilisearch_docker_image_tag }}"-meilisearch_docker_image_tag: "v1.11.1"--# Ports-meilisearch_docker_ports_defaults: []-meilisearch_docker_ports_custom: []-meilisearch_docker_ports: "{{ meilisearch_docker_ports_defaults- + meilisearch_docker_ports_custom }}"+meilisearch_role_docker_image_pull: true+meilisearch_role_docker_image_repo: "getmeili/meilisearch"+meilisearch_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='meilisearch') }}:{{ lookup('role_var', '_docker_image_tag', role='meilisearch') }}"+meilisearch_role_docker_image_tag: "v1.11.1" # Envs-meilisearch_docker_envs_default:+meilisearch_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}" MEILI_NO_ANALYTICS: "true" MEILI_MASTER_KEY: "{{ meilisearch_saltbox_facts.facts.secret_key }}"-meilisearch_docker_envs_custom: {}-meilisearch_docker_envs: "{{ meilisearch_docker_envs_default- | combine(meilisearch_docker_envs_custom) }}"--# Commands-meilisearch_docker_commands_default: []-meilisearch_docker_commands_custom: []-meilisearch_docker_commands: "{{ meilisearch_docker_commands_default- + meilisearch_docker_commands_custom }}"+meilisearch_role_docker_envs_custom: {}+meilisearch_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='meilisearch')+ | combine(lookup('role_var', '_docker_envs_custom', role='meilisearch')) }}" # Volumes-meilisearch_docker_volumes_default:- - "{{ meilisearch_paths_location }}/data:/meili_data"-meilisearch_docker_volumes_custom: []-meilisearch_docker_volumes: "{{ meilisearch_docker_volumes_default- + meilisearch_docker_volumes_custom }}"--# Devices-meilisearch_docker_devices_default: []-meilisearch_docker_devices_custom: []-meilisearch_docker_devices: "{{ meilisearch_docker_devices_default- + meilisearch_docker_devices_custom }}"--# Hosts-meilisearch_docker_hosts_default: {}-meilisearch_docker_hosts_custom: {}-meilisearch_docker_hosts: "{{ docker_hosts_common- | combine(meilisearch_docker_hosts_default)- | combine(meilisearch_docker_hosts_custom) }}"--# Labels-meilisearch_docker_labels_default: {}-meilisearch_docker_labels_custom: {}-meilisearch_docker_labels: "{{ docker_labels_common- | combine(meilisearch_docker_labels_default)- | combine(meilisearch_docker_labels_custom) }}"+meilisearch_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='meilisearch') }}/data:/meili_data"+meilisearch_role_docker_volumes_custom: []+meilisearch_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='meilisearch')+ + lookup('role_var', '_docker_volumes_custom', role='meilisearch') }}" # Hostname-meilisearch_docker_hostname: "{{ meilisearch_name }}"+meilisearch_role_docker_hostname: "{{ meilisearch_name }}" # Networks-meilisearch_docker_networks_alias: "{{ meilisearch_name }}"-meilisearch_docker_networks_default: []-meilisearch_docker_networks_custom: []-meilisearch_docker_networks: "{{ docker_networks_common- + meilisearch_docker_networks_default- + meilisearch_docker_networks_custom }}"--# Capabilities-meilisearch_docker_capabilities_default: []-meilisearch_docker_capabilities_custom: []-meilisearch_docker_capabilities: "{{ meilisearch_docker_capabilities_default- + meilisearch_docker_capabilities_custom }}"--# Security Opts-meilisearch_docker_security_opts_default: []-meilisearch_docker_security_opts_custom: []-meilisearch_docker_security_opts: "{{ meilisearch_docker_security_opts_default- + meilisearch_docker_security_opts_custom }}"+meilisearch_role_docker_networks_alias: "{{ meilisearch_name }}"+meilisearch_role_docker_networks_default: []+meilisearch_role_docker_networks_custom: []+meilisearch_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='meilisearch')+ + lookup('role_var', '_docker_networks_custom', role='meilisearch') }}" # Restart Policy-meilisearch_docker_restart_policy: unless-stopped+meilisearch_role_docker_restart_policy: unless-stopped # State-meilisearch_docker_state: started+meilisearch_role_docker_state: started
modified
roles/meilisearch/tasks/main.yml
@@ -16,6 +16,7 @@ secret_key: "{{ lookup('ansible.builtin.password', '/dev/null', chars=['ascii_letters', 'digits'], length=36) }}" owner: "{{ user.name }}" group: "{{ user.name }}"+ base_path: "{{ server_appdata_path }}" register: meilisearch_saltbox_facts - name: Remove existing Docker container
modified
roles/membarr/defaults/main.yml
@@ -17,100 +17,57 @@ # Paths ################################ -membarr_paths_folder: "{{ membarr_name }}"-membarr_paths_location: "{{ server_appdata_path }}/{{ membarr_paths_folder }}"-membarr_paths_recursive: true-membarr_paths_config_location: "{{ membarr_paths_location }}/config.ini"-membarr_paths_folders_list:- - "{{ membarr_paths_location }}"+membarr_role_paths_folder: "{{ membarr_name }}"+membarr_role_paths_location: "{{ server_appdata_path }}/{{ membarr_role_paths_folder }}"+membarr_role_paths_recursive: true+membarr_role_paths_config_location: "{{ membarr_role_paths_location }}/config.ini"+membarr_role_paths_folders_list:+ - "{{ membarr_role_paths_location }}" ################################ # Docker ################################ # Container-membarr_docker_container: "{{ membarr_name }}"+membarr_role_docker_container: "{{ membarr_name }}" # Image-membarr_docker_image_pull: true-membarr_docker_image_tag: "latest"-membarr_docker_image: "yoruio/membarr:{{ membarr_docker_image_tag }}"--# Ports-membarr_docker_ports_defaults: []-membarr_docker_ports_custom: []-membarr_docker_ports: "{{ membarr_docker_ports_defaults- + membarr_docker_ports_custom }}"+membarr_role_docker_image_pull: true+membarr_role_docker_image_tag: "latest"+membarr_role_docker_image_repo: "yoruio/membarr"+membarr_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='membarr') }}:{{ lookup('role_var', '_docker_image_tag', role='membarr') }}" # Envs-membarr_docker_envs_default:+membarr_role_docker_envs_default: TZ: "{{ tz }}" token: "{{ membarr.discord_token }}"-membarr_docker_envs_custom: {}-membarr_docker_envs: "{{ membarr_docker_envs_default- | combine(membarr_docker_envs_custom) }}"--# Commands-membarr_docker_commands_default: []-membarr_docker_commands_custom: []-membarr_docker_commands: "{{ membarr_docker_commands_default- + membarr_docker_commands_custom }}"+membarr_role_docker_envs_custom: {}+membarr_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='membarr')+ | combine(lookup('role_var', '_docker_envs_custom', role='membarr')) }}" # Volumes-membarr_docker_volumes_default:- - "{{ membarr_paths_location }}:/app/app/config"-membarr_docker_volumes_custom: []-membarr_docker_volumes: "{{ membarr_docker_volumes_default- + membarr_docker_volumes_custom }}"--# Devices-membarr_docker_devices_default: []-membarr_docker_devices_custom: []-membarr_docker_devices: "{{ membarr_docker_devices_default- + membarr_docker_devices_custom }}"--# Hosts-membarr_docker_hosts_default: {}-membarr_docker_hosts_custom: {}-membarr_docker_hosts: "{{ docker_hosts_common- | combine(membarr_docker_hosts_default)- | combine(membarr_docker_hosts_custom) }}"--# Labels-membarr_docker_labels_default: {}-membarr_docker_labels_custom: {}-membarr_docker_labels: "{{ docker_labels_common- | combine(membarr_docker_labels_default)- | combine(membarr_docker_labels_custom) }}"+membarr_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='membarr') }}:/app/app/config"+membarr_role_docker_volumes_custom: []+membarr_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='membarr')+ + lookup('role_var', '_docker_volumes_custom', role='membarr') }}" # Hostname-membarr_docker_hostname: "{{ membarr_name }}"+membarr_role_docker_hostname: "{{ membarr_name }}" # Networks-membarr_docker_networks_alias: "{{ membarr_name }}"-membarr_docker_networks_default: []-membarr_docker_networks_custom: []-membarr_docker_networks: "{{ docker_networks_common- + membarr_docker_networks_default- + membarr_docker_networks_custom }}"--# Capabilities-membarr_docker_capabilities_default: []-membarr_docker_capabilities_custom: []-membarr_docker_capabilities: "{{ membarr_docker_capabilities_default- + membarr_docker_capabilities_custom }}"--# Security Opts-membarr_docker_security_opts_default: []-membarr_docker_security_opts_custom: []-membarr_docker_security_opts: "{{ membarr_docker_security_opts_default- + membarr_docker_security_opts_custom }}"+membarr_role_docker_networks_alias: "{{ membarr_name }}"+membarr_role_docker_networks_default: []+membarr_role_docker_networks_custom: []+membarr_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='membarr')+ + lookup('role_var', '_docker_networks_custom', role='membarr') }}" # Restart Policy-membarr_docker_restart_policy: always+membarr_role_docker_restart_policy: unless-stopped # State-membarr_docker_state: started+membarr_role_docker_state: started # User-membarr_docker_user: "{{ uid }}:{{ gid }}"+membarr_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/membarr/tasks/subtasks/settings.yml
@@ -13,9 +13,9 @@ when: not plex_name is defined # Plex Tasks-- name: "Settings | Check if '{{ plex_paths_config_location | basename }}' exists"+- name: "Settings | Check if '{{ lookup('role_var', '_paths_config_location', role='plex') | basename }}' exists" ansible.builtin.stat:- path: "{{ plex_paths_config_location }}"+ path: "{{ lookup('role_var', '_paths_config_location', role='plex') }}" register: preferences_xml - name: Settings | {{ plex_name }} info tasks@@ -23,7 +23,7 @@ block: - name: Settings | Fetch {{ plex_name }} info community.general.xml:- path: "{{ plex_paths_config_location }}"+ path: "{{ lookup('role_var', '_paths_config_location', role='plex') }}" xpath: /Preferences content: attribute register: preferences_xml_resp@@ -41,18 +41,18 @@ ansible.builtin.set_fact: plex_online_username: "{{ preferences_xml_resp.matches[0].Preferences.PlexOnlineUsername }}" -- name: Settings | Check if `{{ membarr_paths_config_location | basename }}` exists+- name: Settings | Check if `{{ lookup('role_var', '_paths_config_location', role='membarr') | basename }}` exists ansible.builtin.stat:- path: "{{ membarr_paths_config_location }}"+ path: "{{ lookup('role_var', '_paths_config_location', role='membarr') }}" register: membarr_config -- name: Settings | New `{{ membarr_paths_config_location | basename }}` tasks+- name: Settings | New `{{ lookup('role_var', '_paths_config_location', role='membarr') | basename }}` tasks when: not membarr_config.stat.exists block:- - name: Settings | Import default `{{ membarr_paths_config_location | basename }}`+ - name: Settings | Import default `{{ lookup('role_var', '_paths_config_location', role='membarr') | basename }}` ansible.builtin.template: src: config.ini.j2- dest: "{{ membarr_paths_config_location }}"+ dest: "{{ lookup('role_var', '_paths_config_location', role='membarr') }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"
modified
roles/membarr/templates/config.ini.j2
@@ -1,7 +1,7 @@ [bot_envs] Discord_bot_token = {{ membarr.discord_token }} {% if plex_auth_token is defined %}-plex_base_url = {{ plex_web_url }}+plex_base_url = {{ lookup('role_var', '_web_url', role='plex') }} plex_token = {{ plex_auth_token }} plex_server_name = {{ plex_friendly_name }} plex_user = {{ plex_online_username }}
modified
roles/minecraft/defaults/main.yml
@@ -11,150 +11,112 @@ ################################ minecraft_instances: ["minecraft"]-minecraft_dynmap_router_enabled: false++################################+# Settings+################################++minecraft_role_dynmap_router_enabled: false ################################ # Paths ################################ -minecraft_paths_folder: "minecraft"-minecraft_paths_location: "{{ server_appdata_path }}/{{ minecraft_paths_folder }}"-minecraft_paths_folders_list:- - "{{ minecraft_paths_location }}/"- - "{{ minecraft_paths_location }}/{{ minecraft_name }}"- - "{{ minecraft_paths_location }}/{{ minecraft_name }}/data"-minecraft_paths_recursive: true+minecraft_role_paths_folder: "minecraft"+minecraft_role_paths_location: "{{ server_appdata_path }}/{{ minecraft_role_paths_folder }}"+minecraft_role_paths_folders_list:+ - "{{ minecraft_role_paths_location }}/"+ - "{{ minecraft_role_paths_location }}/{{ minecraft_name }}"+ - "{{ minecraft_role_paths_location }}/{{ minecraft_name }}/data"+minecraft_role_paths_recursive: true ################################ # Web ################################ -minecraft_web_subdomain: "{{ minecraft_name }}"-minecraft_web_domain: "{{ user.domain }}"+minecraft_role_web_subdomain: "{{ minecraft_name }}"+minecraft_role_web_domain: "{{ user.domain }}" # Dynmap-minecraft_web_port: "8123"+minecraft_role_web_port: "8123" ################################ # DNS ################################ -minecraft_dns_record: "{{ lookup('vars', minecraft_name + '_web_subdomain', default=minecraft_web_subdomain) }}"-minecraft_dns_zone: "{{ lookup('vars', minecraft_name + '_web_domain', default=minecraft_web_domain) }}"-minecraft_dns_proxy: false+minecraft_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='minecraft') }}"+minecraft_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='minecraft') }}"+minecraft_role_dns_proxy: false ################################ # Traefik ################################ -minecraft_traefik_sso_middleware: ""-minecraft_traefik_middleware_default: "{{ traefik_default_middleware }}"-minecraft_traefik_middleware_custom: ""-minecraft_traefik_certresolver: "{{ traefik_default_certresolver }}"-minecraft_traefik_enabled: "{{ lookup('vars', minecraft_name + '_dynmap_router_enabled', default=minecraft_dynmap_router_enabled) }}"+minecraft_role_traefik_sso_middleware: ""+minecraft_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+minecraft_role_traefik_middleware_custom: ""+minecraft_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+minecraft_role_traefik_enabled: "{{ lookup('role_var', '_dynmap_router_enabled', role='minecraft') }}" ################################ # Ports ################################-minecraft_docker_ports_25565: "{{ port_lookup_minecraft_tcp.meta.port- if (port_lookup_minecraft_tcp.meta.port is defined) and (port_lookup_minecraft_tcp.meta.port | trim | length > 0)- else '25565' }}"+minecraft_role_docker_ports_25565: "{{ port_lookup_minecraft_tcp.meta.port+ if (port_lookup_minecraft_tcp.meta.port is defined) and (port_lookup_minecraft_tcp.meta.port | trim | length > 0)+ else '25565' }}" ################################ # Docker ################################ # Container-minecraft_docker_container: "{{ minecraft_name }}"+minecraft_role_docker_container: "{{ minecraft_name }}" # Image-minecraft_docker_image_pull: true-minecraft_docker_image_repo: "itzg/minecraft-server"-minecraft_docker_image_tag: "latest"-minecraft_docker_image: "{{ lookup('vars', minecraft_name + '_docker_image_repo', default=minecraft_docker_image_repo)- + ':' + lookup('vars', minecraft_name + '_docker_image_tag', default=minecraft_docker_image_tag) }}"+minecraft_role_docker_image_pull: true+minecraft_role_docker_image_repo: "itzg/minecraft-server"+minecraft_role_docker_image_tag: "latest"+minecraft_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='minecraft') }}:{{ lookup('role_var', '_docker_image_tag', role='minecraft') }}" # Ports-minecraft_docker_ports_defaults:- - "{{ minecraft_docker_ports_25565 }}:25565/tcp"-minecraft_docker_ports_custom: []-minecraft_docker_ports: "{{ lookup('vars', minecraft_name + '_docker_ports_defaults', default=minecraft_docker_ports_defaults)- + lookup('vars', minecraft_name + '_docker_ports_custom', default=minecraft_docker_ports_custom) }}"+minecraft_role_docker_ports_default:+ - "{{ lookup('role_var', '_docker_ports_25565', role='minecraft') }}:25565/tcp"+minecraft_role_docker_ports_custom: []+minecraft_role_docker_ports: "{{ lookup('role_var', '_docker_ports_default', role='minecraft')+ + lookup('role_var', '_docker_ports_custom', role='minecraft') }}" # Envs-minecraft_docker_envs_default:+minecraft_role_docker_envs_default: TZ: "{{ tz }}" EULA: "TRUE" UID: "{{ uid }}" GID: "{{ gid }}"-minecraft_docker_envs_custom: {}-minecraft_docker_envs: "{{ lookup('vars', minecraft_name + '_docker_envs_default', default=minecraft_docker_envs_default)- | combine(lookup('vars', minecraft_name + '_docker_envs_custom', default=minecraft_docker_envs_custom)) }}"--# Commands-minecraft_docker_commands_default: []-minecraft_docker_commands_custom: []-minecraft_docker_commands: "{{ lookup('vars', minecraft_name + '_docker_commands_default', default=minecraft_docker_commands_default)- + lookup('vars', minecraft_name + '_docker_commands_custom', default=minecraft_docker_commands_custom) }}"+minecraft_role_docker_envs_custom: {}+minecraft_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='minecraft')+ | combine(lookup('role_var', '_docker_envs_custom', role='minecraft')) }}" # Volumes-minecraft_docker_volumes_default:- - "{{ minecraft_paths_location }}/{{ minecraft_name }}/data:/data"-minecraft_docker_volumes_custom: []-minecraft_docker_volumes: "{{ lookup('vars', minecraft_name + '_docker_volumes_default', default=minecraft_docker_volumes_default)- + lookup('vars', minecraft_name + '_docker_volumes_custom', default=minecraft_docker_volumes_custom) }}"--# Devices-minecraft_docker_devices_default: []-minecraft_docker_devices_custom: []-minecraft_docker_devices: "{{ lookup('vars', minecraft_name + '_docker_devices_default', default=minecraft_docker_devices_default)- + lookup('vars', minecraft_name + '_docker_devices_custom', default=minecraft_docker_devices_custom) }}"--# Hosts-minecraft_docker_hosts_default: {}-minecraft_docker_hosts_custom: {}-minecraft_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', minecraft_name + '_docker_hosts_default', default=minecraft_docker_hosts_default))- | combine(lookup('vars', minecraft_name + '_docker_hosts_custom', default=minecraft_docker_hosts_custom)) }}"--# Labels-minecraft_docker_labels_default: {}-minecraft_docker_labels_custom: {}-minecraft_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', minecraft_name + '_docker_labels_default', default=minecraft_docker_labels_default))- | combine(lookup('vars', minecraft_name + '_docker_labels_custom', default=minecraft_docker_labels_custom)) }}"+minecraft_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='minecraft') }}/{{ minecraft_name }}/data:/data"+minecraft_role_docker_volumes_custom: []+minecraft_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='minecraft')+ + lookup('role_var', '_docker_volumes_custom', role='minecraft') }}" # Hostname-minecraft_docker_hostname: "{{ minecraft_name }}"--# Network Mode-minecraft_docker_network_mode_default: "{{ docker_networks_name_common }}"-minecraft_docker_network_mode: "{{ lookup('vars', minecraft_name + '_docker_network_mode_default', default=minecraft_docker_network_mode_default) }}"+minecraft_role_docker_hostname: "{{ minecraft_name }}" # Networks-minecraft_docker_networks_alias: "{{ minecraft_name }}"-minecraft_docker_networks_default: []-minecraft_docker_networks_custom: []-minecraft_docker_networks: "{{ docker_networks_common- + lookup('vars', minecraft_name + '_docker_networks_default', default=minecraft_docker_networks_default)- + lookup('vars', minecraft_name + '_docker_networks_custom', default=minecraft_docker_networks_custom) }}"--# Capabilities-minecraft_docker_capabilities_default: []-minecraft_docker_capabilities_custom: []-minecraft_docker_capabilities: "{{ lookup('vars', minecraft_name + '_docker_capabilities_default', default=minecraft_docker_capabilities_default)- + lookup('vars', minecraft_name + '_docker_capabilities_custom', default=minecraft_docker_capabilities_custom) }}"--# Security Opts-minecraft_docker_security_opts_default: []-minecraft_docker_security_opts_custom: []-minecraft_docker_security_opts: "{{ lookup('vars', minecraft_name + '_docker_security_opts_default', default=minecraft_docker_security_opts_default)- + lookup('vars', minecraft_name + '_docker_security_opts_custom', default=minecraft_docker_security_opts_custom) }}"+minecraft_role_docker_networks_alias: "{{ minecraft_name }}"+minecraft_role_docker_networks_default: []+minecraft_role_docker_networks_custom: []+minecraft_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='minecraft')+ + lookup('role_var', '_docker_networks_custom', role='minecraft') }}" # Restart Policy-minecraft_docker_restart_policy: unless-stopped+minecraft_role_docker_restart_policy: unless-stopped # Stop Timeout-minecraft_docker_stop_timeout: 900+minecraft_role_docker_stop_timeout: 900 # State-minecraft_docker_state: started+minecraft_role_docker_state: started
modified
roles/minecraft/tasks/main2.yml
@@ -9,9 +9,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -27,7 +27,7 @@ community.general.cloudflare_dns: account_api_key: "{{ cloudflare.api }}" account_email: "{{ cloudflare.email }}"- port: "{{ minecraft_docker_ports_25565 }}"+ port: "{{ lookup('role_var', '_docker_ports_25565', role='minecraft') }}" priority: 1 proto: tcp proxied: false
modified
roles/minecraft_bedrock/defaults/main.yml
@@ -12,120 +12,88 @@ ################################ minecraft_bedrock_name: minecraft-bedrock-minecraft_bedrock_version: "LATEST"++################################+# Settings+################################++minecraft_bedrock_role_version: "LATEST" ################################ # Paths ################################ -minecraft_bedrock_paths_folder: "{{ minecraft_bedrock_name }}"-minecraft_bedrock_paths_location: "{{ server_appdata_path }}/{{ minecraft_bedrock_paths_folder }}"-minecraft_bedrock_paths_folders_list:- - "{{ minecraft_bedrock_paths_location }}"+minecraft_bedrock_role_paths_folder: "{{ minecraft_bedrock_name }}"+minecraft_bedrock_role_paths_location: "{{ server_appdata_path }}/{{ minecraft_bedrock_role_paths_folder }}"+minecraft_bedrock_role_paths_folders_list:+ - "{{ minecraft_bedrock_role_paths_location }}" ################################ # Web ################################ -minecraft_bedrock_web_subdomain: "{{ minecraft_bedrock_name }}"-minecraft_bedrock_web_domain: "{{ user.domain }}"+minecraft_bedrock_role_web_subdomain: "{{ minecraft_bedrock_name }}"+minecraft_bedrock_role_web_domain: "{{ user.domain }}" ################################ # DNS ################################ -minecraft_bedrock_dns_record: "{{ lookup('vars', minecraft_bedrock_name + '_web_subdomain', default=minecraft_bedrock_web_subdomain) }}"-minecraft_bedrock_dns_zone: "{{ lookup('vars', minecraft_bedrock_name + '_web_domain', default=minecraft_bedrock_web_domain) }}"-minecraft_bedrock_dns_proxy: false+minecraft_bedrock_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='minecraft_bedrock') }}"+minecraft_bedrock_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='minecraft_bedrock') }}"+minecraft_bedrock_role_dns_proxy: false ################################ # Docker ################################ # Container-minecraft_bedrock_docker_container: "{{ minecraft_bedrock_name }}"+minecraft_bedrock_role_docker_container: "{{ minecraft_bedrock_name }}" # Image-minecraft_bedrock_docker_image_pull: true-minecraft_bedrock_docker_image_tag: "latest"-minecraft_bedrock_docker_image: "itzg/minecraft-bedrock-server:{{ minecraft_bedrock_docker_image_tag }}"+minecraft_bedrock_role_docker_image_pull: true+minecraft_bedrock_role_docker_image_tag: "latest"+minecraft_bedrock_role_docker_image_repo: "itzg/minecraft-bedrock-server"+minecraft_bedrock_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='minecraft_bedrock') }}:{{ lookup('role_var', '_docker_image_tag', role='minecraft_bedrock') }}" # Ports-minecraft_bedrock_docker_ports_defaults:+minecraft_bedrock_role_docker_ports_default: - "19132:19132/udp"-minecraft_bedrock_docker_ports_custom: []-minecraft_bedrock_docker_ports: "{{ minecraft_bedrock_docker_ports_defaults- + minecraft_bedrock_docker_ports_custom }}"+minecraft_bedrock_role_docker_ports_custom: []+minecraft_bedrock_role_docker_ports: "{{ lookup('role_var', '_docker_ports_default', role='minecraft_bedrock')+ + lookup('role_var', '_docker_ports_custom', role='minecraft_bedrock') }}" # Envs-minecraft_bedrock_docker_envs_default:+minecraft_bedrock_role_docker_envs_default: TZ: "{{ tz }}" UID: "{{ uid }}" GID: "{{ gid }}" EULA: "TRUE"- VERSION: "{{ minecraft_bedrock_version }}"-minecraft_bedrock_docker_envs_custom: {}-minecraft_bedrock_docker_envs: "{{ minecraft_bedrock_docker_envs_default- | combine(minecraft_bedrock_docker_envs_custom) }}"--# Commands-minecraft_bedrock_docker_commands_default: []-minecraft_bedrock_docker_commands_custom: []-minecraft_bedrock_docker_commands: "{{ minecraft_bedrock_docker_commands_default- + minecraft_bedrock_docker_commands_custom }}"+ VERSION: "{{ lookup('role_var', '_version', role='minecraft_bedrock') }}"+minecraft_bedrock_role_docker_envs_custom: {}+minecraft_bedrock_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='minecraft_bedrock')+ | combine(lookup('role_var', '_docker_envs_custom', role='minecraft_bedrock')) }}" # Volumes-minecraft_bedrock_docker_volumes_default:- - "{{ minecraft_bedrock_paths_location }}:/data"-minecraft_bedrock_docker_volumes_custom: []-minecraft_bedrock_docker_volumes: "{{ minecraft_bedrock_docker_volumes_default- + minecraft_bedrock_docker_volumes_custom }}"--# Devices-minecraft_bedrock_docker_devices_default: []-minecraft_bedrock_docker_devices_custom: []-minecraft_bedrock_docker_devices: "{{ minecraft_bedrock_docker_devices_default- + minecraft_bedrock_docker_devices_custom }}"--# Hosts-minecraft_bedrock_docker_hosts_default: {}-minecraft_bedrock_docker_hosts_custom: {}-minecraft_bedrock_docker_hosts: "{{ docker_hosts_common- | combine(minecraft_bedrock_docker_hosts_default)- | combine(minecraft_bedrock_docker_hosts_custom) }}"--# Labels-minecraft_bedrock_docker_labels_default: {}-minecraft_bedrock_docker_labels_custom: {}-minecraft_bedrock_docker_labels: "{{ docker_labels_common- | combine(minecraft_bedrock_docker_labels_default)- | combine(minecraft_bedrock_docker_labels_custom) }}"+minecraft_bedrock_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='minecraft_bedrock') }}:/data"+minecraft_bedrock_role_docker_volumes_custom: []+minecraft_bedrock_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='minecraft_bedrock')+ + lookup('role_var', '_docker_volumes_custom', role='minecraft_bedrock') }}" # Hostname-minecraft_bedrock_docker_hostname: "{{ minecraft_bedrock_name }}"+minecraft_bedrock_role_docker_hostname: "{{ minecraft_bedrock_name }}" # Networks-minecraft_bedrock_docker_networks_alias: "{{ minecraft_bedrock_name }}"-minecraft_bedrock_docker_networks_default: []-minecraft_bedrock_docker_networks_custom: []-minecraft_bedrock_docker_networks: "{{ docker_networks_common- + minecraft_bedrock_docker_networks_default- + minecraft_bedrock_docker_networks_custom }}"--# Capabilities-minecraft_bedrock_docker_capabilities_default: []-minecraft_bedrock_docker_capabilities_custom: []-minecraft_bedrock_docker_capabilities: "{{ minecraft_bedrock_docker_capabilities_default- + minecraft_bedrock_docker_capabilities_custom }}"--# Security Opts-minecraft_bedrock_docker_security_opts_default: []-minecraft_bedrock_docker_security_opts_custom: []-minecraft_bedrock_docker_security_opts: "{{ minecraft_bedrock_docker_security_opts_default- + minecraft_bedrock_docker_security_opts_custom }}"+minecraft_bedrock_role_docker_networks_alias: "{{ minecraft_bedrock_name }}"+minecraft_bedrock_role_docker_networks_default: []+minecraft_bedrock_role_docker_networks_custom: []+minecraft_bedrock_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='minecraft_bedrock')+ + lookup('role_var', '_docker_networks_custom', role='minecraft_bedrock') }}" # Restart Policy-minecraft_bedrock_docker_restart_policy: unless-stopped+minecraft_bedrock_role_docker_restart_policy: unless-stopped # State-minecraft_bedrock_docker_state: started+minecraft_bedrock_role_docker_state: started
modified
roles/minecraft_bedrock/tasks/main.yml
@@ -6,15 +6,15 @@ # GNU General Public License v3.0 # ######################################################################### ----- name: Remove existing Docker container- ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"- - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}"++- name: Remove existing Docker container+ ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"
modified
roles/miniflux/defaults/main.yml
@@ -17,152 +17,115 @@ # Settings ################################ -miniflux_admin_username: "{{ user.name }}"-miniflux_admin_password: "{{ user.pass }}"-miniflux_create_admin: "1"-miniflux_run_migrations: "1"-miniflux_postgres_username: "{{ lookup('vars', miniflux_name + '_postgres_docker_env_user', default=postgres_docker_env_user) }}"-miniflux_postgres_password: "{{ lookup('vars', miniflux_name + '_postgres_docker_env_password', default=postgres_docker_env_password) }}"--miniflux_postgres_name: "{{ miniflux_name }}-postgres"-miniflux_postgres_docker_env_db: "miniflux"-miniflux_postgres_docker_image_tag: "14-alpine"-miniflux_postgres_docker_image_repo: "postgres"-miniflux_postgres_paths_folder: "{{ miniflux_name }}"-miniflux_postgres_paths_location: "{{ server_appdata_path }}/{{ postgres_paths_folder }}/postgres"+miniflux_role_admin_username: "{{ user.name }}"+miniflux_role_admin_password: "{{ user.pass }}"+miniflux_role_create_admin: "1"+miniflux_role_run_migrations: "1"+miniflux_role_postgres_deploy: true+miniflux_role_postgres_name: "{{ miniflux_name }}-postgres"+miniflux_role_postgres_user: "{{ postgres_role_docker_env_user }}"+miniflux_role_postgres_password: "{{ postgres_role_docker_env_password }}"+miniflux_role_postgres_docker_env_db: "miniflux"+miniflux_role_postgres_docker_image_tag: "14-alpine"+miniflux_role_postgres_docker_image_repo: "postgres"+miniflux_role_postgres_docker_healthcheck:+ test: ["CMD-SHELL", "pg_isready -d {{ lookup('role_var', '_postgres_docker_env_db', role='miniflux') }} -U {{ postgres_role_docker_env_user }}"]+ start_period: 20s+ interval: 30s+ retries: 5+ timeout: 5s+miniflux_role_postgres_paths_folder: "{{ miniflux_name }}"+miniflux_role_postgres_paths_location: "{{ server_appdata_path }}/{{ miniflux_role_postgres_paths_folder }}/postgres" ################################ # Paths ################################ -miniflux_paths_folder: "{{ miniflux_name }}"-miniflux_paths_location: "{{ server_appdata_path }}/{{ miniflux_paths_folder }}"-miniflux_paths_folders_list:- - "{{ miniflux_paths_location }}"+miniflux_role_paths_folder: "{{ miniflux_name }}"+miniflux_role_paths_location: "{{ server_appdata_path }}/{{ miniflux_role_paths_folder }}"+miniflux_role_paths_folders_list:+ - "{{ miniflux_role_paths_location }}" ################################ # Web ################################ -miniflux_web_subdomain: "{{ miniflux_name }}"-miniflux_web_domain: "{{ user.domain }}"-miniflux_web_port: "8080"-miniflux_web_url: "{{ 'https://' + (miniflux_web_subdomain + '.' + miniflux_web_domain- if (miniflux_web_subdomain | length > 0)- else miniflux_web_domain) }}"+miniflux_role_web_subdomain: "{{ miniflux_name }}"+miniflux_role_web_domain: "{{ user.domain }}"+miniflux_role_web_port: "8080"+miniflux_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='miniflux') + '.' + lookup('role_var', '_web_domain', role='miniflux')+ if (lookup('role_var', '_web_subdomain', role='miniflux') | length > 0)+ else lookup('role_var', '_web_domain', role='miniflux')) }}" ################################ # DNS ################################ -miniflux_dns_record: "{{ miniflux_web_subdomain }}"-miniflux_dns_zone: "{{ miniflux_web_domain }}"-miniflux_dns_proxy: "{{ dns.proxied }}"+miniflux_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='miniflux') }}"+miniflux_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='miniflux') }}"+miniflux_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -miniflux_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-miniflux_traefik_middleware_default: "{{ traefik_default_middleware }}"-miniflux_traefik_middleware_custom: ""-miniflux_traefik_certresolver: "{{ traefik_default_certresolver }}"-miniflux_traefik_enabled: true-miniflux_traefik_api_enabled: false-miniflux_traefik_api_endpoint: ""+miniflux_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+miniflux_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+miniflux_role_traefik_middleware_custom: ""+miniflux_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+miniflux_role_traefik_enabled: true+miniflux_role_traefik_api_enabled: false+miniflux_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-miniflux_docker_container: "{{ miniflux_name }}"+miniflux_role_docker_container: "{{ miniflux_name }}" # Image-miniflux_docker_image_pull: true-miniflux_docker_image_tag: "latest"-miniflux_docker_image: "miniflux/miniflux:{{ miniflux_docker_image_tag }}"--# Ports-miniflux_docker_ports_defaults: []-miniflux_docker_ports_custom: []-miniflux_docker_ports: "{{ miniflux_docker_ports_defaults- + miniflux_docker_ports_custom }}"+miniflux_role_docker_image_pull: true+miniflux_role_docker_image_tag: "latest"+miniflux_role_docker_image_repo: "miniflux/miniflux"+miniflux_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='miniflux') }}:{{ lookup('role_var', '_docker_image_tag', role='miniflux') }}" # Envs-miniflux_docker_envs_default:- DATABASE_URL: "postgres://{{ miniflux_postgres_username }}:{{ miniflux_postgres_password }}@{{ miniflux_postgres_name }}/{{ miniflux_postgres_docker_env_db }}?sslmode=disable"- RUN_MIGRATIONS: "{{ miniflux_run_migrations }}"- CREATE_ADMIN: "{{ miniflux_create_admin }}"- ADMIN_USERNAME: "{{ miniflux_admin_username }}"- ADMIN_PASSWORD: "{{ miniflux_admin_password }}"-miniflux_docker_envs_custom: {}-miniflux_docker_envs: "{{ miniflux_docker_envs_default- | combine(miniflux_docker_envs_custom) }}"--# Commands-miniflux_docker_commands_default: []-miniflux_docker_commands_custom: []-miniflux_docker_commands: "{{ miniflux_docker_commands_default- + miniflux_docker_commands_custom }}"+miniflux_role_docker_envs_default:+ DATABASE_URL: "postgres://{{ lookup('role_var', '_postgres_user', role='miniflux') }}:{{ lookup('role_var', '_postgres_password', role='miniflux') }}@{{ lookup('role_var', '_postgres_name', role='miniflux') }}/{{ lookup('role_var', '_postgres_docker_env_db', role='miniflux') }}?sslmode=disable"+ RUN_MIGRATIONS: "{{ lookup('role_var', '_run_migrations', role='miniflux') }}"+ CREATE_ADMIN: "{{ lookup('role_var', '_create_admin', role='miniflux') }}"+ ADMIN_USERNAME: "{{ lookup('role_var', '_admin_username', role='miniflux') }}"+ ADMIN_PASSWORD: "{{ lookup('role_var', '_admin_password', role='miniflux') }}"+miniflux_role_docker_envs_custom: {}+miniflux_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='miniflux')+ | combine(lookup('role_var', '_docker_envs_custom', role='miniflux')) }}" # Volumes-miniflux_docker_volumes_default:+miniflux_role_docker_volumes_default: - /etc/localtime:/etc/localtime:ro-miniflux_docker_volumes_custom: []-miniflux_docker_volumes: "{{ miniflux_docker_volumes_default- + miniflux_docker_volumes_custom }}"--# Devices-miniflux_docker_devices_default: []-miniflux_docker_devices_custom: []-miniflux_docker_devices: "{{ miniflux_docker_devices_default- + miniflux_docker_devices_custom }}"--# Hosts-miniflux_docker_hosts_default: {}-miniflux_docker_hosts_custom: {}-miniflux_docker_hosts: "{{ docker_hosts_common- | combine(miniflux_docker_hosts_default)- | combine(miniflux_docker_hosts_custom) }}"--# Labels-miniflux_docker_labels_default: {}-miniflux_docker_labels_custom: {}-miniflux_docker_labels: "{{ docker_labels_common- | combine(miniflux_docker_labels_default)- | combine(miniflux_docker_labels_custom) }}"+miniflux_role_docker_volumes_custom: []+miniflux_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='miniflux')+ + lookup('role_var', '_docker_volumes_custom', role='miniflux') }}" # Hostname-miniflux_docker_hostname: "{{ miniflux_name }}"+miniflux_role_docker_hostname: "{{ miniflux_name }}" # Networks-miniflux_docker_networks_alias: "{{ miniflux_name }}"-miniflux_docker_networks_default: []-miniflux_docker_networks_custom: []-miniflux_docker_networks: "{{ docker_networks_common- + miniflux_docker_networks_default- + miniflux_docker_networks_custom }}"--# Capabilities-miniflux_docker_capabilities_default: []-miniflux_docker_capabilities_custom: []-miniflux_docker_capabilities: "{{ miniflux_docker_capabilities_default- + miniflux_docker_capabilities_custom }}"--# Security Opts-miniflux_docker_security_opts_default: []-miniflux_docker_security_opts_custom: []-miniflux_docker_security_opts: "{{ miniflux_docker_security_opts_default- + miniflux_docker_security_opts_custom }}"+miniflux_role_docker_networks_alias: "{{ miniflux_name }}"+miniflux_role_docker_networks_default: []+miniflux_role_docker_networks_custom: []+miniflux_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='miniflux')+ + lookup('role_var', '_docker_networks_custom', role='miniflux') }}" # Restart Policy-miniflux_docker_restart_policy: unless-stopped+miniflux_role_docker_restart_policy: unless-stopped # State-miniflux_docker_state: started+miniflux_role_docker_state: started # Dependencies-minuflux_depends_on: "{{ minuflux_postgres_name }}"-minuflux_depends_on_delay: "0"-minuflux_depends_on_healthchecks: "false"+minuflux_role_depends_on: "{{ minuflux_role_postgres_name }}"+minuflux_role_depends_on_delay: "0"+minuflux_role_depends_on_healthchecks: "false"
modified
roles/miniflux/tasks/main.yml
@@ -12,23 +12,25 @@ vars: _var_prefix: "{{ miniflux_name }}-postgres" -- name: PostgreSQL Role+- name: "Import Postgres Role" ansible.builtin.include_role: name: postgres vars:- postgres_instances: ["{{ miniflux_postgres_name }}"]- postgres_docker_env_db: "{{ miniflux_postgres_docker_env_db }}"- postgres_docker_image_tag: "{{ miniflux_postgres_docker_image_tag }}"- postgres_docker_image_repo: "{{ miniflux_postgres_docker_image_repo }}"- postgres_paths_folder: "{{ miniflux_postgres_paths_folder }}"- postgres_paths_location: "{{ miniflux_postgres_paths_location }}"+ postgres_instances: ["{{ lookup('role_var', '_postgres_name', role='miniflux') }}"]+ postgres_role_docker_image_tag: "{{ lookup('role_var', '_postgres_docker_image_tag', role='miniflux') }}"+ postgres_role_docker_image_repo: "{{ lookup('role_var', '_postgres_docker_image_repo', role='miniflux') }}"+ postgres_role_paths_folder: "{{ lookup('role_var', '_postgres_paths_folder', role='miniflux') }}"+ postgres_role_paths_location: "{{ lookup('role_var', '_postgres_paths_location', role='miniflux') }}"+ postgres_role_docker_env_db: "{{ lookup('role_var', '_postgres_docker_env_db', role='miniflux') }}"+ postgres_role_docker_healthcheck: "{{ lookup('role_var', '_postgres_docker_healthcheck', role='miniflux') }}"+ when: lookup('role_var', '_postgres_deploy', role='miniflux') - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/mkvtoolnix/defaults/main.yml
@@ -17,62 +17,57 @@ # Paths ################################ -mkvtoolnix_paths_folder: "{{ mkvtoolnix_name }}"-mkvtoolnix_paths_location: "{{ server_appdata_path }}/{{ mkvtoolnix_paths_folder }}"-mkvtoolnix_paths_folders_list:- - "{{ mkvtoolnix_paths_location }}"+mkvtoolnix_role_paths_folder: "{{ mkvtoolnix_name }}"+mkvtoolnix_role_paths_location: "{{ server_appdata_path }}/{{ mkvtoolnix_role_paths_folder }}"+mkvtoolnix_role_paths_folders_list:+ - "{{ mkvtoolnix_role_paths_location }}" ################################ # Web ################################ -mkvtoolnix_web_subdomain: "{{ mkvtoolnix_name }}"-mkvtoolnix_web_domain: "{{ user.domain }}"-mkvtoolnix_web_port: "5800"-mkvtoolnix_web_url: "{{ 'https://' + (mkvtoolnix_web_subdomain + '.' + mkvtoolnix_web_domain- if (mkvtoolnix_web_subdomain | length > 0)- else mkvtoolnix_web_domain) }}"+mkvtoolnix_role_web_subdomain: "{{ mkvtoolnix_name }}"+mkvtoolnix_role_web_domain: "{{ user.domain }}"+mkvtoolnix_role_web_port: "5800"+mkvtoolnix_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='mkvtoolnix') + '.' + lookup('role_var', '_web_domain', role='mkvtoolnix')+ if (lookup('role_var', '_web_subdomain', role='mkvtoolnix') | length > 0)+ else lookup('role_var', '_web_domain', role='mkvtoolnix')) }}" ################################ # DNS ################################ -mkvtoolnix_dns_record: "{{ mkvtoolnix_web_subdomain }}"-mkvtoolnix_dns_zone: "{{ mkvtoolnix_web_domain }}"-mkvtoolnix_dns_proxy: "{{ dns.proxied }}"+mkvtoolnix_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='mkvtoolnix') }}"+mkvtoolnix_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='mkvtoolnix') }}"+mkvtoolnix_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -mkvtoolnix_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-mkvtoolnix_traefik_middleware_default: "{{ traefik_default_middleware }}"-mkvtoolnix_traefik_middleware_custom: ""-mkvtoolnix_traefik_certresolver: "{{ traefik_default_certresolver }}"-mkvtoolnix_traefik_enabled: true-mkvtoolnix_traefik_api_enabled: false-mkvtoolnix_traefik_api_endpoint: ""+mkvtoolnix_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+mkvtoolnix_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+mkvtoolnix_role_traefik_middleware_custom: ""+mkvtoolnix_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+mkvtoolnix_role_traefik_enabled: true+mkvtoolnix_role_traefik_api_enabled: false+mkvtoolnix_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-mkvtoolnix_docker_container: "{{ mkvtoolnix_name }}"+mkvtoolnix_role_docker_container: "{{ mkvtoolnix_name }}" # Image-mkvtoolnix_docker_image_pull: true-mkvtoolnix_docker_image_tag: "latest"-mkvtoolnix_docker_image: "jlesage/mkvtoolnix:{{ mkvtoolnix_docker_image_tag }}"--# Ports-mkvtoolnix_docker_ports_defaults: []-mkvtoolnix_docker_ports_custom: []-mkvtoolnix_docker_ports: "{{ mkvtoolnix_docker_ports_defaults- + mkvtoolnix_docker_ports_custom }}"+mkvtoolnix_role_docker_image_pull: true+mkvtoolnix_role_docker_image_tag: "latest"+mkvtoolnix_role_docker_image_repo: "jlesage/mkvtoolnix"+mkvtoolnix_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='mkvtoolnix') }}:{{ lookup('role_var', '_docker_image_tag', role='mkvtoolnix') }}" # Envs-mkvtoolnix_docker_envs_default:+mkvtoolnix_role_docker_envs_default: USER_ID: "{{ uid }}" GROUP_ID: "{{ gid }}" TZ: "{{ tz }}"@@ -81,69 +76,31 @@ CLEAN_TMP_DIR: "1" UMASK: "000" ENABLE_CJK_FONT: "1"-mkvtoolnix_docker_envs_custom: {}-mkvtoolnix_docker_envs: "{{ mkvtoolnix_docker_envs_default- | combine(mkvtoolnix_docker_envs_custom) }}"--# Commands-mkvtoolnix_docker_commands_default: []-mkvtoolnix_docker_commands_custom: []-mkvtoolnix_docker_commands: "{{ mkvtoolnix_docker_commands_default- + mkvtoolnix_docker_commands_custom }}"+mkvtoolnix_role_docker_envs_custom: {}+mkvtoolnix_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='mkvtoolnix')+ | combine(lookup('role_var', '_docker_envs_custom', role='mkvtoolnix')) }}" # Volumes-mkvtoolnix_docker_volumes_default:- - "{{ mkvtoolnix_paths_location }}:/config:rw"+mkvtoolnix_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='mkvtoolnix') }}:/config" - "/mnt/unionfs:/storage"-mkvtoolnix_docker_volumes_custom: []-mkvtoolnix_docker_volumes: "{{ mkvtoolnix_docker_volumes_default- + mkvtoolnix_docker_volumes_custom }}"--# Devices-mkvtoolnix_docker_devices_default: []-mkvtoolnix_docker_devices_custom: []-mkvtoolnix_docker_devices: "{{ mkvtoolnix_docker_devices_default- + mkvtoolnix_docker_devices_custom }}"--# Hosts-mkvtoolnix_docker_hosts_default: {}-mkvtoolnix_docker_hosts_custom: {}-mkvtoolnix_docker_hosts: "{{ docker_hosts_common- | combine(mkvtoolnix_docker_hosts_default)- | combine(mkvtoolnix_docker_hosts_custom) }}"--# Labels-mkvtoolnix_docker_labels_default: {}-mkvtoolnix_docker_labels_custom: {}-mkvtoolnix_docker_labels: "{{ docker_labels_common- | combine(mkvtoolnix_docker_labels_default)- | combine(mkvtoolnix_docker_labels_custom) }}"+mkvtoolnix_role_docker_volumes_custom: []+mkvtoolnix_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='mkvtoolnix')+ + lookup('role_var', '_docker_volumes_custom', role='mkvtoolnix') }}" # Hostname-mkvtoolnix_docker_hostname: "{{ mkvtoolnix_name }}"+mkvtoolnix_role_docker_hostname: "{{ mkvtoolnix_name }}" # Networks-mkvtoolnix_docker_networks_alias: "{{ mkvtoolnix_name }}"-mkvtoolnix_docker_networks_default: []-mkvtoolnix_docker_networks_custom: []-mkvtoolnix_docker_networks: "{{ docker_networks_common- + mkvtoolnix_docker_networks_default- + mkvtoolnix_docker_networks_custom }}"--# Capabilities-mkvtoolnix_docker_capabilities_default: []-mkvtoolnix_docker_capabilities_custom: []-mkvtoolnix_docker_capabilities: "{{ mkvtoolnix_docker_capabilities_default- + mkvtoolnix_docker_capabilities_custom }}"--# Security Opts-mkvtoolnix_docker_security_opts_default: []-mkvtoolnix_docker_security_opts_custom: []-mkvtoolnix_docker_security_opts: "{{ mkvtoolnix_docker_security_opts_default- + mkvtoolnix_docker_security_opts_custom }}"+mkvtoolnix_role_docker_networks_alias: "{{ mkvtoolnix_name }}"+mkvtoolnix_role_docker_networks_default: []+mkvtoolnix_role_docker_networks_custom: []+mkvtoolnix_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='mkvtoolnix')+ + lookup('role_var', '_docker_networks_custom', role='mkvtoolnix') }}" # Restart Policy-mkvtoolnix_docker_restart_policy: unless-stopped+mkvtoolnix_role_docker_restart_policy: unless-stopped # State-mkvtoolnix_docker_state: started+mkvtoolnix_role_docker_state: started
modified
roles/mkvtoolnix/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/monitorr/defaults/main.yml
@@ -17,127 +17,84 @@ # Paths ################################ -monitorr_paths_folder: "{{ monitorr_name }}"-monitorr_paths_location: "{{ server_appdata_path }}/{{ monitorr_paths_folder }}"-monitorr_paths_folders_list:- - "{{ monitorr_paths_location }}"+monitorr_role_paths_folder: "{{ monitorr_name }}"+monitorr_role_paths_location: "{{ server_appdata_path }}/{{ monitorr_role_paths_folder }}"+monitorr_role_paths_folders_list:+ - "{{ monitorr_role_paths_location }}" ################################ # Web ################################ -monitorr_web_subdomain: "{{ monitorr_name }}"-monitorr_web_domain: "{{ user.domain }}"-monitorr_web_port: "80"-monitorr_web_url: "{{ 'https://' + (monitorr_web_subdomain + '.' + monitorr_web_domain- if (monitorr_web_subdomain | length > 0)- else monitorr_web_domain) }}"+monitorr_role_web_subdomain: "{{ monitorr_name }}"+monitorr_role_web_domain: "{{ user.domain }}"+monitorr_role_web_port: "80"+monitorr_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='monitorr') + '.' + lookup('role_var', '_web_domain', role='monitorr')+ if (lookup('role_var', '_web_subdomain', role='monitorr') | length > 0)+ else lookup('role_var', '_web_domain', role='monitorr')) }}" ################################ # DNS ################################ -monitorr_dns_record: "{{ monitorr_web_subdomain }}"-monitorr_dns_zone: "{{ monitorr_web_domain }}"-monitorr_dns_proxy: "{{ dns.proxied }}"+monitorr_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='monitorr') }}"+monitorr_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='monitorr') }}"+monitorr_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -monitorr_traefik_sso_middleware: ""-monitorr_traefik_middleware_default: "{{ traefik_default_middleware }}"-monitorr_traefik_middleware_custom: ""-monitorr_traefik_certresolver: "{{ traefik_default_certresolver }}"-monitorr_traefik_enabled: true-monitorr_traefik_api_enabled: false-monitorr_traefik_api_endpoint: ""+monitorr_role_traefik_sso_middleware: ""+monitorr_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+monitorr_role_traefik_middleware_custom: ""+monitorr_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+monitorr_role_traefik_enabled: true+monitorr_role_traefik_api_enabled: false+monitorr_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-monitorr_docker_container: "{{ monitorr_name }}"+monitorr_role_docker_container: "{{ monitorr_name }}" # Image-monitorr_docker_image_pull: true-monitorr_docker_image_tag: "develop"-monitorr_docker_image: "monitorr/monitorr:{{ monitorr_docker_image_tag }}"--# Ports-monitorr_docker_ports_defaults: []-monitorr_docker_ports_custom: []-monitorr_docker_ports: "{{ monitorr_docker_ports_defaults- + monitorr_docker_ports_custom }}"+monitorr_role_docker_image_pull: true+monitorr_role_docker_image_tag: "develop"+monitorr_role_docker_image_repo: "monitorr/monitorr"+monitorr_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='monitorr') }}:{{ lookup('role_var', '_docker_image_tag', role='monitorr') }}" # Envs-monitorr_docker_envs_default:+monitorr_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-monitorr_docker_envs_custom: {}-monitorr_docker_envs: "{{ monitorr_docker_envs_default- | combine(monitorr_docker_envs_custom) }}"--# Commands-monitorr_docker_commands_default: []-monitorr_docker_commands_custom: []-monitorr_docker_commands: "{{ monitorr_docker_commands_default- + monitorr_docker_commands_custom }}"+monitorr_role_docker_envs_custom: {}+monitorr_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='monitorr')+ | combine(lookup('role_var', '_docker_envs_custom', role='monitorr')) }}" # Volumes-monitorr_docker_volumes_default:- - "{{ monitorr_paths_location }}:/app"-monitorr_docker_volumes_custom: []-monitorr_docker_volumes: "{{ monitorr_docker_volumes_default- + monitorr_docker_volumes_custom }}"--# Devices-monitorr_docker_devices_default: []-monitorr_docker_devices_custom: []-monitorr_docker_devices: "{{ monitorr_docker_devices_default- + monitorr_docker_devices_custom }}"--# Hosts-monitorr_docker_hosts_default: {}-monitorr_docker_hosts_custom: {}-monitorr_docker_hosts: "{{ docker_hosts_common- | combine(monitorr_docker_hosts_default)- | combine(monitorr_docker_hosts_custom) }}"--# Labels-monitorr_docker_labels_default: {}-monitorr_docker_labels_custom: {}-monitorr_docker_labels: "{{ docker_labels_common- | combine(monitorr_docker_labels_default)- | combine(monitorr_docker_labels_custom) }}"+monitorr_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='monitorr') }}:/app"+monitorr_role_docker_volumes_custom: []+monitorr_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='monitorr')+ + lookup('role_var', '_docker_volumes_custom', role='monitorr') }}" # Hostname-monitorr_docker_hostname: "{{ monitorr_name }}"+monitorr_role_docker_hostname: "{{ monitorr_name }}" # Networks-monitorr_docker_networks_alias: "{{ monitorr_name }}"-monitorr_docker_networks_default: []-monitorr_docker_networks_custom: []-monitorr_docker_networks: "{{ docker_networks_common- + monitorr_docker_networks_default- + monitorr_docker_networks_custom }}"--# Capabilities-monitorr_docker_capabilities_default: []-monitorr_docker_capabilities_custom: []-monitorr_docker_capabilities: "{{ monitorr_docker_capabilities_default- + monitorr_docker_capabilities_custom }}"--# Security Opts-monitorr_docker_security_opts_default: []-monitorr_docker_security_opts_custom: []-monitorr_docker_security_opts: "{{ monitorr_docker_security_opts_default- + monitorr_docker_security_opts_custom }}"+monitorr_role_docker_networks_alias: "{{ monitorr_name }}"+monitorr_role_docker_networks_default: []+monitorr_role_docker_networks_custom: []+monitorr_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='monitorr')+ + lookup('role_var', '_docker_networks_custom', role='monitorr') }}" # Restart Policy-monitorr_docker_restart_policy: unless-stopped+monitorr_role_docker_restart_policy: unless-stopped # State-monitorr_docker_state: started+monitorr_role_docker_state: started
modified
roles/monitorr/tasks/main.yml
@@ -8,9 +8,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/moviematch/defaults/main.yml
@@ -17,62 +17,57 @@ # Paths ################################ -moviematch_paths_folder: "{{ moviematch_name }}"-moviematch_paths_location: "{{ server_appdata_path }}/{{ moviematch_paths_folder }}"-moviematch_paths_folders_list:- - "{{ moviematch_paths_location }}"+moviematch_role_paths_folder: "{{ moviematch_name }}"+moviematch_role_paths_location: "{{ server_appdata_path }}/{{ moviematch_role_paths_folder }}"+moviematch_role_paths_folders_list:+ - "{{ moviematch_role_paths_location }}" ################################ # Web ################################ -moviematch_web_subdomain: "{{ moviematch_name }}"-moviematch_web_domain: "{{ user.domain }}"-moviematch_web_port: "8000"-moviematch_web_url: "{{ 'https://' + (moviematch_web_subdomain + '.' + moviematch_web_domain- if (moviematch_web_subdomain | length > 0)- else moviematch_web_domain) }}"+moviematch_role_web_subdomain: "{{ moviematch_name }}"+moviematch_role_web_domain: "{{ user.domain }}"+moviematch_role_web_port: "8000"+moviematch_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='moviematch') + '.' + lookup('role_var', '_web_domain', role='moviematch')+ if (lookup('role_var', '_web_subdomain', role='moviematch') | length > 0)+ else lookup('role_var', '_web_domain', role='moviematch')) }}" ################################ # DNS ################################ -moviematch_dns_record: "{{ moviematch_web_subdomain }}"-moviematch_dns_zone: "{{ moviematch_web_domain }}"-moviematch_dns_proxy: "{{ dns.proxied }}"+moviematch_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='moviematch') }}"+moviematch_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='moviematch') }}"+moviematch_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -moviematch_traefik_sso_middleware: ""-moviematch_traefik_middleware_default: "{{ traefik_default_middleware }}"-moviematch_traefik_middleware_custom: ""-moviematch_traefik_certresolver: "{{ traefik_default_certresolver }}"-moviematch_traefik_enabled: true-moviematch_traefik_api_enabled: false-moviematch_traefik_api_endpoint: ""+moviematch_role_traefik_sso_middleware: ""+moviematch_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+moviematch_role_traefik_middleware_custom: ""+moviematch_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+moviematch_role_traefik_enabled: true+moviematch_role_traefik_api_enabled: false+moviematch_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-moviematch_docker_container: "{{ moviematch_name }}"+moviematch_role_docker_container: "{{ moviematch_name }}" # Image-moviematch_docker_image_pull: true-moviematch_docker_image_tag: "latest"-moviematch_docker_image: "lukechannings/moviematch:{{ moviematch_docker_image_tag }}"--# Ports-moviematch_docker_ports_defaults: []-moviematch_docker_ports_custom: []-moviematch_docker_ports: "{{ moviematch_docker_ports_defaults- + moviematch_docker_ports_custom }}"+moviematch_role_docker_image_pull: true+moviematch_role_docker_image_tag: "latest"+moviematch_role_docker_image_repo: "lukechannings/moviematch"+moviematch_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='moviematch') }}:{{ lookup('role_var', '_docker_image_tag', role='moviematch') }}" # Envs-moviematch_docker_envs_default:+moviematch_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"@@ -80,67 +75,23 @@ PLEX_TOKEN: "{{ plex_auth_token }}" LOG_LEVEL: DEBUG LIBRARY_FILTER: "{{ moviematch.libraries }}"-moviematch_docker_envs_custom: {}-moviematch_docker_envs: "{{ moviematch_docker_envs_default- | combine(moviematch_docker_envs_custom) }}"--# Commands-moviematch_docker_commands_default: []-moviematch_docker_commands_custom: []-moviematch_docker_commands: "{{ moviematch_docker_commands_default- + moviematch_docker_commands_custom }}"--# Volumes-moviematch_docker_volumes_default: []-moviematch_docker_volumes_custom: []-moviematch_docker_volumes: "{{ moviematch_docker_volumes_default- + moviematch_docker_volumes_custom }}"--# Devices-moviematch_docker_devices_default: []-moviematch_docker_devices_custom: []-moviematch_docker_devices: "{{ moviematch_docker_devices_default- + moviematch_docker_devices_custom }}"--# Hosts-moviematch_docker_hosts_default: {}-moviematch_docker_hosts_custom: {}-moviematch_docker_hosts: "{{ docker_hosts_common- | combine(moviematch_docker_hosts_default)- | combine(moviematch_docker_hosts_custom) }}"--# Labels-moviematch_docker_labels_default: {}-moviematch_docker_labels_custom: {}-moviematch_docker_labels: "{{ docker_labels_common- | combine(moviematch_docker_labels_default)- | combine(moviematch_docker_labels_custom) }}"+moviematch_role_docker_envs_custom: {}+moviematch_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='moviematch')+ | combine(lookup('role_var', '_docker_envs_custom', role='moviematch')) }}" # Hostname-moviematch_docker_hostname: "{{ moviematch_name }}"+moviematch_role_docker_hostname: "{{ moviematch_name }}" # Networks-moviematch_docker_networks_alias: "{{ moviematch_name }}"-moviematch_docker_networks_default: []-moviematch_docker_networks_custom: []-moviematch_docker_networks: "{{ docker_networks_common- + moviematch_docker_networks_default- + moviematch_docker_networks_custom }}"--# Capabilities-moviematch_docker_capabilities_default: []-moviematch_docker_capabilities_custom: []-moviematch_docker_capabilities: "{{ moviematch_docker_capabilities_default- + moviematch_docker_capabilities_custom }}"--# Security Opts-moviematch_docker_security_opts_default: []-moviematch_docker_security_opts_custom: []-moviematch_docker_security_opts: "{{ moviematch_docker_security_opts_default- + moviematch_docker_security_opts_custom }}"+moviematch_role_docker_networks_alias: "{{ moviematch_name }}"+moviematch_role_docker_networks_default: []+moviematch_role_docker_networks_custom: []+moviematch_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='moviematch')+ + lookup('role_var', '_docker_networks_custom', role='moviematch') }}" # Restart Policy-moviematch_docker_restart_policy: unless-stopped+moviematch_role_docker_restart_policy: unless-stopped # State-moviematch_docker_state: started+moviematch_role_docker_state: started
modified
roles/moviematch/tasks/main.yml
@@ -22,21 +22,15 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" - name: Create directories- ansible.builtin.file:- path: "{{ item }}"- state: directory- owner: "{{ user.name }}"- group: "{{ user.name }}"- mode: "0775"- with_items: "{{ lookup('vars', role_name + '_paths_folders_list') }}"+ ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" - name: Import Plex Auth Token role ansible.builtin.include_role:
modified
roles/mqtt/defaults/main.yml
@@ -17,103 +17,60 @@ # Paths ################################ -mqtt_paths_folder: "{{ mqtt_name }}"-mqtt_paths_location: "{{ server_appdata_path }}/{{ mqtt_paths_folder }}"-mqtt_paths_config_location: "{{ mqtt_paths_location }}/config/mosquitto.conf"-mqtt_paths_folders_list:- - "{{ mqtt_paths_location }}/config"- - "{{ mqtt_paths_location }}/data"- - "{{ mqtt_paths_location }}/log"+mqtt_role_paths_folder: "{{ mqtt_name }}"+mqtt_role_paths_location: "{{ server_appdata_path }}/{{ mqtt_role_paths_folder }}"+mqtt_role_paths_config_location: "{{ mqtt_role_paths_location }}/config/mosquitto.conf"+mqtt_role_paths_folders_list:+ - "{{ mqtt_role_paths_location }}/config"+ - "{{ mqtt_role_paths_location }}/data"+ - "{{ mqtt_role_paths_location }}/log" ################################ # Docker ################################ # Container-mqtt_docker_container: "{{ mqtt_name }}"+mqtt_role_docker_container: "{{ mqtt_name }}" # Image-mqtt_docker_image_pull: true-mqtt_docker_image_tag: "latest"-mqtt_docker_image: "eclipse-mosquitto:{{ mqtt_docker_image_tag }}"--# Ports-mqtt_docker_ports_defaults: []-mqtt_docker_ports_custom: []-mqtt_docker_ports: "{{ mqtt_docker_ports_defaults- + mqtt_docker_ports_custom }}"+mqtt_role_docker_image_pull: true+mqtt_role_docker_image_tag: "latest"+mqtt_role_docker_image_repo: "eclipse-mosquitto"+mqtt_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='mqtt') }}:{{ lookup('role_var', '_docker_image_tag', role='mqtt') }}" # Envs-mqtt_docker_envs_default:+mqtt_role_docker_envs_default: TZ: "{{ tz }}"-mqtt_docker_envs_custom: {}-mqtt_docker_envs: "{{ mqtt_docker_envs_default- | combine(mqtt_docker_envs_custom) }}"--# Commands-mqtt_docker_commands_default: []-mqtt_docker_commands_custom: []-mqtt_docker_commands: "{{ mqtt_docker_commands_default- + mqtt_docker_commands_custom }}"+mqtt_role_docker_envs_custom: {}+mqtt_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='mqtt')+ | combine(lookup('role_var', '_docker_envs_custom', role='mqtt')) }}" # Volumes-mqtt_docker_volumes_default:- - "{{ mqtt_paths_location }}/config:/mosquitto/config"- - "{{ mqtt_paths_location }}/data:/mosquitto/data"- - "{{ mqtt_paths_location }}/log:/mosquitto/log"+mqtt_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='mqtt') }}/config:/mosquitto/config"+ - "{{ lookup('role_var', '_paths_location', role='mqtt') }}/data:/mosquitto/data"+ - "{{ lookup('role_var', '_paths_location', role='mqtt') }}/log:/mosquitto/log" - "/etc/localtime:/etc/localtime:ro"-mqtt_docker_volumes_custom: []-mqtt_docker_volumes: "{{ mqtt_docker_volumes_default- + mqtt_docker_volumes_custom }}"--# Devices-mqtt_docker_devices_default: []-mqtt_docker_devices_custom: []-mqtt_docker_devices: "{{ mqtt_docker_devices_default- + mqtt_docker_devices_custom }}"--# Hosts-mqtt_docker_hosts_default: {}-mqtt_docker_hosts_custom: {}-mqtt_docker_hosts: "{{ docker_hosts_common- | combine(mqtt_docker_hosts_default)- | combine(mqtt_docker_hosts_custom) }}"--# Labels-mqtt_docker_labels_default: {}-mqtt_docker_labels_custom: {}-mqtt_docker_labels: "{{ docker_labels_common- | combine(mqtt_docker_labels_default)- | combine(mqtt_docker_labels_custom) }}"+mqtt_role_docker_volumes_custom: []+mqtt_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='mqtt')+ + lookup('role_var', '_docker_volumes_custom', role='mqtt') }}" # Hostname-mqtt_docker_hostname: "{{ mqtt_name }}"+mqtt_role_docker_hostname: "{{ mqtt_name }}" # Networks-mqtt_docker_networks_alias: "{{ mqtt_name }}"-mqtt_docker_networks_default: []-mqtt_docker_networks_custom: []-mqtt_docker_networks: "{{ docker_networks_common- + mqtt_docker_networks_default- + mqtt_docker_networks_custom }}"--# Capabilities-mqtt_docker_capabilities_default: []-mqtt_docker_capabilities_custom: []-mqtt_docker_capabilities: "{{ mqtt_docker_capabilities_default- + mqtt_docker_capabilities_custom }}"--# Security Opts-mqtt_docker_security_opts_default: []-mqtt_docker_security_opts_custom: []-mqtt_docker_security_opts: "{{ mqtt_docker_security_opts_default- + mqtt_docker_security_opts_custom }}"+mqtt_role_docker_networks_alias: "{{ mqtt_name }}"+mqtt_role_docker_networks_default: []+mqtt_role_docker_networks_custom: []+mqtt_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='mqtt')+ + lookup('role_var', '_docker_networks_custom', role='mqtt') }}" # Restart Policy-mqtt_docker_restart_policy: unless-stopped+mqtt_role_docker_restart_policy: unless-stopped # State-mqtt_docker_state: started+mqtt_role_docker_state: started # User-mqtt_docker_user: "{{ uid }}:{{ gid }}"+mqtt_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/mqtt/tasks/main.yml
@@ -13,15 +13,15 @@ - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" -- name: Check if `{{ mqtt_paths_config_location | basename }}` exists+- name: Check if `{{ lookup('role_var', '_paths_config_location', role='mqtt') | basename }}` exists ansible.builtin.stat:- path: "{{ mqtt_paths_config_location }}"+ path: "{{ lookup('role_var', '_paths_config_location', role='mqtt') }}" register: mqtt_config - name: Import default config ansible.builtin.template: src: mosquitto.conf.j2- dest: "{{ mqtt_paths_config_location }}"+ dest: "{{ lookup('role_var', '_paths_config_location', role='mqtt') }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"
modified
roles/mylar3/defaults/main.yml
@@ -17,129 +17,86 @@ # Paths ################################ -mylar3_paths_folder: "{{ mylar3_name }}"-mylar3_paths_location: "{{ server_appdata_path }}/{{ mylar3_paths_folder }}"-mylar3_paths_folders_list:- - "{{ mylar3_paths_location }}"- - /mnt/local/Media/Comics+mylar3_role_paths_folder: "{{ mylar3_name }}"+mylar3_role_paths_location: "{{ server_appdata_path }}/{{ mylar3_role_paths_folder }}"+mylar3_role_paths_folders_list:+ - "{{ mylar3_role_paths_location }}"+ - "{{ server_local_folder_path }}/Media/Comics" ################################ # Web ################################ -mylar3_web_subdomain: "{{ mylar3_name }}"-mylar3_web_domain: "{{ user.domain }}"-mylar3_web_port: "8090"-mylar3_web_url: "{{ 'https://' + (mylar3_web_subdomain + '.' + mylar3_web_domain- if (mylar3_web_subdomain | length > 0)- else mylar3_web_domain) }}"+mylar3_role_web_subdomain: "{{ mylar3_name }}"+mylar3_role_web_domain: "{{ user.domain }}"+mylar3_role_web_port: "8090"+mylar3_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='mylar3') + '.' + lookup('role_var', '_web_domain', role='mylar3')+ if (lookup('role_var', '_web_subdomain', role='mylar3') | length > 0)+ else lookup('role_var', '_web_domain', role='mylar3')) }}" ################################ # DNS ################################ -mylar3_dns_record: "{{ mylar3_web_subdomain }}"-mylar3_dns_zone: "{{ mylar3_web_domain }}"-mylar3_dns_proxy: "{{ dns.proxied }}"+mylar3_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='mylar3') }}"+mylar3_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='mylar3') }}"+mylar3_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -mylar3_traefik_sso_middleware: ""-mylar3_traefik_middleware_default: "{{ traefik_default_middleware }}"-mylar3_traefik_middleware_custom: ""-mylar3_traefik_certresolver: "{{ traefik_default_certresolver }}"-mylar3_traefik_enabled: true-mylar3_traefik_api_enabled: false-mylar3_traefik_api_endpoint: ""+mylar3_role_traefik_sso_middleware: ""+mylar3_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+mylar3_role_traefik_middleware_custom: ""+mylar3_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+mylar3_role_traefik_enabled: true+mylar3_role_traefik_api_enabled: false+mylar3_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-mylar3_docker_container: "{{ mylar3_name }}"+mylar3_role_docker_container: "{{ mylar3_name }}" # Image-mylar3_docker_image_pull: true-mylar3_docker_image_tag: "latest"-mylar3_docker_image: "lscr.io/linuxserver/mylar3:{{ mylar3_docker_image_tag }}"--# Ports-mylar3_docker_ports_defaults: []-mylar3_docker_ports_custom: []-mylar3_docker_ports: "{{ mylar3_docker_ports_defaults- + mylar3_docker_ports_custom }}"+mylar3_role_docker_image_pull: true+mylar3_role_docker_image_tag: "latest"+mylar3_role_docker_image_repo: "lscr.io/linuxserver/mylar3"+mylar3_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='mylar3') }}:{{ lookup('role_var', '_docker_image_tag', role='mylar3') }}" # Envs-mylar3_docker_envs_default:+mylar3_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-mylar3_docker_envs_custom: {}-mylar3_docker_envs: "{{ mylar3_docker_envs_default- | combine(mylar3_docker_envs_custom) }}"--# Commands-mylar3_docker_commands_default: []-mylar3_docker_commands_custom: []-mylar3_docker_commands: "{{ mylar3_docker_commands_default- + mylar3_docker_commands_custom }}"+mylar3_role_docker_envs_custom: {}+mylar3_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='mylar3')+ | combine(lookup('role_var', '_docker_envs_custom', role='mylar3')) }}" # Volumes-mylar3_docker_volumes_default:- - "{{ mylar3_paths_location }}:/config"+mylar3_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='mylar3') }}:/config" - "/mnt/unionfs/Media/Comics:/comics"-mylar3_docker_volumes_custom: []-mylar3_docker_volumes: "{{ mylar3_docker_volumes_default- + mylar3_docker_volumes_custom }}"--# Devices-mylar3_docker_devices_default: []-mylar3_docker_devices_custom: []-mylar3_docker_devices: "{{ mylar3_docker_devices_default- + mylar3_docker_devices_custom }}"--# Hosts-mylar3_docker_hosts_default: {}-mylar3_docker_hosts_custom: {}-mylar3_docker_hosts: "{{ docker_hosts_common- | combine(mylar3_docker_hosts_default)- | combine(mylar3_docker_hosts_custom) }}"--# Labels-mylar3_docker_labels_default: {}-mylar3_docker_labels_custom: {}-mylar3_docker_labels: "{{ docker_labels_common- | combine(mylar3_docker_labels_default)- | combine(mylar3_docker_labels_custom) }}"+mylar3_role_docker_volumes_custom: []+mylar3_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='mylar3')+ + lookup('role_var', '_docker_volumes_custom', role='mylar3') }}" # Hostname-mylar3_docker_hostname: "{{ mylar3_name }}"+mylar3_role_docker_hostname: "{{ mylar3_name }}" # Networks-mylar3_docker_networks_alias: "{{ mylar3_name }}"-mylar3_docker_networks_default: []-mylar3_docker_networks_custom: []-mylar3_docker_networks: "{{ docker_networks_common- + mylar3_docker_networks_default- + mylar3_docker_networks_custom }}"--# Capabilities-mylar3_docker_capabilities_default: []-mylar3_docker_capabilities_custom: []-mylar3_docker_capabilities: "{{ mylar3_docker_capabilities_default- + mylar3_docker_capabilities_custom }}"--# Security Opts-mylar3_docker_security_opts_default: []-mylar3_docker_security_opts_custom: []-mylar3_docker_security_opts: "{{ mylar3_docker_security_opts_default- + mylar3_docker_security_opts_custom }}"+mylar3_role_docker_networks_alias: "{{ mylar3_name }}"+mylar3_role_docker_networks_default: []+mylar3_role_docker_networks_custom: []+mylar3_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='mylar3')+ + lookup('role_var', '_docker_networks_custom', role='mylar3') }}" # Restart Policy-mylar3_docker_restart_policy: unless-stopped+mylar3_role_docker_restart_policy: unless-stopped # State-mylar3_docker_state: started+mylar3_role_docker_state: started
modified
roles/mylar3/tasks/main.yml
@@ -8,9 +8,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/n8n/defaults/main.yml
@@ -17,161 +17,127 @@ # Settings ################################ -n8n_postgres_name: "{{ n8n_name }}-postgres"-n8n_postgres_docker_env_db: "{{ n8n_name }}"-n8n_postgres_docker_image_tag: "14-alpine"-n8n_postgres_docker_image_repo: "postgres"-n8n_postgres_paths_folder: "{{ n8n_name }}"-n8n_postgres_paths_location: "{{ server_appdata_path }}/{{ postgres_paths_folder }}/postgres"+n8n_role_postgres_deploy: true+n8n_role_postgres_name: "{{ n8n_name }}-postgres"+n8n_role_postgres_user: "{{ postgres_role_docker_env_user }}"+n8n_role_postgres_password: "{{ postgres_role_docker_env_password }}"+n8n_role_postgres_docker_env_db: "{{ n8n_name }}"+n8n_role_postgres_docker_image_tag: "14-alpine"+n8n_role_postgres_docker_image_repo: "postgres"+n8n_role_postgres_docker_healthcheck:+ test: ["CMD-SHELL", "pg_isready -d {{ lookup('role_var', '_postgres_docker_env_db', role='n8n') }} -U {{ postgres_role_docker_env_user }}"]+ start_period: 20s+ interval: 30s+ retries: 5+ timeout: 5s+n8n_role_postgres_paths_folder: "{{ n8n_name }}"+n8n_role_postgres_paths_location: "{{ server_appdata_path }}/{{ n8n_role_postgres_paths_folder }}/postgres" ################################ # Paths ################################ -n8n_paths_folder: "{{ n8n_name }}"-n8n_paths_location: "{{ server_appdata_path }}/{{ n8n_paths_folder }}"-n8n_paths_folders_list:- - "{{ n8n_paths_location }}"- - "{{ n8n_paths_location }}/data"+n8n_role_paths_folder: "{{ n8n_name }}"+n8n_role_paths_location: "{{ server_appdata_path }}/{{ n8n_role_paths_folder }}"+n8n_role_paths_folders_list:+ - "{{ n8n_role_paths_location }}"+ - "{{ n8n_role_paths_location }}/data" ################################ # Web ################################ -n8n_web_subdomain: "{{ n8n_name }}"-n8n_web_domain: "{{ user.domain }}"-n8n_web_port: "5678"-n8n_web_url: "{{ 'https://' + (n8n_web_subdomain + '.' + n8n_web_domain- if (n8n_web_subdomain | length > 0)- else n8n_web_domain) }}"+n8n_role_web_subdomain: "{{ n8n_name }}"+n8n_role_web_domain: "{{ user.domain }}"+n8n_role_web_port: "5678"+n8n_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='n8n') + '.' + lookup('role_var', '_web_domain', role='n8n')+ if (lookup('role_var', '_web_subdomain', role='n8n') | length > 0)+ else lookup('role_var', '_web_domain', role='n8n')) }}" ################################ # DNS ################################ -n8n_dns_record: "{{ n8n_web_subdomain }}"-n8n_dns_zone: "{{ n8n_web_domain }}"-n8n_dns_proxy: "{{ dns.proxied }}"+n8n_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='n8n') }}"+n8n_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='n8n') }}"+n8n_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -n8n_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-n8n_traefik_middleware_default: "{{ traefik_default_middleware }}"-n8n_traefik_middleware_custom: ""-n8n_traefik_certresolver: "{{ traefik_default_certresolver }}"-n8n_traefik_enabled: true-n8n_traefik_api_enabled: true-n8n_traefik_api_endpoint: "PathPrefix(`/api`) || PathPrefix(`/webhook`)"+n8n_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+n8n_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+n8n_role_traefik_middleware_custom: ""+n8n_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+n8n_role_traefik_enabled: true+n8n_role_traefik_api_enabled: true+n8n_role_traefik_api_endpoint: "PathPrefix(`/api`) || PathPrefix(`/webhook`)" ################################ # Docker ################################ # Container-n8n_docker_container: "{{ n8n_name }}"+n8n_role_docker_container: "{{ n8n_name }}" # Image-n8n_docker_image_pull: true-n8n_docker_image_tag: "latest"-n8n_docker_image: "n8nio/n8n:{{ n8n_docker_image_tag }}"--# Ports-n8n_docker_ports_defaults: []-n8n_docker_ports_custom: []-n8n_docker_ports: "{{ n8n_docker_ports_defaults- + n8n_docker_ports_custom }}"+n8n_role_docker_image_pull: true+n8n_role_docker_image_tag: "latest"+n8n_role_docker_image_repo: "n8nio/n8n"+n8n_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='n8n') }}:{{ lookup('role_var', '_docker_image_tag', role='n8n') }}" # Envs-n8n_docker_envs_default:+n8n_role_docker_envs_default: GENERIC_TIMEZONE: "{{ tz }}" TZ: "{{ tz }}" DB_TYPE: "postgresdb"- DB_POSTGRESDB_DATABASE: "{{ n8n_postgres_docker_env_db }}"- DB_POSTGRESDB_HOST: "{{ n8n_postgres_name }}"+ DB_POSTGRESDB_DATABASE: "{{ lookup('role_var', '_postgres_docker_env_db', role='n8n') }}"+ DB_POSTGRESDB_HOST: "{{ lookup('role_var', '_postgres_name', role='n8n') }}" DB_POSTGRESDB_PORT: "5432"- DB_POSTGRESDB_USER: "{{ postgres_docker_env_user }}"- DB_POSTGRESDB_PASSWORD: "{{ postgres_docker_env_password }}"- N8N_EDITOR_BASE_URL: "{{ n8n_web_url }}"+ DB_POSTGRESDB_USER: "{{ lookup('role_var', '_postgres_user', role='n8n') }}"+ DB_POSTGRESDB_PASSWORD: "{{ lookup('role_var', '_postgres_password', role='n8n') }}"+ N8N_EDITOR_BASE_URL: "{{ lookup('role_var', '_web_url', role='n8n') }}" N8N_DIAGNOSTICS_ENABLED: "false" N8N_HIRING_BANNER_ENABLED: "false" N8N_USER_MANAGEMENT_DISABLED: "true" N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: "true"- WEBHOOK_URL: "{{ n8n_web_url }}/"+ WEBHOOK_URL: "{{ lookup('role_var', '_web_url', role='n8n') }}/" N8N_PROXY_HOPS: "1" N8N_RUNNERS_ENABLED: "true" N8N_USER_FOLDER: "/data"-n8n_docker_envs_custom: {}-n8n_docker_envs: "{{ n8n_docker_envs_default- | combine(n8n_docker_envs_custom) }}"--# Commands-n8n_docker_commands_default: []-n8n_docker_commands_custom: []-n8n_docker_commands: "{{ n8n_docker_commands_default- + n8n_docker_commands_custom }}"+n8n_role_docker_envs_custom: {}+n8n_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='n8n')+ | combine(lookup('role_var', '_docker_envs_custom', role='n8n')) }}" # Volumes-n8n_docker_volumes_default:- - "{{ n8n_paths_location }}/data:/data"-n8n_docker_volumes_custom: []-n8n_docker_volumes: "{{ n8n_docker_volumes_default- + n8n_docker_volumes_custom }}"--# Devices-n8n_docker_devices_default: []-n8n_docker_devices_custom: []-n8n_docker_devices: "{{ n8n_docker_devices_default- + n8n_docker_devices_custom }}"--# Hosts-n8n_docker_hosts_default: {}-n8n_docker_hosts_custom: {}-n8n_docker_hosts: "{{ docker_hosts_common- | combine(n8n_docker_hosts_default)- | combine(n8n_docker_hosts_custom) }}"--# Labels-n8n_docker_labels_default: {}-n8n_docker_labels_custom: {}-n8n_docker_labels: "{{ docker_labels_common- | combine(n8n_docker_labels_default)- | combine(n8n_docker_labels_custom) }}"+n8n_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='n8n') }}/data:/data"+n8n_role_docker_volumes_custom: []+n8n_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='n8n')+ + lookup('role_var', '_docker_volumes_custom', role='n8n') }}" # Hostname-n8n_docker_hostname: "{{ n8n_name }}"+n8n_role_docker_hostname: "{{ n8n_name }}" # Networks-n8n_docker_networks_alias: "{{ n8n_name }}"-n8n_docker_networks_default: []-n8n_docker_networks_custom: []-n8n_docker_networks: "{{ docker_networks_common- + n8n_docker_networks_default- + n8n_docker_networks_custom }}"--# Capabilities-n8n_docker_capabilities_default: []-n8n_docker_capabilities_custom: []-n8n_docker_capabilities: "{{ n8n_docker_capabilities_default- + n8n_docker_capabilities_custom }}"--# Security Opts-n8n_docker_security_opts_default: []-n8n_docker_security_opts_custom: []-n8n_docker_security_opts: "{{ n8n_docker_security_opts_default- + n8n_docker_security_opts_custom }}"+n8n_role_docker_networks_alias: "{{ n8n_name }}"+n8n_role_docker_networks_default: []+n8n_role_docker_networks_custom: []+n8n_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='n8n')+ + lookup('role_var', '_docker_networks_custom', role='n8n') }}" # Restart Policy-n8n_docker_restart_policy: unless-stopped+n8n_role_docker_restart_policy: unless-stopped # State-n8n_docker_state: started+n8n_role_docker_state: started # Dependencies-n8n_depends_on: "{{ n8n_postgres_name }}"-n8n_depends_on_delay: "0"-n8n_depends_on_healthchecks: "false"+n8n_role_depends_on: "{{ lookup('role_var', '_postgres_name', role='n8n') }}"+n8n_role_depends_on_delay: "0"+n8n_role_depends_on_healthchecks: "false" # User-n8n_docker_user: "{{ uid }}:{{ gid }}"+n8n_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/n8n/tasks/main.yml
@@ -14,34 +14,36 @@ - name: Check legacy path ansible.builtin.stat:- path: "{{ n8n_paths_location }}/app"+ path: "{{ n8n_role_paths_location }}/app" register: stat_n8n_legacy_path - name: "Import Postgres Role" ansible.builtin.include_role: name: postgres vars:- postgres_instances: ["{{ n8n_postgres_name }}"]- postgres_docker_env_db: "{{ n8n_postgres_docker_env_db }}"- postgres_docker_image_tag: "{{ n8n_postgres_docker_image_tag }}"- postgres_docker_image_repo: "{{ n8n_postgres_docker_image_repo }}"- postgres_paths_folder: "{{ n8n_postgres_paths_folder }}"- postgres_paths_location: "{{ n8n_postgres_paths_location }}"+ postgres_instances: ["{{ lookup('role_var', '_postgres_name', role='n8n') }}"]+ postgres_role_docker_image_tag: "{{ lookup('role_var', '_postgres_docker_image_tag', role='n8n') }}"+ postgres_role_docker_image_repo: "{{ lookup('role_var', '_postgres_docker_image_repo', role='n8n') }}"+ postgres_role_paths_folder: "{{ lookup('role_var', '_postgres_paths_folder', role='n8n') }}"+ postgres_role_paths_location: "{{ lookup('role_var', '_postgres_paths_location', role='n8n') }}"+ postgres_role_docker_env_db: "{{ lookup('role_var', '_postgres_docker_env_db', role='n8n') }}"+ postgres_role_docker_healthcheck: "{{ lookup('role_var', '_postgres_docker_healthcheck', role='n8n') }}"+ when: lookup('role_var', '_postgres_deploy', role='n8n') - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" - name: Migrate n8n legacy directory migrate_folder:- legacy_path: "{{ n8n_paths_location }}/app"- new_path: "{{ n8n_paths_location }}/data/.n8n"+ legacy_path: "{{ n8n_role_paths_location }}/app"+ new_path: "{{ n8n_role_paths_location }}/data/.n8n" owner: "{{ user.name }}" group: "{{ user.name }}" mode: '0775'
modified
roles/nabarr/defaults/main.yml
@@ -17,92 +17,55 @@ # Paths ################################ -nabarr_paths_folder: "{{ nabarr_name }}"-nabarr_paths_location: "{{ server_appdata_path }}/{{ nabarr_paths_folder }}"-nabarr_paths_folders_list:- - "{{ nabarr_paths_location }}"-nabarr_paths_config_location: "{{ nabarr_paths_location }}/config.yml"+nabarr_role_paths_folder: "{{ nabarr_name }}"+nabarr_role_paths_location: "{{ server_appdata_path }}/{{ nabarr_role_paths_folder }}"+nabarr_role_paths_folders_list:+ - "{{ nabarr_role_paths_location }}"+nabarr_role_paths_config_location: "{{ nabarr_role_paths_location }}/config.yml" ################################ # Docker ################################ # Container-nabarr_docker_container: "{{ nabarr_name }}"+nabarr_role_docker_container: "{{ nabarr_name }}" # Image-nabarr_docker_image_pull: true-nabarr_docker_image_tag: "latest"-nabarr_docker_image: "saltydk/nabarr:{{ nabarr_docker_image_tag }}"+nabarr_role_docker_image_pull: true+nabarr_role_docker_image_tag: "latest"+nabarr_role_docker_image_repo: "saltydk/nabarr"+nabarr_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='nabarr') }}:{{ lookup('role_var', '_docker_image_tag', role='nabarr') }}" # Envs-nabarr_docker_envs_default:+nabarr_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}" APP_VERBOSITY: "0"-nabarr_docker_envs_custom: {}-nabarr_docker_envs: "{{ nabarr_docker_envs_default- | combine(nabarr_docker_envs_custom) }}"--# Commands-nabarr_docker_commands_default: []-nabarr_docker_commands_custom: []-nabarr_docker_commands: "{{ nabarr_docker_commands_default- + nabarr_docker_commands_custom }}"+nabarr_role_docker_envs_custom: {}+nabarr_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='nabarr')+ | combine(lookup('role_var', '_docker_envs_custom', role='nabarr')) }}" # Volumes-nabarr_docker_volumes_default:- - "{{ nabarr_paths_location }}:/config"-nabarr_docker_volumes_custom: []-nabarr_docker_volumes: "{{ nabarr_docker_volumes_default- + nabarr_docker_volumes_custom }}"--# Devices-nabarr_docker_devices_default: []-nabarr_docker_devices_custom: []-nabarr_docker_devices: "{{ nabarr_docker_devices_default- + nabarr_docker_devices_custom }}"--# Hosts-nabarr_docker_hosts_default: {}-nabarr_docker_hosts_custom: {}-nabarr_docker_hosts: "{{ docker_hosts_common- | combine(nabarr_docker_hosts_default)- | combine(nabarr_docker_hosts_custom) }}"--# Labels-nabarr_docker_labels_default: {}-nabarr_docker_labels_custom: {}-nabarr_docker_labels: "{{ docker_labels_common- | combine(nabarr_docker_labels_default)- | combine(nabarr_docker_labels_custom) }}"+nabarr_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='nabarr') }}:/config"+nabarr_role_docker_volumes_custom: []+nabarr_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='nabarr')+ + lookup('role_var', '_docker_volumes_custom', role='nabarr') }}" # Hostname-nabarr_docker_hostname: "{{ nabarr_name }}"+nabarr_role_docker_hostname: "{{ nabarr_name }}" # Networks-nabarr_docker_networks_alias: "{{ nabarr_name }}"-nabarr_docker_networks_default: []-nabarr_docker_networks_custom: []-nabarr_docker_networks: "{{ docker_networks_common- + nabarr_docker_networks_default- + nabarr_docker_networks_custom }}"--# Capabilities-nabarr_docker_capabilities_default: []-nabarr_docker_capabilities_custom: []-nabarr_docker_capabilities: "{{ nabarr_docker_capabilities_default- + nabarr_docker_capabilities_custom }}"--# Security Opts-nabarr_docker_security_opts_default: []-nabarr_docker_security_opts_custom: []-nabarr_docker_security_opts: "{{ nabarr_docker_security_opts_default- + nabarr_docker_security_opts_custom }}"+nabarr_role_docker_networks_alias: "{{ nabarr_name }}"+nabarr_role_docker_networks_default: []+nabarr_role_docker_networks_custom: []+nabarr_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='nabarr')+ + lookup('role_var', '_docker_networks_custom', role='nabarr') }}" # Restart Policy-nabarr_docker_restart_policy: unless-stopped+nabarr_role_docker_restart_policy: unless-stopped # State-nabarr_docker_state: started+nabarr_role_docker_state: started
modified
roles/nabarr/tasks/subtasks/settings.yml
@@ -7,18 +7,18 @@ # GNU General Public License v3.0 # ########################################################################## ----- name: Settings | Check if `{{ nabarr_paths_config_location | basename }}` exists+- name: Settings | Check if `{{ lookup('role_var', '_paths_config_location', role='nabarr') | basename }}` exists ansible.builtin.stat:- path: "{{ nabarr_paths_config_location }}"+ path: "{{ lookup('role_var', '_paths_config_location', role='nabarr') }}" register: nabarr_config -- name: Settings | New `{{ nabarr_paths_config_location | basename }}` tasks+- name: Settings | New `{{ lookup('role_var', '_paths_config_location', role='nabarr') | basename }}` tasks when: not nabarr_config.stat.exists block:- - name: Settings | Import default `{{ nabarr_paths_location | basename }}`+ - name: Settings | Import default `{{ lookup('role_var', '_paths_location', role='nabarr') | basename }}` ansible.builtin.copy: src: config.yml.sample- dest: "{{ nabarr_paths_location }}/config.yml.sample"+ dest: "{{ lookup('role_var', '_paths_location', role='nabarr') }}/config.yml.sample" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"
modified
roles/navidrome/defaults/main.yml
@@ -17,128 +17,79 @@ # Paths ################################ -navidrome_paths_folder: "{{ navidrome_name }}"-navidrome_paths_location: "{{ server_appdata_path }}/{{ navidrome_paths_folder }}"-navidrome_paths_folders_list:- - "{{ navidrome_paths_location }}"+navidrome_role_paths_folder: "{{ navidrome_name }}"+navidrome_role_paths_location: "{{ server_appdata_path }}/{{ navidrome_role_paths_folder }}"+navidrome_role_paths_folders_list:+ - "{{ navidrome_role_paths_location }}" ################################ # Web ################################ -navidrome_web_subdomain: "{{ navidrome_name }}"-navidrome_web_domain: "{{ user.domain }}"-navidrome_web_port: "4533"-navidrome_web_url: "{{ 'https://' + (navidrome_web_subdomain + '.' + navidrome_web_domain- if (navidrome_web_subdomain | length > 0)- else navidrome_web_domain) }}"+navidrome_role_web_subdomain: "{{ navidrome_name }}"+navidrome_role_web_domain: "{{ user.domain }}"+navidrome_role_web_port: "4533"+navidrome_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='navidrome') + '.' + lookup('role_var', '_web_domain', role='navidrome')+ if (lookup('role_var', '_web_subdomain', role='navidrome') | length > 0)+ else lookup('role_var', '_web_domain', role='navidrome')) }}" ################################ # DNS ################################ -navidrome_dns_record: "{{ navidrome_web_subdomain }}"-navidrome_dns_zone: "{{ navidrome_web_domain }}"-navidrome_dns_proxy: "{{ dns.proxied }}"+navidrome_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='navidrome') }}"+navidrome_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='navidrome') }}"+navidrome_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -navidrome_traefik_sso_middleware: ""-navidrome_traefik_middleware_default: "{{ traefik_default_middleware }}"-navidrome_traefik_middleware_custom: ""-navidrome_traefik_certresolver: "{{ traefik_default_certresolver }}"-navidrome_traefik_enabled: true-navidrome_traefik_api_enabled: false-navidrome_traefik_api_endpoint: ""+navidrome_role_traefik_sso_middleware: ""+navidrome_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+navidrome_role_traefik_middleware_custom: ""+navidrome_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+navidrome_role_traefik_enabled: true+navidrome_role_traefik_api_enabled: false+navidrome_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-navidrome_docker_container: "{{ navidrome_name }}"+navidrome_role_docker_container: "{{ navidrome_name }}" # Image-navidrome_docker_image_pull: true-navidrome_docker_image_tag: "latest"-navidrome_docker_image: "deluan/navidrome:{{ navidrome_docker_image_tag }}"--# Ports-navidrome_docker_ports_defaults: []-navidrome_docker_ports_custom: []-navidrome_docker_ports: "{{ navidrome_docker_ports_defaults- + navidrome_docker_ports_custom }}"--# Envs-navidrome_docker_envs_default: {}-navidrome_docker_envs_custom: {}-navidrome_docker_envs: "{{ navidrome_docker_envs_default- | combine(navidrome_docker_envs_custom) }}"--# Commands-navidrome_docker_commands_default: []-navidrome_docker_commands_custom: []-navidrome_docker_commands: "{{ navidrome_docker_commands_default- + navidrome_docker_commands_custom }}"+navidrome_role_docker_image_pull: true+navidrome_role_docker_image_tag: "latest"+navidrome_role_docker_image_repo: "deluan/navidrome"+navidrome_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='navidrome') }}:{{ lookup('role_var', '_docker_image_tag', role='navidrome') }}" # Volumes-navidrome_docker_volumes_default:- - "{{ navidrome_paths_location }}:/data"+navidrome_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='navidrome') }}:/data" - "/mnt/unionfs/Media/Music:/music"-navidrome_docker_volumes_custom: []-navidrome_docker_volumes: "{{ navidrome_docker_volumes_default- + navidrome_docker_volumes_custom }}"--# Devices-navidrome_docker_devices_default: []-navidrome_docker_devices_custom: []-navidrome_docker_devices: "{{ navidrome_docker_devices_default- + navidrome_docker_devices_custom }}"--# Hosts-navidrome_docker_hosts_default: {}-navidrome_docker_hosts_custom: {}-navidrome_docker_hosts: "{{ docker_hosts_common- | combine(navidrome_docker_hosts_default)- | combine(navidrome_docker_hosts_custom) }}"--# Labels-navidrome_docker_labels_default: {}-navidrome_docker_labels_custom: {}-navidrome_docker_labels: "{{ docker_labels_common- | combine(navidrome_docker_labels_default)- | combine(navidrome_docker_labels_custom) }}"+navidrome_role_docker_volumes_custom: []+navidrome_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='navidrome')+ + lookup('role_var', '_docker_volumes_custom', role='navidrome') }}" # Hostname-navidrome_docker_hostname: "{{ navidrome_name }}"+navidrome_role_docker_hostname: "{{ navidrome_name }}" # Networks-navidrome_docker_networks_alias: "{{ navidrome_name }}"-navidrome_docker_networks_default: []-navidrome_docker_networks_custom: []-navidrome_docker_networks: "{{ docker_networks_common- + navidrome_docker_networks_default- + navidrome_docker_networks_custom }}"--# Capabilities-navidrome_docker_capabilities_default: []-navidrome_docker_capabilities_custom: []-navidrome_docker_capabilities: "{{ navidrome_docker_capabilities_default- + navidrome_docker_capabilities_custom }}"--# Security Opts-navidrome_docker_security_opts_default: []-navidrome_docker_security_opts_custom: []-navidrome_docker_security_opts: "{{ navidrome_docker_security_opts_default- + navidrome_docker_security_opts_custom }}"+navidrome_role_docker_networks_alias: "{{ navidrome_name }}"+navidrome_role_docker_networks_default: []+navidrome_role_docker_networks_custom: []+navidrome_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='navidrome')+ + lookup('role_var', '_docker_networks_custom', role='navidrome') }}" # Restart Policy-navidrome_docker_restart_policy: unless-stopped+navidrome_role_docker_restart_policy: unless-stopped # State-navidrome_docker_state: started+navidrome_role_docker_state: started # User-navidrome_docker_user: "{{ uid }}:{{ gid }}"+navidrome_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/navidrome/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/nextcloud/defaults/main.yml
@@ -17,157 +17,120 @@ # Settings ################################ -nextcloud_data_directory: "/var/www/html/data"-nextcloud_php_memory_limit: "512M"-nextcloud_php_upload_limit: "512M"+nextcloud_role_data_directory: "/var/www/html/data"+nextcloud_role_php_memory_limit: "512M"+nextcloud_role_php_upload_limit: "512M" ################################ # Paths ################################ -nextcloud_paths_folder: "{{ nextcloud_name }}"-nextcloud_paths_location: "{{ server_appdata_path }}/{{ nextcloud_paths_folder }}"-nextcloud_paths_folders_list:- - "{{ nextcloud_paths_location }}"+nextcloud_role_paths_folder: "{{ nextcloud_name }}"+nextcloud_role_paths_location: "{{ server_appdata_path }}/{{ nextcloud_role_paths_folder }}"+nextcloud_role_paths_folders_list:+ - "{{ nextcloud_role_paths_location }}" ################################ # Web ################################ -nextcloud_web_subdomain: "{{ nextcloud_name }}"-nextcloud_web_domain: "{{ user.domain }}"-nextcloud_web_port: "80"-nextcloud_web_url: "{{ 'https://' + (nextcloud_web_subdomain + '.' + nextcloud_web_domain- if (nextcloud_web_subdomain | length > 0)- else nextcloud_web_domain) }}"+nextcloud_role_web_subdomain: "{{ nextcloud_name }}"+nextcloud_role_web_domain: "{{ user.domain }}"+nextcloud_role_web_port: "80"+nextcloud_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='nextcloud') + '.' + lookup('role_var', '_web_domain', role='nextcloud')+ if (lookup('role_var', '_web_subdomain', role='nextcloud') | length > 0)+ else lookup('role_var', '_web_domain', role='nextcloud')) }}" ################################ # DNS ################################ -nextcloud_dns_record: "{{ nextcloud_web_subdomain }}"-nextcloud_dns_zone: "{{ nextcloud_web_domain }}"-nextcloud_dns_proxy: "{{ dns.proxied }}"+nextcloud_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='nextcloud') }}"+nextcloud_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='nextcloud') }}"+nextcloud_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -nextcloud_traefik_sso_middleware: ""-nextcloud_traefik_middleware_default: "{{ traefik_default_middleware }}"-nextcloud_traefik_middleware_custom: ""-nextcloud_traefik_certresolver: "{{ traefik_default_certresolver }}"-nextcloud_traefik_enabled: true-nextcloud_traefik_api_enabled: false-nextcloud_traefik_api_endpoint: ""+nextcloud_role_traefik_sso_middleware: ""+nextcloud_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+nextcloud_role_traefik_middleware_custom: ""+nextcloud_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+nextcloud_role_traefik_enabled: true+nextcloud_role_traefik_api_enabled: false+nextcloud_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-nextcloud_docker_container: "{{ nextcloud_name }}"+nextcloud_role_docker_container: "{{ nextcloud_name }}" # Image-nextcloud_docker_image_pull: true-nextcloud_docker_image_tag: "latest"-nextcloud_docker_image: "nextcloud:{{ nextcloud_docker_image_tag }}"--# Ports-nextcloud_docker_ports_defaults: []-nextcloud_docker_ports_custom: []-nextcloud_docker_ports: "{{ nextcloud_docker_ports_defaults- + nextcloud_docker_ports_custom }}"+nextcloud_role_docker_image_pull: true+nextcloud_role_docker_image_tag: "latest"+nextcloud_role_docker_image_repo: "nextcloud"+nextcloud_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='nextcloud') }}:{{ lookup('role_var', '_docker_image_tag', role='nextcloud') }}" # Envs-nextcloud_docker_envs_default:+nextcloud_role_docker_envs_default: TZ: "{{ tz }}" NEXTCLOUD_ADMIN_USER: "{{ user.name }}" NEXTCLOUD_ADMIN_PASSWORD: "{{ user.pass }}"- NEXTCLOUD_TRUSTED_DOMAINS: "{{ nextcloud_web_subdomain + '.' + nextcloud_web_domain }}"- NEXTCLOUD_DATA_DIR: "{{ nextcloud_data_directory }}"+ NEXTCLOUD_TRUSTED_DOMAINS: "{{ lookup('role_var', '_web_subdomain', role='nextcloud') + '.' + lookup('role_var', '_web_domain', role='nextcloud') }}"+ NEXTCLOUD_DATA_DIR: "{{ lookup('role_var', '_data_directory', role='nextcloud') }}" MYSQL_DATABASE: "nextcloud" MYSQL_USER: "root"- MYSQL_PASSWORD: "{{ mariadb_docker_env_password }}"+ MYSQL_PASSWORD: "{{ lookup('role_var', '_docker_env_password', role='mariadb') }}" MYSQL_HOST: "mariadb"- OVERWRITEHOST: "{{ nextcloud_web_subdomain + '.' + nextcloud_web_domain }}"+ OVERWRITEHOST: "{{ lookup('role_var', '_web_subdomain', role='nextcloud') + '.' + lookup('role_var', '_web_domain', role='nextcloud') }}" OVERWRITEPROTOCOL: "https"- OVERWRITECLIURL: "https://{{ nextcloud_web_subdomain + '.' + nextcloud_web_domain }}"- PHP_MEMORY_LIMIT: "{{ nextcloud_php_memory_limit }}"- PHP_UPLOAD_LIMIT: "{{ nextcloud_php_upload_limit }}"+ OVERWRITECLIURL: "{{ lookup('role_var', '_web_url', role='nextcloud') }}"+ PHP_MEMORY_LIMIT: "{{ lookup('role_var', '_php_memory_limit', role='nextcloud') }}"+ PHP_UPLOAD_LIMIT: "{{ lookup('role_var', '_php_upload_limit', role='nextcloud') }}" TRUSTED_PROXIES: "172.19.0.0/16"-nextcloud_docker_envs_custom: {}-nextcloud_docker_envs: "{{ nextcloud_docker_envs_default- | combine(nextcloud_docker_envs_custom) }}"--# Commands-nextcloud_docker_commands_default: []-nextcloud_docker_commands_custom: []-nextcloud_docker_commands: "{{ nextcloud_docker_commands_default- + nextcloud_docker_commands_custom }}"+nextcloud_role_docker_envs_custom: {}+nextcloud_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='nextcloud')+ | combine(lookup('role_var', '_docker_envs_custom', role='nextcloud')) }}" # Volumes-nextcloud_docker_volumes_default:- - "{{ nextcloud_paths_location }}:/var/www/html"-nextcloud_docker_volumes_custom: []-nextcloud_docker_volumes: "{{ nextcloud_docker_volumes_default- + nextcloud_docker_volumes_custom }}"--# Devices-nextcloud_docker_devices_default: []-nextcloud_docker_devices_custom: []-nextcloud_docker_devices: "{{ nextcloud_docker_devices_default- + nextcloud_docker_devices_custom }}"--# Hosts-nextcloud_docker_hosts_default: {}-nextcloud_docker_hosts_custom: {}-nextcloud_docker_hosts: "{{ docker_hosts_common- | combine(nextcloud_docker_hosts_default)- | combine(nextcloud_docker_hosts_custom) }}"+nextcloud_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='nextcloud') }}:/var/www/html"+nextcloud_role_docker_volumes_custom: []+nextcloud_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='nextcloud')+ + lookup('role_var', '_docker_volumes_custom', role='nextcloud') }}" # Labels-nextcloud_docker_labels_default:+nextcloud_role_docker_labels_default: traefik.http.middlewares.nextcloud-caldav.replacepathregex.regex: "^/.well-known/ca(l|rd)dav" traefik.http.middlewares.nextcloud-caldav.replacepathregex.replacement: "/remote.php/dav/"-nextcloud_docker_labels_custom: {}-nextcloud_docker_labels: "{{ docker_labels_common- | combine(nextcloud_docker_labels_default)- | combine(nextcloud_docker_labels_custom) }}"+nextcloud_role_docker_labels_custom: {}+nextcloud_role_docker_labels: "{{ lookup('role_var', '_docker_labels_default', role='nextcloud')+ | combine(lookup('role_var', '_docker_labels_custom', role='nextcloud')) }}" # Hostname-nextcloud_docker_hostname: "{{ nextcloud_name }}"+nextcloud_role_docker_hostname: "{{ nextcloud_name }}" # Networks-nextcloud_docker_networks_alias: "{{ nextcloud_name }}"-nextcloud_docker_networks_default: []-nextcloud_docker_networks_custom: []-nextcloud_docker_networks: "{{ docker_networks_common- + nextcloud_docker_networks_default- + nextcloud_docker_networks_custom }}"--# Capabilities-nextcloud_docker_capabilities_default: []-nextcloud_docker_capabilities_custom: []-nextcloud_docker_capabilities: "{{ nextcloud_docker_capabilities_default- + nextcloud_docker_capabilities_custom }}"--# Security Opts-nextcloud_docker_security_opts_default: []-nextcloud_docker_security_opts_custom: []-nextcloud_docker_security_opts: "{{ nextcloud_docker_security_opts_default- + nextcloud_docker_security_opts_custom }}"+nextcloud_role_docker_networks_alias: "{{ nextcloud_name }}"+nextcloud_role_docker_networks_default: []+nextcloud_role_docker_networks_custom: []+nextcloud_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='nextcloud')+ + lookup('role_var', '_docker_networks_custom', role='nextcloud') }}" # Restart Policy-nextcloud_docker_restart_policy: unless-stopped+nextcloud_role_docker_restart_policy: unless-stopped # State-nextcloud_docker_state: started+nextcloud_role_docker_state: started # User-nextcloud_docker_user: "{{ uid }}:{{ gid }}"+nextcloud_role_docker_user: "{{ uid }}:{{ gid }}" # Dependencies-nextcloud_depends_on: "mariadb"-nextcloud_depends_on_delay: "0"-nextcloud_depends_on_healthchecks: "false"+nextcloud_role_depends_on: "mariadb"+nextcloud_role_depends_on_delay: "0"+nextcloud_role_depends_on_healthchecks: "false"
modified
roles/nextcloud/tasks/main.yml
@@ -14,9 +14,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -32,7 +32,7 @@ block: - name: Set '_nextcloud_config_path' variable ansible.builtin.set_fact:- _nextcloud_config_path: "{{ nextcloud_paths_location }}/config/config.php"+ _nextcloud_config_path: "{{ lookup('role_var', '_paths_location', role='nextcloud') }}/config/config.php" - name: Wait for 'config.php' to be created ansible.builtin.wait_for:
modified
roles/node_red/defaults/main.yml
@@ -17,130 +17,85 @@ # Paths ################################ -node_red_paths_folder: "{{ node_red_name }}"-node_red_paths_location: "{{ server_appdata_path }}/{{ node_red_paths_folder }}"-node_red_paths_folders_list:- - "{{ node_red_paths_location }}"+node_red_role_paths_folder: "{{ node_red_name }}"+node_red_role_paths_location: "{{ server_appdata_path }}/{{ node_red_role_paths_folder }}"+node_red_role_paths_folders_list:+ - "{{ node_red_role_paths_location }}" ################################ # Web ################################ -node_red_web_subdomain: "{{ node_red_name }}"-node_red_web_domain: "{{ user.domain }}"-node_red_web_port: "1880"-node_red_web_url: "{{ 'https://' + (lookup('vars', node_red_name + '_web_subdomain', default=node_red_web_subdomain) + '.' + lookup('vars', node_red_name + '_web_domain', default=node_red_web_domain)- if (lookup('vars', node_red_name + '_web_subdomain', default=node_red_web_subdomain) | length > 0)- else lookup('vars', node_red_name + '_web_domain', default=node_red_web_domain)) }}"+node_red_role_web_subdomain: "{{ node_red_name }}"+node_red_role_web_domain: "{{ user.domain }}"+node_red_role_web_port: "1880"+node_red_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='node_red') + '.' + lookup('role_var', '_web_domain', role='node_red')+ if (lookup('role_var', '_web_subdomain', role='node_red') | length > 0)+ else lookup('role_var', '_web_domain', role='node_red')) }}" ################################ # DNS ################################ -node_red_dns_record: "{{ lookup('vars', node_red_name + '_web_subdomain', default=node_red_web_subdomain) }}"-node_red_dns_zone: "{{ lookup('vars', node_red_name + '_web_domain', default=node_red_web_domain) }}"-node_red_dns_proxy: "{{ dns.proxied }}"+node_red_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='node_red') }}"+node_red_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='node_red') }}"+node_red_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -node_red_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-node_red_traefik_middleware_default: "{{ traefik_default_middleware }}"-node_red_traefik_middleware_custom: ""-node_red_traefik_certresolver: "{{ traefik_default_certresolver }}"-node_red_traefik_enabled: true-node_red_traefik_api_enabled: true-node_red_traefik_api_endpoint: "PathPrefix(`/auth`) || PathPrefix(`/settings`) || PathPrefix(`/flows`) || PathPrefix(`/flow`) || PathPrefix(`/nodes`)"+node_red_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+node_red_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+node_red_role_traefik_middleware_custom: ""+node_red_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+node_red_role_traefik_enabled: true+node_red_role_traefik_api_enabled: true+node_red_role_traefik_api_endpoint: "PathPrefix(`/auth`) || PathPrefix(`/settings`) || PathPrefix(`/flows`) || PathPrefix(`/flow`) || PathPrefix(`/nodes`)" ################################ # Docker ################################ # Container-node_red_docker_container: "{{ node_red_name }}"+node_red_role_docker_container: "{{ node_red_name }}" # Image-node_red_docker_image_pull: true-node_red_docker_image_repo: "nodered/node-red"-node_red_docker_image_tag: "latest"-node_red_docker_image: "{{ lookup('vars', node_red_name + '_docker_image_repo', default=node_red_docker_image_repo)- + ':' + lookup('vars', node_red_name + '_docker_image_tag', default=node_red_docker_image_tag) }}"--# Ports-node_red_docker_ports_defaults: []-node_red_docker_ports_custom: []-node_red_docker_ports: "{{ lookup('vars', node_red_name + '_docker_ports_defaults', default=node_red_docker_ports_defaults)- + lookup('vars', node_red_name + '_docker_ports_custom', default=node_red_docker_ports_custom) }}"+node_red_role_docker_image_pull: true+node_red_role_docker_image_repo: "nodered/node-red"+node_red_role_docker_image_tag: "latest"+node_red_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='node_red') }}:{{ lookup('role_var', '_docker_image_tag', role='node_red') }}" # Envs-node_red_docker_envs_default:+node_red_role_docker_envs_default: TZ: "{{ tz }}"-node_red_docker_envs_custom: {}-node_red_docker_envs: "{{ lookup('vars', node_red_name + '_docker_envs_default', default=node_red_docker_envs_default)- | combine(lookup('vars', node_red_name + '_docker_envs_custom', default=node_red_docker_envs_custom)) }}"--# Commands-node_red_docker_commands_default: []-node_red_docker_commands_custom: []-node_red_docker_commands: "{{ lookup('vars', node_red_name + '_docker_commands_default', default=node_red_docker_commands_default)- + lookup('vars', node_red_name + '_docker_commands_custom', default=node_red_docker_commands_custom) }}"+node_red_role_docker_envs_custom: {}+node_red_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='node_red')+ | combine(lookup('role_var', '_docker_envs_custom', role='node_red')) }}" # Volumes-node_red_docker_volumes_default:- - "{{ node_red_paths_location }}:/data"-node_red_docker_volumes_custom: []-node_red_docker_volumes: "{{ lookup('vars', node_red_name + '_docker_volumes_default', default=node_red_docker_volumes_default)- + lookup('vars', node_red_name + '_docker_volumes_custom', default=node_red_docker_volumes_custom) }}"--# Devices-node_red_docker_devices_default: []-node_red_docker_devices_custom: []-node_red_docker_devices: "{{ lookup('vars', node_red_name + '_docker_devices_default', default=node_red_docker_devices_default)- + lookup('vars', node_red_name + '_docker_devices_custom', default=node_red_docker_devices_custom) }}"--# Hosts-node_red_docker_hosts_default: {}-node_red_docker_hosts_custom: {}-node_red_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', node_red_name + '_docker_hosts_default', default=node_red_docker_hosts_default))- | combine(lookup('vars', node_red_name + '_docker_hosts_custom', default=node_red_docker_hosts_custom)) }}"--# Labels-node_red_docker_labels_default: {}-node_red_docker_labels_custom: {}-node_red_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', node_red_name + '_docker_labels_default', default=node_red_docker_labels_default))- | combine(lookup('vars', node_red_name + '_docker_labels_custom', default=node_red_docker_labels_custom)) }}"+node_red_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='node_red') }}:/data"+node_red_role_docker_volumes_custom: []+node_red_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='node_red')+ + lookup('role_var', '_docker_volumes_custom', role='node_red') }}" # Hostname-node_red_docker_hostname: "{{ node_red_name }}"+node_red_role_docker_hostname: "{{ node_red_name }}" # Networks-node_red_docker_networks_alias: "{{ node_red_name }}"-node_red_docker_networks_default: []-node_red_docker_networks_custom: []-node_red_docker_networks: "{{ docker_networks_common- + lookup('vars', node_red_name + '_docker_networks_default', default=node_red_docker_networks_default)- + lookup('vars', node_red_name + '_docker_networks_custom', default=node_red_docker_networks_custom) }}"--# Capabilities-node_red_docker_capabilities_default: []-node_red_docker_capabilities_custom: []-node_red_docker_capabilities: "{{ lookup('vars', node_red_name + '_docker_capabilities_default', default=node_red_docker_capabilities_default)- + lookup('vars', node_red_name + '_docker_capabilities_custom', default=node_red_docker_capabilities_custom) }}"--# Security Opts-node_red_docker_security_opts_default: []-node_red_docker_security_opts_custom: []-node_red_docker_security_opts: "{{ lookup('vars', node_red_name + '_docker_security_opts_default', default=node_red_docker_security_opts_default)- + lookup('vars', node_red_name + '_docker_security_opts_custom', default=node_red_docker_security_opts_custom) }}"+node_red_role_docker_networks_alias: "{{ node_red_name }}"+node_red_role_docker_networks_default: []+node_red_role_docker_networks_custom: []+node_red_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='node_red')+ + lookup('role_var', '_docker_networks_custom', role='node_red') }}" # Restart Policy-node_red_docker_restart_policy: unless-stopped+node_red_role_docker_restart_policy: unless-stopped # State-node_red_docker_state: started+node_red_role_docker_state: started # User-node_red_docker_user: "{{ uid }}:{{ gid }}"+node_red_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/node_red/tasks/main2.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/notifiarr/defaults/main.yml
@@ -17,152 +17,109 @@ # Settings ################################ -notifiarr_privileged: false+notifiarr_role_privileged: false ################################ # Paths ################################ -notifiarr_paths_folder: "{{ notifiarr_name }}"-notifiarr_paths_location: "{{ server_appdata_path }}/{{ notifiarr_paths_folder }}"-notifiarr_paths_folders_list:- - "{{ notifiarr_paths_location }}"-notifiarr_paths_recursive: true-notifiarr_paths_config_location: "{{ notifiarr_paths_location }}/notifiarr.conf"-notifiarr_radarr_config: "{{ radarr_paths_location }}/config.xml"-notifiarr_sonarr_config: "{{ sonarr_paths_location }}/config.xml"-notifiarr_tautulli_config: "{{ tautulli_paths_location }}/config.ini"-tautulli_api_key: "{{ (lookup('ini', 'api_key section=General file={{ notifiarr_tautulli_config }}')) if tautulli_config.stat.exists else '' }}"+notifiarr_role_paths_folder: "{{ notifiarr_name }}"+notifiarr_role_paths_location: "{{ server_appdata_path }}/{{ notifiarr_role_paths_folder }}"+notifiarr_role_paths_folders_list:+ - "{{ notifiarr_role_paths_location }}"+notifiarr_role_paths_recursive: true+notifiarr_role_paths_config_location: "{{ notifiarr_role_paths_location }}/notifiarr.conf"+notifiarr_role_radarr_config: "{{ lookup('role_var', '_paths_location', role='radarr') }}/config.xml"+notifiarr_role_sonarr_config: "{{ lookup('role_var', '_paths_location', role='sonarr') }}/config.xml"+notifiarr_role_tautulli_config: "{{ lookup('role_var', '_paths_location', role='tautulli') }}/config.ini"+notifiarr_role_tautulli_api_key: "{{ lookup('ini', 'api_key section=General file=' ~ lookup('role_var', '_tautulli_config', role='notifiarr')) if notifiarr_tautulli_config_stat.stat.exists else '' }}" ################################ # Web ################################ -notifiarr_web_subdomain: "{{ notifiarr_name }}"-notifiarr_web_domain: "{{ user.domain }}"-notifiarr_web_port: "5454"-notifiarr_web_url: "{{ 'https://' + (notifiarr_web_subdomain + '.' + notifiarr_web_domain- if (notifiarr_web_subdomain | length > 0)- else notifiarr_web_domain) }}"+notifiarr_role_web_subdomain: "{{ notifiarr_name }}"+notifiarr_role_web_domain: "{{ user.domain }}"+notifiarr_role_web_port: "5454"+notifiarr_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='notifiarr') + '.' + lookup('role_var', '_web_domain', role='notifiarr')+ if (lookup('role_var', '_web_subdomain', role='notifiarr') | length > 0)+ else lookup('role_var', '_web_domain', role='notifiarr')) }}" ################################ # DNS ################################ -notifiarr_dns_record: "{{ notifiarr_web_subdomain }}"-notifiarr_dns_zone: "{{ notifiarr_web_domain }}"-notifiarr_dns_proxy: "{{ dns.proxied }}"+notifiarr_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='notifiarr') }}"+notifiarr_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='notifiarr') }}"+notifiarr_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -notifiarr_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-notifiarr_traefik_middleware_default: "{{ traefik_default_middleware }}"-notifiarr_traefik_middleware_custom: ""-notifiarr_traefik_certresolver: "{{ traefik_default_certresolver }}"-notifiarr_traefik_enabled: true-notifiarr_traefik_api_enabled: true-notifiarr_traefik_api_endpoint: "PathPrefix(`/api`) || PathPrefix(`/plex`)"+notifiarr_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+notifiarr_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+notifiarr_role_traefik_middleware_custom: ""+notifiarr_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+notifiarr_role_traefik_enabled: true+notifiarr_role_traefik_api_enabled: true+notifiarr_role_traefik_api_endpoint: "PathPrefix(`/api`) || PathPrefix(`/plex`)" ################################ # Docker ################################ # Container-notifiarr_docker_container: "{{ notifiarr_name }}"+notifiarr_role_docker_container: "{{ notifiarr_name }}" # Image-notifiarr_docker_image_pull: true-notifiarr_docker_image_tag: "latest"-notifiarr_docker_image: "golift/notifiarr:{{ notifiarr_docker_image_tag }}"--# Ports-notifiarr_docker_ports_defaults: []-notifiarr_docker_ports_custom: []-notifiarr_docker_ports: "{{ notifiarr_docker_ports_defaults- + notifiarr_docker_ports_custom }}"+notifiarr_role_docker_image_pull: true+notifiarr_role_docker_image_tag: "latest"+notifiarr_role_docker_image_repo: "golift/notifiarr"+notifiarr_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='notifiarr') }}:{{ lookup('role_var', '_docker_image_tag', role='notifiarr') }}" # Envs-notifiarr_docker_envs_default:+notifiarr_role_docker_envs_default: TZ: "{{ tz }}"-notifiarr_docker_envs_custom: {}-notifiarr_docker_envs: "{{ notifiarr_docker_envs_default- | combine(notifiarr_docker_envs_custom) }}"--# Commands-notifiarr_docker_commands_default: []-notifiarr_docker_commands_custom: []-notifiarr_docker_commands: "{{ notifiarr_docker_commands_default- + notifiarr_docker_commands_custom }}"+notifiarr_role_docker_envs_custom: {}+notifiarr_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='notifiarr')+ | combine(lookup('role_var', '_docker_envs_custom', role='notifiarr')) }}" # Volumes-notifiarr_docker_volumes_default:- - "{{ notifiarr_paths_location }}:/config"+notifiarr_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='notifiarr') }}:/config" - "/var/run/utmp:/var/run/utmp"-notifiarr_docker_volumes_custom: []-notifiarr_docker_volumes: "{{ notifiarr_docker_volumes_default- + notifiarr_docker_volumes_custom }}"+notifiarr_role_docker_volumes_custom: []+notifiarr_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='notifiarr')+ + lookup('role_var', '_docker_volumes_custom', role='notifiarr') }}" # Mounts-notifiarr_docker_mounts_default:+notifiarr_role_docker_mounts_default: - target: /tmp type: tmpfs-notifiarr_docker_mounts_custom: []-notifiarr_docker_mounts: "{{ notifiarr_docker_mounts_default- + notifiarr_docker_mounts_custom }}"--# Devices-notifiarr_docker_devices_default: []-notifiarr_docker_devices_custom: []-notifiarr_docker_devices: "{{ notifiarr_docker_devices_default- + notifiarr_docker_devices_custom }}"--# Hosts-notifiarr_docker_hosts_default: {}-notifiarr_docker_hosts_custom: {}-notifiarr_docker_hosts: "{{ docker_hosts_common- | combine(notifiarr_docker_hosts_default)- | combine(notifiarr_docker_hosts_custom) }}"--# Labels-notifiarr_docker_labels_default: {}-notifiarr_docker_labels_custom: {}-notifiarr_docker_labels: "{{ docker_labels_common- | combine(notifiarr_docker_labels_default)- | combine(notifiarr_docker_labels_custom) }}"+notifiarr_role_docker_mounts_custom: []+notifiarr_role_docker_mounts: "{{ lookup('role_var', '_docker_mounts_default', role='notifiarr')+ + lookup('role_var', '_docker_mounts_custom', role='notifiarr') }}" # Hostname-notifiarr_docker_hostname: "{{ traefik_host }}"+notifiarr_role_docker_hostname: "{{ traefik_host }}" # Networks-notifiarr_docker_networks_alias: "{{ notifiarr_name }}"-notifiarr_docker_networks_default: []-notifiarr_docker_networks_custom: []-notifiarr_docker_networks: "{{ docker_networks_common- + notifiarr_docker_networks_default- + notifiarr_docker_networks_custom }}"+notifiarr_role_docker_networks_alias: "{{ notifiarr_name }}"+notifiarr_role_docker_networks_default: []+notifiarr_role_docker_networks_custom: []+notifiarr_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='notifiarr')+ + lookup('role_var', '_docker_networks_custom', role='notifiarr') }}" -# Capabilities-notifiarr_docker_capabilities_default: []-notifiarr_docker_capabilities_custom: []-notifiarr_docker_capabilities: "{{ notifiarr_docker_capabilities_default- + notifiarr_docker_capabilities_custom }}"+# Restart Policy+notifiarr_role_docker_restart_policy: unless-stopped++# State+notifiarr_role_docker_state: started++# User+notifiarr_role_docker_user: "{{ uid }}:{{ gid }}" # Privileged-notifiarr_docker_privileged: "{{ notifiarr_privileged | bool }}"--# Security Opts-notifiarr_docker_security_opts_default: []-notifiarr_docker_security_opts_custom: []-notifiarr_docker_security_opts: "{{ notifiarr_docker_security_opts_default- + notifiarr_docker_security_opts_custom }}"--# Restart Policy-notifiarr_docker_restart_policy: unless-stopped--# State-notifiarr_docker_state: started--# User-notifiarr_docker_user: "{{ uid }}:{{ gid }}"+notifiarr_role_docker_privileged: "{{ lookup('role_var', '_privileged', role='notifiarr') | bool }}"
modified
roles/notifiarr/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/notifiarr/tasks/subtasks/settings.yml
@@ -20,14 +20,14 @@ # Tautulli Tasks - name: "Check if tautulli exists" ansible.builtin.stat:- path: "{{ notifiarr_tautulli_config }}"- register: tautulli_config+ path: "{{ lookup('role_var', '_tautulli_config', role='notifiarr') }}"+ register: notifiarr_tautulli_config_stat # Plex Tasks -- name: "Settings | Check if '{{ plex_paths_config_location | basename }}' exists"+- name: "Settings | Check if '{{ lookup('role_var', '_paths_config_location', role='plex') | basename }}' exists" ansible.builtin.stat:- path: "{{ plex_paths_config_location }}"+ path: "{{ lookup('role_var', '_paths_config_location', role='plex') }}" register: preferences_xml - name: Settings | {{ plex_name }} auth token tasks@@ -35,7 +35,7 @@ block: - name: Settings | Fetch {{ plex_name }} auth token community.general.xml:- path: "{{ plex_paths_config_location }}"+ path: "{{ lookup('role_var', '_paths_config_location', role='plex') }}" xpath: /Preferences content: attribute register: preferences_xml_resp@@ -45,12 +45,12 @@ ansible.builtin.set_fact: plex_auth_token: "{{ preferences_xml_resp.matches[0].Preferences.PlexOnlineToken }}" -- name: Settings | Check if `{{ notifiarr_paths_config_location | basename }}` exists+- name: Settings | Check if `{{ lookup('role_var', '_paths_config_location', role='notifiarr') | basename }}` exists ansible.builtin.stat:- path: "{{ notifiarr_paths_config_location }}"+ path: "{{ lookup('role_var', '_paths_config_location', role='notifiarr') }}" register: notifiarr_config -- name: Settings | New `{{ notifiarr_paths_config_location | basename }}` tasks+- name: Settings | New `{{ lookup('role_var', '_paths_config_location', role='notifiarr') | basename }}` tasks when: not notifiarr_config.stat.exists block: - name: Get Instance Info@@ -60,12 +60,11 @@ - sonarr - radarr - lidarr- - readarr - - name: Settings | Import default `{{ notifiarr_paths_config_location | basename }}`+ - name: Settings | Import default `{{ lookup('role_var', '_paths_config_location', role='notifiarr') | basename }}` ansible.builtin.template: src: notifiarr.conf.j2- dest: "{{ notifiarr_paths_config_location }}"+ dest: "{{ lookup('role_var', '_paths_config_location', role='notifiarr') }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"
modified
roles/notifiarr/templates/notifiarr.conf.j2
@@ -124,16 +124,6 @@ {% endif %} {% endfor %} -{% for instance in readarr_info %}-{% if readarr_info[instance]['api_key'] != 'not installed' %}-[[readarr]]-name = "{{ readarr_info[instance]['name'] }}"-url = "{{ readarr_info[instance]['url'] }}"-api_key = "{{ readarr_info[instance]['api_key'] }}"--{% endif %}-{% endfor %}- {% for instance in sonarr_info %} {% if sonarr_info[instance]['api_key'] != 'not installed' %} [[sonarr]]@@ -189,7 +179,7 @@ {% if plex_auth_token is defined %} [plex]- url = "{{ plex_web_url }}" # Your plex URL+ url = "{{ lookup('role_var', '_web_url', role='plex') }}" # Your plex URL token = "{{ plex_auth_token }}" # your plex token; get this from a web inspector {% endif %} @@ -203,7 +193,7 @@ {% if tautulli_api_key is defined %} [tautulli] name = "tautulli" # only set a name to enable service checks.- url = "{{ tautulli_web_url }}" # Your Tautulli URL+ url = "{{ lookup('role_var', '_web_url', role='tautulli') }}" # Your Tautulli URL api_key = "{{ tautulli_api_key }}" # your tautulli api key; get this from settings {% endif %}
modified
roles/olivetin/defaults/main.yml
@@ -17,132 +17,89 @@ # Paths ################################ -olivetin_paths_folder: "{{ olivetin_name }}"-olivetin_paths_location: "{{ server_appdata_path }}/{{ olivetin_paths_folder }}"-olivetin_config_location: "{{ olivetin_paths_location }}/config.yaml"-olivetin_paths_folders_list:- - "{{ olivetin_paths_location }}"+olivetin_role_paths_folder: "{{ olivetin_name }}"+olivetin_role_paths_location: "{{ server_appdata_path }}/{{ olivetin_role_paths_folder }}"+olivetin_role_paths_config_location: "{{ olivetin_role_paths_location }}/config.yaml"+olivetin_role_paths_folders_list:+ - "{{ olivetin_role_paths_location }}" ################################ # Web ################################ -olivetin_web_subdomain: "{{ olivetin_name }}"-olivetin_web_domain: "{{ user.domain }}"-olivetin_web_port: "1337"-olivetin_web_url: "{{ 'https://' + (olivetin_web_subdomain + '.' + olivetin_web_domain- if (olivetin_web_subdomain | length > 0)- else olivetin_web_domain) }}"+olivetin_role_web_subdomain: "{{ olivetin_name }}"+olivetin_role_web_domain: "{{ user.domain }}"+olivetin_role_web_port: "1337"+olivetin_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='olivetin') + '.' + lookup('role_var', '_web_domain', role='olivetin')+ if (lookup('role_var', '_web_subdomain', role='olivetin') | length > 0)+ else lookup('role_var', '_web_domain', role='olivetin')) }}" ################################ # DNS ################################ -olivetin_dns_record: "{{ olivetin_web_subdomain }}"-olivetin_dns_zone: "{{ olivetin_web_domain }}"-olivetin_dns_proxy: "{{ dns.proxied }}"+olivetin_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='olivetin') }}"+olivetin_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='olivetin') }}"+olivetin_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -olivetin_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-olivetin_traefik_middleware_default: "{{ traefik_default_middleware }}"-olivetin_traefik_middleware_custom: ""-olivetin_traefik_certresolver: "{{ traefik_default_certresolver }}"-olivetin_traefik_enabled: true-olivetin_traefik_api_enabled: false-olivetin_traefik_api_endpoint: ""+olivetin_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+olivetin_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+olivetin_role_traefik_middleware_custom: ""+olivetin_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+olivetin_role_traefik_enabled: true+olivetin_role_traefik_api_enabled: false+olivetin_role_traefik_api_endpoint: "" -olivetin_traefik_middleware_api: "{{ traefik_global_middleware }}"+olivetin_role_traefik_middleware_api: "{{ traefik_global_middleware }}" ################################ # Docker ################################ # Container-olivetin_docker_container: "{{ olivetin_name }}"+olivetin_role_docker_container: "{{ olivetin_name }}" # Image-olivetin_docker_image_pull: true-olivetin_docker_image_tag: "latest"-olivetin_docker_image: "jamesread/olivetin:{{ olivetin_docker_image_tag }}"--# Ports-olivetin_docker_ports_defaults: []-olivetin_docker_ports_custom: []-olivetin_docker_ports: "{{ olivetin_docker_ports_defaults- + olivetin_docker_ports_custom }}"+olivetin_role_docker_image_pull: true+olivetin_role_docker_image_tag: "latest"+olivetin_role_docker_image_repo: "jamesread/olivetin"+olivetin_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='olivetin') }}:{{ lookup('role_var', '_docker_image_tag', role='olivetin') }}" # Envs-olivetin_docker_envs_default:+olivetin_role_docker_envs_default: TZ: "{{ tz }}"-olivetin_docker_envs_custom: {}-olivetin_docker_envs: "{{ olivetin_docker_envs_default- | combine(olivetin_docker_envs_custom) }}"--# Commands-olivetin_docker_commands_default: []-olivetin_docker_commands_custom: []-olivetin_docker_commands: "{{ olivetin_docker_commands_default- + olivetin_docker_commands_custom }}"+olivetin_role_docker_envs_custom: {}+olivetin_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='olivetin')+ | combine(lookup('role_var', '_docker_envs_custom', role='olivetin')) }}" # Volumes-olivetin_docker_volumes_default:+olivetin_role_docker_volumes_default: - "/var/run/docker.sock:/var/run/docker.sock"- - "{{ olivetin_paths_location }}:/config"-olivetin_docker_volumes_custom: []-olivetin_docker_volumes: "{{ olivetin_docker_volumes_default- + olivetin_docker_volumes_custom }}"--# Devices-olivetin_docker_devices_default: []-olivetin_docker_devices_custom: []-olivetin_docker_devices: "{{ olivetin_docker_devices_default- + olivetin_docker_devices_custom }}"--# Hosts-olivetin_docker_hosts_default: {}-olivetin_docker_hosts_custom: {}-olivetin_docker_hosts: "{{ docker_hosts_common- | combine(olivetin_docker_hosts_default)- | combine(olivetin_docker_hosts_custom) }}"--# Labels-olivetin_docker_labels_default: {}-olivetin_docker_labels_custom: {}-olivetin_docker_labels: "{{ docker_labels_common- | combine(olivetin_docker_labels_default)- | combine(olivetin_docker_labels_custom) }}"+ - "{{ lookup('role_var', '_paths_location', role='olivetin') }}:/config"+olivetin_role_docker_volumes_custom: []+olivetin_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='olivetin')+ + lookup('role_var', '_docker_volumes_custom', role='olivetin') }}" # Hostname-olivetin_docker_hostname: "{{ olivetin_name }}"+olivetin_role_docker_hostname: "{{ olivetin_name }}" # Networks-olivetin_docker_networks_alias: "{{ olivetin_name }}"-olivetin_docker_networks_default: []-olivetin_docker_networks_custom: []-olivetin_docker_networks: "{{ docker_networks_common- + olivetin_docker_networks_default- + olivetin_docker_networks_custom }}"--# Capabilities-olivetin_docker_capabilities_default: []-olivetin_docker_capabilities_custom: []-olivetin_docker_capabilities: "{{ olivetin_docker_capabilities_default- + olivetin_docker_capabilities_custom }}"--# Security Opts-olivetin_docker_security_opts_default: []-olivetin_docker_security_opts_custom: []-olivetin_docker_security_opts: "{{ olivetin_docker_security_opts_default- + olivetin_docker_security_opts_custom }}"+olivetin_role_docker_networks_alias: "{{ olivetin_name }}"+olivetin_role_docker_networks_default: []+olivetin_role_docker_networks_custom: []+olivetin_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='olivetin')+ + lookup('role_var', '_docker_networks_custom', role='olivetin') }}" # Restart Policy-olivetin_docker_restart_policy: unless-stopped+olivetin_role_docker_restart_policy: unless-stopped # State-olivetin_docker_state: started+olivetin_role_docker_state: started # User-olivetin_docker_user: "0:0"+olivetin_role_docker_user: "0:0"
modified
roles/olivetin/tasks/main.yml
@@ -10,16 +10,16 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" - name: Check config exists ansible.builtin.stat:- path: "{{ olivetin_config_location }}"+ path: "{{ lookup('role_var', '_paths_config_location', role='olivetin') }}" register: olivetin_config - name: Create directories@@ -28,7 +28,7 @@ - name: Import default config ansible.builtin.template: src: config.yaml.j2- dest: "{{ olivetin_config_location }}"+ dest: "{{ lookup('role_var', '_paths_config_location', role='olivetin') }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"
modified
roles/ombi/defaults/main.yml
@@ -17,129 +17,84 @@ # Paths ################################ -ombi_paths_folder: "{{ ombi_name }}"-ombi_paths_location: "{{ server_appdata_path }}/{{ ombi_paths_folder }}"-ombi_paths_folders_list:- - "{{ ombi_paths_location }}"+ombi_role_paths_folder: "{{ ombi_name }}"+ombi_role_paths_location: "{{ server_appdata_path }}/{{ ombi_role_paths_folder }}"+ombi_role_paths_folders_list:+ - "{{ ombi_role_paths_location }}" ################################ # Web ################################ -ombi_web_subdomain: "{{ ombi_name }}"-ombi_web_domain: "{{ user.domain }}"-ombi_web_port: "3579"-ombi_web_url: "{{ 'https://' + (lookup('vars', ombi_name + '_web_subdomain', default=ombi_web_subdomain) + '.' + lookup('vars', ombi_name + '_web_domain', default=ombi_web_domain)- if (lookup('vars', ombi_name + '_web_subdomain', default=ombi_web_subdomain) | length > 0)- else lookup('vars', ombi_name + '_web_domain', default=ombi_web_domain)) }}"+ombi_role_web_subdomain: "{{ ombi_name }}"+ombi_role_web_domain: "{{ user.domain }}"+ombi_role_web_port: "3579"+ombi_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='ombi') + '.' + lookup('role_var', '_web_domain', role='ombi')+ if (lookup('role_var', '_web_subdomain', role='ombi') | length > 0)+ else lookup('role_var', '_web_domain', role='ombi')) }}" ################################ # DNS ################################ -ombi_dns_record: "{{ lookup('vars', ombi_name + '_web_subdomain', default=ombi_web_subdomain) }}"-ombi_dns_zone: "{{ lookup('vars', ombi_name + '_web_domain', default=ombi_web_domain) }}"-ombi_dns_proxy: "{{ dns.proxied }}"+ombi_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='ombi') }}"+ombi_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='ombi') }}"+ombi_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -ombi_traefik_sso_middleware: ""-ombi_traefik_middleware_default: "{{ traefik_default_middleware }}"-ombi_traefik_middleware_custom: ""-ombi_traefik_certresolver: "{{ traefik_default_certresolver }}"-ombi_traefik_enabled: true-ombi_traefik_api_enabled: false-ombi_traefik_api_endpoint: ""+ombi_role_traefik_sso_middleware: ""+ombi_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+ombi_role_traefik_middleware_custom: ""+ombi_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+ombi_role_traefik_enabled: true+ombi_role_traefik_api_enabled: false+ombi_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-ombi_docker_container: "{{ ombi_name }}"+ombi_role_docker_container: "{{ ombi_name }}" # Image-ombi_docker_image_pull: true-ombi_docker_image_repo: "lscr.io/linuxserver/ombi"-ombi_docker_image_tag: "latest"-ombi_docker_image: "{{ lookup('vars', ombi_name + '_docker_image_repo', default=ombi_docker_image_repo)- + ':' + lookup('vars', ombi_name + '_docker_image_tag', default=ombi_docker_image_tag) }}"--# Ports-ombi_docker_ports_defaults: []-ombi_docker_ports_custom: []-ombi_docker_ports: "{{ lookup('vars', ombi_name + '_docker_ports_defaults', default=ombi_docker_ports_defaults)- + lookup('vars', ombi_name + '_docker_ports_custom', default=ombi_docker_ports_custom) }}"+ombi_role_docker_image_pull: true+ombi_role_docker_image_repo: "lscr.io/linuxserver/ombi"+ombi_role_docker_image_tag: "latest"+ombi_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='ombi') }}:{{ lookup('role_var', '_docker_image_tag', role='ombi') }}" # Envs-ombi_docker_envs_default:+ombi_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" UMASK: "002" TZ: "{{ tz }}"-ombi_docker_envs_custom: {}-ombi_docker_envs: "{{ lookup('vars', ombi_name + '_docker_envs_default', default=ombi_docker_envs_default)- | combine(lookup('vars', ombi_name + '_docker_envs_custom', default=ombi_docker_envs_custom)) }}"--# Commands-ombi_docker_commands_default: []-ombi_docker_commands_custom: []-ombi_docker_commands: "{{ lookup('vars', ombi_name + '_docker_commands_default', default=ombi_docker_commands_default)- + lookup('vars', ombi_name + '_docker_commands_custom', default=ombi_docker_commands_custom) }}"+ombi_role_docker_envs_custom: {}+ombi_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='ombi')+ | combine(lookup('role_var', '_docker_envs_custom', role='ombi')) }}" # Volumes-ombi_docker_volumes_default:- - "{{ ombi_paths_location }}:/config"-ombi_docker_volumes_custom: []-ombi_docker_volumes: "{{ lookup('vars', ombi_name + '_docker_volumes_default', default=ombi_docker_volumes_default)- + lookup('vars', ombi_name + '_docker_volumes_custom', default=ombi_docker_volumes_custom) }}"--# Devices-ombi_docker_devices_default: []-ombi_docker_devices_custom: []-ombi_docker_devices: "{{ lookup('vars', ombi_name + '_docker_devices_default', default=ombi_docker_devices_default)- + lookup('vars', ombi_name + '_docker_devices_custom', default=ombi_docker_devices_custom) }}"--# Hosts-ombi_docker_hosts_default: {}-ombi_docker_hosts_custom: {}-ombi_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', ombi_name + '_docker_hosts_default', default=ombi_docker_hosts_default))- | combine(lookup('vars', ombi_name + '_docker_hosts_custom', default=ombi_docker_hosts_custom)) }}"--# Labels-ombi_docker_labels_default: {}-ombi_docker_labels_custom: {}-ombi_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', ombi_name + '_docker_labels_default', default=ombi_docker_labels_default))- | combine(lookup('vars', ombi_name + '_docker_labels_custom', default=ombi_docker_labels_custom)) }}"+ombi_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='ombi') }}:/config"+ombi_role_docker_volumes_custom: []+ombi_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='ombi')+ + lookup('role_var', '_docker_volumes_custom', role='ombi') }}" # Hostname-ombi_docker_hostname: "{{ ombi_name }}"+ombi_role_docker_hostname: "{{ ombi_name }}" # Networks-ombi_docker_networks_alias: "{{ ombi_name }}"-ombi_docker_networks_default: []-ombi_docker_networks_custom: []-ombi_docker_networks: "{{ docker_networks_common- + lookup('vars', ombi_name + '_docker_networks_default', default=ombi_docker_networks_default)- + lookup('vars', ombi_name + '_docker_networks_custom', default=ombi_docker_networks_custom) }}"--# Capabilities-ombi_docker_capabilities_default: []-ombi_docker_capabilities_custom: []-ombi_docker_capabilities: "{{ lookup('vars', ombi_name + '_docker_capabilities_default', default=ombi_docker_capabilities_default)- + lookup('vars', ombi_name + '_docker_capabilities_custom', default=ombi_docker_capabilities_custom) }}"--# Security Opts-ombi_docker_security_opts_default: []-ombi_docker_security_opts_custom: []-ombi_docker_security_opts: "{{ lookup('vars', ombi_name + '_docker_security_opts_default', default=ombi_docker_security_opts_default)- + lookup('vars', ombi_name + '_docker_security_opts_custom', default=ombi_docker_security_opts_custom) }}"+ombi_role_docker_networks_alias: "{{ ombi_name }}"+ombi_role_docker_networks_default: []+ombi_role_docker_networks_custom: []+ombi_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='ombi')+ + lookup('role_var', '_docker_networks_custom', role='ombi') }}" # Restart Policy-ombi_docker_restart_policy: unless-stopped+ombi_role_docker_restart_policy: unless-stopped # State-ombi_docker_state: started+ombi_role_docker_state: started
modified
roles/ombi/tasks/main2.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/openobserve/defaults/main.yml
@@ -17,129 +17,86 @@ # Paths ################################ -openobserve_paths_folder: "{{ openobserve_name }}"-openobserve_paths_location: "{{ server_appdata_path }}/{{ openobserve_paths_folder }}"-openobserve_paths_folders_list:- - "{{ openobserve_paths_location }}"+openobserve_role_paths_folder: "{{ openobserve_name }}"+openobserve_role_paths_location: "{{ server_appdata_path }}/{{ openobserve_role_paths_folder }}"+openobserve_role_paths_folders_list:+ - "{{ openobserve_role_paths_location }}" ################################ # Web ################################ -openobserve_web_subdomain: "{{ openobserve_name }}"-openobserve_web_domain: "{{ user.domain }}"-openobserve_web_port: "5080"-openobserve_web_url: "{{ 'https://' + (openobserve_web_subdomain + '.' + openobserve_web_domain- if (openobserve_web_subdomain | length > 0)- else openobserve_web_domain) }}"+openobserve_role_web_subdomain: "{{ openobserve_name }}"+openobserve_role_web_domain: "{{ user.domain }}"+openobserve_role_web_port: "5080"+openobserve_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='openobserve') + '.' + lookup('role_var', '_web_domain', role='openobserve')+ if (lookup('role_var', '_web_subdomain', role='openobserve') | length > 0)+ else lookup('role_var', '_web_domain', role='openobserve')) }}" ################################ # DNS ################################ -openobserve_dns_record: "{{ openobserve_web_subdomain }}"-openobserve_dns_zone: "{{ openobserve_web_domain }}"-openobserve_dns_proxy: "{{ dns.proxied }}"+openobserve_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='openobserve') }}"+openobserve_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='openobserve') }}"+openobserve_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -openobserve_traefik_sso_middleware: ""-openobserve_traefik_middleware_default: "{{ traefik_default_middleware }}"-openobserve_traefik_middleware_custom: ""-openobserve_traefik_certresolver: "{{ traefik_default_certresolver }}"-openobserve_traefik_enabled: true-openobserve_traefik_api_enabled: false-openobserve_traefik_api_endpoint: ""+openobserve_role_traefik_sso_middleware: ""+openobserve_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+openobserve_role_traefik_middleware_custom: ""+openobserve_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+openobserve_role_traefik_enabled: true+openobserve_role_traefik_api_enabled: false+openobserve_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-openobserve_docker_container: "{{ openobserve_name }}"+openobserve_role_docker_container: "{{ openobserve_name }}" # Image-openobserve_docker_image_pull: true-openobserve_docker_image_tag: "latest"-openobserve_docker_image: "public.ecr.aws/zinclabs/openobserve:{{ openobserve_docker_image_tag }}"--# Ports-openobserve_docker_ports_defaults: []-openobserve_docker_ports_custom: []-openobserve_docker_ports: "{{ openobserve_docker_ports_defaults- + openobserve_docker_ports_custom }}"+openobserve_role_docker_image_pull: true+openobserve_role_docker_image_tag: "latest"+openobserve_role_docker_image_repo: "public.ecr.aws/zinclabs/openobserve"+openobserve_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='openobserve') }}:{{ lookup('role_var', '_docker_image_tag', role='openobserve') }}" # Envs-openobserve_docker_envs_default:+openobserve_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}" ZO_ROOT_USER_EMAIL: "{{ user.email }}" ZO_ROOT_USER_PASSWORD: "{{ user.pass }}"-openobserve_docker_envs_custom: {}-openobserve_docker_envs: "{{ openobserve_docker_envs_default- | combine(openobserve_docker_envs_custom) }}"--# Commands-openobserve_docker_commands_default: []-openobserve_docker_commands_custom: []-openobserve_docker_commands: "{{ openobserve_docker_commands_default- + openobserve_docker_commands_custom }}"+openobserve_role_docker_envs_custom: {}+openobserve_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='openobserve')+ | combine(lookup('role_var', '_docker_envs_custom', role='openobserve')) }}" # Volumes-openobserve_docker_volumes_default:- - "{{ openobserve_paths_location }}:/data"-openobserve_docker_volumes_custom: []-openobserve_docker_volumes: "{{ openobserve_docker_volumes_default- + openobserve_docker_volumes_custom }}"--# Devices-openobserve_docker_devices_default: []-openobserve_docker_devices_custom: []-openobserve_docker_devices: "{{ openobserve_docker_devices_default- + openobserve_docker_devices_custom }}"--# Hosts-openobserve_docker_hosts_default: {}-openobserve_docker_hosts_custom: {}-openobserve_docker_hosts: "{{ docker_hosts_common- | combine(openobserve_docker_hosts_default)- | combine(openobserve_docker_hosts_custom) }}"--# Labels-openobserve_docker_labels_default: {}-openobserve_docker_labels_custom: {}-openobserve_docker_labels: "{{ docker_labels_common- | combine(openobserve_docker_labels_default)- | combine(openobserve_docker_labels_custom) }}"+openobserve_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='openobserve') }}:/data"+openobserve_role_docker_volumes_custom: []+openobserve_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='openobserve')+ + lookup('role_var', '_docker_volumes_custom', role='openobserve') }}" # Hostname-openobserve_docker_hostname: "{{ openobserve_name }}"+openobserve_role_docker_hostname: "{{ openobserve_name }}" # Networks-openobserve_docker_networks_alias: "{{ openobserve_name }}"-openobserve_docker_networks_default: []-openobserve_docker_networks_custom: []-openobserve_docker_networks: "{{ docker_networks_common- + openobserve_docker_networks_default- + openobserve_docker_networks_custom }}"--# Capabilities-openobserve_docker_capabilities_default: []-openobserve_docker_capabilities_custom: []-openobserve_docker_capabilities: "{{ openobserve_docker_capabilities_default- + openobserve_docker_capabilities_custom }}"--# Security Opts-openobserve_docker_security_opts_default: []-openobserve_docker_security_opts_custom: []-openobserve_docker_security_opts: "{{ openobserve_docker_security_opts_default- + openobserve_docker_security_opts_custom }}"+openobserve_role_docker_networks_alias: "{{ openobserve_name }}"+openobserve_role_docker_networks_default: []+openobserve_role_docker_networks_custom: []+openobserve_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='openobserve')+ + lookup('role_var', '_docker_networks_custom', role='openobserve') }}" # Restart Policy-openobserve_docker_restart_policy: unless-stopped+openobserve_role_docker_restart_policy: unless-stopped # State-openobserve_docker_state: started+openobserve_role_docker_state: started
modified
roles/openobserve/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/paperless_ai/defaults/main.yml
@@ -17,127 +17,87 @@ # Paths ################################ -paperless_ai_paths_folder: "{{ paperless_ai_name }}"-paperless_ai_paths_location: "{{ server_appdata_path }}/{{ paperless_ai_paths_folder }}"-paperless_ai_paths_folders_list:- - "{{ paperless_ai_paths_location }}"+paperless_ai_role_paths_folder: "{{ paperless_ai_name }}"+paperless_ai_role_paths_location: "{{ server_appdata_path }}/{{ paperless_ai_role_paths_folder }}"+paperless_ai_role_paths_folders_list:+ - "{{ paperless_ai_role_paths_location }}" ################################ # Web ################################ -paperless_ai_web_subdomain: "{{ paperless_ai_name }}"-paperless_ai_web_domain: "{{ user.domain }}"-paperless_ai_web_port: "3000"-paperless_ai_web_url: "{{ 'https://' + (paperless_ai_web_subdomain + '.' + paperless_ai_web_domain- if (paperless_ai_web_subdomain | length > 0)- else paperless_ai_web_domain) }}"+paperless_ai_role_web_subdomain: "{{ paperless_ai_name }}"+paperless_ai_role_web_domain: "{{ user.domain }}"+paperless_ai_role_web_port: "3000"+paperless_ai_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='paperless_ai') + '.' + lookup('role_var', '_web_domain', role='paperless_ai')+ if (lookup('role_var', '_web_subdomain', role='paperless_ai') | length > 0)+ else lookup('role_var', '_web_domain', role='paperless_ai')) }}" ################################ # DNS ################################ -paperless_ai_dns_record: "{{ paperless_ai_web_subdomain }}"-paperless_ai_dns_zone: "{{ paperless_ai_web_domain }}"-paperless_ai_dns_proxy: "{{ dns.proxied }}"+paperless_ai_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='paperless_ai') }}"+paperless_ai_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='paperless_ai') }}"+paperless_ai_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -paperless_ai_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-paperless_ai_traefik_middleware_default: "{{ traefik_default_middleware }}"-paperless_ai_traefik_middleware_custom: ""-paperless_ai_traefik_certresolver: "{{ traefik_default_certresolver }}"-paperless_ai_traefik_enabled: true-paperless_ai_traefik_api_enabled: false-paperless_ai_traefik_api_endpoint: ""+paperless_ai_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+paperless_ai_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+paperless_ai_role_traefik_middleware_custom: ""+paperless_ai_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+paperless_ai_role_traefik_enabled: true+paperless_ai_role_traefik_api_enabled: false+paperless_ai_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-paperless_ai_docker_container: "{{ paperless_ai_name }}"+paperless_ai_role_docker_container: "{{ paperless_ai_name }}" # Image-paperless_ai_docker_image_pull: true-paperless_ai_docker_image_tag: "latest"-paperless_ai_docker_image: "clusterzx/paperless-ai:{{ paperless_ai_docker_image_tag }}"--# Ports-paperless_ai_docker_ports_defaults: []-paperless_ai_docker_ports_custom: []-paperless_ai_docker_ports: "{{ paperless_ai_docker_ports_defaults- + paperless_ai_docker_ports_custom }}"+paperless_ai_role_docker_image_pull: true+paperless_ai_role_docker_image_tag: "latest"+paperless_ai_role_docker_image_repo: "clusterzx/paperless-ai"+paperless_ai_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='paperless_ai') }}:{{ lookup('role_var', '_docker_image_tag', role='paperless_ai') }}" # Envs-paperless_ai_docker_envs_default:+paperless_ai_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-paperless_ai_docker_envs_custom: {}-paperless_ai_docker_envs: "{{ paperless_ai_docker_envs_default- | combine(paperless_ai_docker_envs_custom) }}"--# Commands-paperless_ai_docker_commands_default: []-paperless_ai_docker_commands_custom: []-paperless_ai_docker_commands: "{{ paperless_ai_docker_commands_default- + paperless_ai_docker_commands_custom }}"+paperless_ai_role_docker_envs_custom: {}+paperless_ai_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='paperless_ai')+ | combine(lookup('role_var', '_docker_envs_custom', role='paperless_ai')) }}" # Volumes-paperless_ai_docker_volumes_default:- - "{{ paperless_ai_paths_location }}:/app/data"-paperless_ai_docker_volumes_custom: []-paperless_ai_docker_volumes: "{{ paperless_ai_docker_volumes_default- + paperless_ai_docker_volumes_custom }}"--# Devices-paperless_ai_docker_devices_default: []-paperless_ai_docker_devices_custom: []-paperless_ai_docker_devices: "{{ paperless_ai_docker_devices_default- + paperless_ai_docker_devices_custom }}"--# Hosts-paperless_ai_docker_hosts_default: {}-paperless_ai_docker_hosts_custom: {}-paperless_ai_docker_hosts: "{{ docker_hosts_common- | combine(paperless_ai_docker_hosts_default)- | combine(paperless_ai_docker_hosts_custom) }}"--# Labels-paperless_ai_docker_labels_default: {}-paperless_ai_docker_labels_custom: {}-paperless_ai_docker_labels: "{{ docker_labels_common- | combine(paperless_ai_docker_labels_default)- | combine(paperless_ai_docker_labels_custom) }}"+paperless_ai_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='paperless_ai') }}:/app/data"+paperless_ai_role_docker_volumes_custom: []+paperless_ai_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='paperless_ai')+ + lookup('role_var', '_docker_volumes_custom', role='paperless_ai') }}" # Hostname-paperless_ai_docker_hostname: "{{ paperless_ai_name }}"+paperless_ai_role_docker_hostname: "{{ paperless_ai_name }}" # Networks-paperless_ai_docker_networks_alias: "{{ paperless_ai_name }}"-paperless_ai_docker_networks_default: []-paperless_ai_docker_networks_custom: []-paperless_ai_docker_networks: "{{ docker_networks_common- + paperless_ai_docker_networks_default- + paperless_ai_docker_networks_custom }}"--# Capabilities-paperless_ai_docker_capabilities_default: []-paperless_ai_docker_capabilities_custom: []-paperless_ai_docker_capabilities: "{{ paperless_ai_docker_capabilities_default- + paperless_ai_docker_capabilities_custom }}"--# Security Opts-paperless_ai_docker_security_opts_default: []-paperless_ai_docker_security_opts_custom: []-paperless_ai_docker_security_opts: "{{ paperless_ai_docker_security_opts_default- + paperless_ai_docker_security_opts_custom }}"+paperless_ai_role_docker_networks_alias: "{{ paperless_ai_name }}"+paperless_ai_role_docker_networks_default: []+paperless_ai_role_docker_networks_custom: []+paperless_ai_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='paperless_ai')+ + lookup('role_var', '_docker_networks_custom', role='paperless_ai') }}" # Restart Policy-paperless_ai_docker_restart_policy: unless-stopped+paperless_ai_role_docker_restart_policy: unless-stopped # State-paperless_ai_docker_state: started+paperless_ai_role_docker_state: started++# Create Docker Container Timeout+paperless_ai_docker_create_timeout: 300
modified
roles/paperless_ai/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/paperless_ngx/defaults/main.yml
@@ -17,88 +17,92 @@ # Settings ################################ -paperless_ngx_postgres_name: "{{ paperless_ngx_name }}-postgres"-paperless_ngx_postgres_docker_env_db: "{{ paperless_ngx_name }}"-paperless_ngx_postgres_docker_image_tag: "14-alpine"-paperless_ngx_postgres_docker_image_repo: "postgres"-paperless_ngx_postgres_paths_folder: "{{ paperless_ngx_name }}"-paperless_ngx_postgres_paths_location: "{{ server_appdata_path }}/{{ postgres_paths_folder }}/postgres"+paperless_ngx_role_postgres_deploy: true+paperless_ngx_role_postgres_name: "{{ paperless_ngx_name }}-postgres"+paperless_ngx_role_postgres_user: "{{ postgres_role_docker_env_user }}"+paperless_ngx_role_postgres_password: "{{ postgres_role_docker_env_password }}"+paperless_ngx_role_postgres_docker_env_db: "{{ paperless_ngx_name }}"+paperless_ngx_role_postgres_docker_image_tag: "14-alpine"+paperless_ngx_role_postgres_docker_image_repo: "postgres"+paperless_ngx_role_postgres_docker_healthcheck:+ test: ["CMD-SHELL", "pg_isready -d {{ lookup('role_var', '_postgres_docker_env_db', role='paperless_ngx') }} -U {{ postgres_role_docker_env_user }}"]+ start_period: 20s+ interval: 30s+ retries: 5+ timeout: 5s+paperless_ngx_role_postgres_paths_folder: "{{ paperless_ngx_name }}"+paperless_ngx_role_postgres_paths_location: "{{ server_appdata_path }}/{{ paperless_ngx_role_postgres_paths_folder }}/postgres" ################################ # Paths ################################ -paperless_ngx_paths_folder: "{{ paperless_ngx_name }}"-paperless_ngx_paths_location: "{{ server_appdata_path }}/{{ paperless_ngx_paths_folder }}/app"-paperless_ngx_paths_folders_list:- - "{{ paperless_ngx_paths_location }}"- - "{{ paperless_ngx_paths_location }}/data"- - "{{ paperless_ngx_paths_location }}/config"- - "{{ paperless_ngx_paths_location }}/consume"- - "{{ paperless_ngx_paths_location }}/media"- - "{{ paperless_ngx_paths_location }}/trash"+paperless_ngx_role_paths_folder: "{{ paperless_ngx_name }}"+paperless_ngx_role_paths_location: "{{ server_appdata_path }}/{{ paperless_ngx_role_paths_folder }}/app"+paperless_ngx_role_paths_folders_list:+ - "{{ paperless_ngx_role_paths_location }}"+ - "{{ paperless_ngx_role_paths_location }}/data"+ - "{{ paperless_ngx_role_paths_location }}/config"+ - "{{ paperless_ngx_role_paths_location }}/consume"+ - "{{ paperless_ngx_role_paths_location }}/media"+ - "{{ paperless_ngx_role_paths_location }}/trash" ################################ # Web ################################ -paperless_ngx_web_subdomain: "{{ paperless_ngx_name }}"-paperless_ngx_web_domain: "{{ user.domain }}"-paperless_ngx_web_port: "8000"-paperless_ngx_web_url: "{{ 'https://' + (paperless_ngx_web_subdomain + '.' + paperless_ngx_web_domain- if (paperless_ngx_web_subdomain | length > 0)- else paperless_ngx_web_domain) }}"+paperless_ngx_role_web_subdomain: "{{ paperless_ngx_name }}"+paperless_ngx_role_web_domain: "{{ user.domain }}"+paperless_ngx_role_web_port: "8000"+paperless_ngx_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='paperless_ngx') + '.' + lookup('role_var', '_web_domain', role='paperless_ngx')+ if (lookup('role_var', '_web_subdomain', role='paperless_ngx') | length > 0)+ else lookup('role_var', '_web_domain', role='paperless_ngx')) }}" ################################ # DNS ################################ -paperless_ngx_dns_record: "{{ paperless_ngx_web_subdomain }}"-paperless_ngx_dns_zone: "{{ paperless_ngx_web_domain }}"-paperless_ngx_dns_proxy: "{{ dns.proxied }}"+paperless_ngx_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='paperless_ngx') }}"+paperless_ngx_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='paperless_ngx') }}"+paperless_ngx_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -paperless_ngx_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-paperless_ngx_traefik_middleware_default: "{{ traefik_default_middleware }}"-paperless_ngx_traefik_middleware_custom: ""-paperless_ngx_traefik_certresolver: "{{ traefik_default_certresolver }}"-paperless_ngx_traefik_enabled: true-paperless_ngx_traefik_api_enabled: true-paperless_ngx_traefik_api_endpoint: "PathPrefix(`/api`) || PathPrefix(`/static`)"+paperless_ngx_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+paperless_ngx_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+paperless_ngx_role_traefik_middleware_custom: ""+paperless_ngx_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+paperless_ngx_role_traefik_enabled: true+paperless_ngx_role_traefik_api_enabled: true+paperless_ngx_role_traefik_api_endpoint: "PathPrefix(`/api`) || PathPrefix(`/static`)" ################################ # Docker ################################ # Container-paperless_ngx_docker_container: "{{ paperless_ngx_name }}"+paperless_ngx_role_docker_container: "{{ paperless_ngx_name }}" # Image-paperless_ngx_docker_image_pull: true-paperless_ngx_docker_image_tag: "latest"-paperless_ngx_docker_image: "ghcr.io/paperless-ngx/paperless-ngx:{{ paperless_ngx_docker_image_tag }}"--# Ports-paperless_ngx_docker_ports_defaults: []-paperless_ngx_docker_ports_custom: []-paperless_ngx_docker_ports: "{{ paperless_ngx_docker_ports_defaults- + paperless_ngx_docker_ports_custom }}"+paperless_ngx_role_docker_image_pull: true+paperless_ngx_role_docker_image_tag: "latest"+paperless_ngx_role_docker_image_repo: "ghcr.io/paperless-ngx/paperless-ngx"+paperless_ngx_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='paperless_ngx') }}:{{ lookup('role_var', '_docker_image_tag', role='paperless_ngx') }}" # Envs-paperless_ngx_docker_envs_default:+paperless_ngx_role_docker_envs_default: PAPERLESS_TIME_ZONE: "{{ tz }}" USERMAP_UID: "{{ uid }}" USERMAP_GID: "{{ gid }}" PAPERLESS_REDIS: "redis://{{ paperless_ngx_name }}-redis:6379"- PAPERLESS_DBHOST: "{{ paperless_ngx_postgres_name }}"+ PAPERLESS_DBHOST: "{{ lookup('role_var', '_postgres_name', role='paperless_ngx') }}" PAPERLESS_DBPORT: "5432"- PAPERLESS_DBNAME: "{{ paperless_ngx_postgres_docker_env_db }}"- PAPERLESS_DBPASS: "{{ postgres_docker_env_password }}"- PAPERLESS_DBUSER: "{{ postgres_docker_env_user }}"- PAPERLESS_URL: "{{ paperless_ngx_web_url }}"+ PAPERLESS_DBNAME: "{{ lookup('role_var', '_postgres_docker_env_db', role='paperless_ngx') }}"+ PAPERLESS_DBPASS: "{{ lookup('role_var', '_postgres_password', role='paperless_ngx') }}"+ PAPERLESS_DBUSER: "{{ lookup('role_var', '_postgres_user', role='paperless_ngx') }}"+ PAPERLESS_URL: "{{ lookup('role_var', '_web_url', role='paperless_ngx') }}" PAPERLESS_ENABLE_UPDATE_CHECK: "true" PAPERLESS_TRASH_DIR: "../trash/" PAPERLESS_TIKA_ENABLED: "1"@@ -109,79 +113,44 @@ PAPERLESS_ADMIN_PASSWORD: "{{ user.pass }}" PAPERLESS_SECRET_KEY: "{{ paperless_ngx_secret_key.stdout }}" PAPERLESS_ALLOWED_HOSTS: "*"- PAPERLESS_CORS_ALLOWED_HOSTS: "http://127.0.0.1,http://::1,http://traefik,http://{{ paperless_ngx_name }},{{ paperless_ngx_web_url }}"- PAPERLESS_CSRF_TRUSTED_ORIGINS: "http://127.0.0.1,http://::1,http://traefik,http://{{ paperless_ngx_name }},{{ paperless_ngx_web_url }}"-paperless_ngx_docker_envs_custom: {}-paperless_ngx_docker_envs: "{{ paperless_ngx_docker_envs_default- | combine(paperless_ngx_docker_envs_custom) }}"--# Commands-paperless_ngx_docker_commands_default: []-paperless_ngx_docker_commands_custom: []-paperless_ngx_docker_commands: "{{ paperless_ngx_docker_commands_default- + paperless_ngx_docker_commands_custom }}"+ PAPERLESS_CORS_ALLOWED_HOSTS: "http://127.0.0.1,http://::1,http://traefik,http://{{ paperless_ngx_name }},{{ lookup('role_var', '_web_url', role='paperless_ngx') }}"+ PAPERLESS_CSRF_TRUSTED_ORIGINS: "http://127.0.0.1,http://::1,http://traefik,http://{{ paperless_ngx_name }},{{ lookup('role_var', '_web_url', role='paperless_ngx') }}"+paperless_ngx_role_docker_envs_custom: {}+paperless_ngx_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='paperless_ngx')+ | combine(lookup('role_var', '_docker_envs_custom', role='paperless_ngx')) }}" # Volumes-paperless_ngx_docker_volumes_default:- - "{{ paperless_ngx_paths_location }}/data:/usr/src/paperless/data"- - "{{ paperless_ngx_paths_location }}/config:/usr/src/paperless/config"- - "{{ paperless_ngx_paths_location }}/consume:/usr/src/paperless/consume"- - "{{ paperless_ngx_paths_location }}/media:/usr/src/paperless/media"- - "{{ paperless_ngx_paths_location }}/trash:/usr/src/paperless/trash"-paperless_ngx_docker_volumes_custom: []-paperless_ngx_docker_volumes: "{{ paperless_ngx_docker_volumes_default- + paperless_ngx_docker_volumes_custom }}"--# Devices-paperless_ngx_docker_devices_default: []-paperless_ngx_docker_devices_custom: []-paperless_ngx_docker_devices: "{{ paperless_ngx_docker_devices_default- + paperless_ngx_docker_devices_custom }}"--# Hosts-paperless_ngx_docker_hosts_default: {}-paperless_ngx_docker_hosts_custom: {}-paperless_ngx_docker_hosts: "{{ docker_hosts_common- | combine(paperless_ngx_docker_hosts_default)- | combine(paperless_ngx_docker_hosts_custom) }}"--# Labels-paperless_ngx_docker_labels_default: {}-paperless_ngx_docker_labels_custom: {}-paperless_ngx_docker_labels: "{{ docker_labels_common- | combine(paperless_ngx_docker_labels_default)- | combine(paperless_ngx_docker_labels_custom) }}"+paperless_ngx_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='paperless_ngx') }}/data:/usr/src/paperless/data"+ - "{{ lookup('role_var', '_paths_location', role='paperless_ngx') }}/config:/usr/src/paperless/config"+ - "{{ lookup('role_var', '_paths_location', role='paperless_ngx') }}/consume:/usr/src/paperless/consume"+ - "{{ lookup('role_var', '_paths_location', role='paperless_ngx') }}/media:/usr/src/paperless/media"+ - "{{ lookup('role_var', '_paths_location', role='paperless_ngx') }}/trash:/usr/src/paperless/trash"+paperless_ngx_role_docker_volumes_custom: []+paperless_ngx_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='paperless_ngx')+ + lookup('role_var', '_docker_volumes_custom', role='paperless_ngx') }}" # Hostname-paperless_ngx_docker_hostname: "{{ paperless_ngx_name }}"+paperless_ngx_role_docker_hostname: "{{ paperless_ngx_name }}" # Networks-paperless_ngx_docker_networks_alias: "{{ paperless_ngx_name }}"-paperless_ngx_docker_networks_default: []-paperless_ngx_docker_networks_custom: []-paperless_ngx_docker_networks: "{{ docker_networks_common- + paperless_ngx_docker_networks_default- + paperless_ngx_docker_networks_custom }}"--# Capabilities-paperless_ngx_docker_capabilities_default: []-paperless_ngx_docker_capabilities_custom: []-paperless_ngx_docker_capabilities: "{{ paperless_ngx_docker_capabilities_default- + paperless_ngx_docker_capabilities_custom }}"--# Security Opts-paperless_ngx_docker_security_opts_default: []-paperless_ngx_docker_security_opts_custom: []-paperless_ngx_docker_security_opts: "{{ paperless_ngx_docker_security_opts_default- + paperless_ngx_docker_security_opts_custom }}"+paperless_ngx_role_docker_networks_alias: "{{ paperless_ngx_name }}"+paperless_ngx_role_docker_networks_default: []+paperless_ngx_role_docker_networks_custom: []+paperless_ngx_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='paperless_ngx')+ + lookup('role_var', '_docker_networks_custom', role='paperless_ngx') }}" # Restart Policy-paperless_ngx_docker_restart_policy: unless-stopped+paperless_ngx_role_docker_restart_policy: unless-stopped # State-paperless_ngx_docker_state: started+paperless_ngx_role_docker_state: started # Dependencies-paperless_ngx_depends_on: "{{ paperless_ngx_postgres_name }},{{ paperless_ngx_name }}-redis"-paperless_ngx_depends_on_delay: "0"-paperless_ngx_depends_on_healthchecks: "false"+paperless_ngx_role_depends_on: "{{ paperless_ngx_role_postgres_name }},{{ paperless_ngx_name }}-redis"+paperless_ngx_role_depends_on_delay: "0"+paperless_ngx_role_depends_on_healthchecks: "false"++# Create Docker Container Timeout+paperless_ngx_docker_create_timeout: 300
modified
roles/paperless_ngx/tasks/main.yml
@@ -18,25 +18,27 @@ name: redis vars: redis_instances: ["{{ paperless_ngx_name }}-redis"]- redis_docker_image_tag: "8-alpine"- redis_paths_folder: "{{ paperless_ngx_name }}"- redis_paths_location: "{{ server_appdata_path }}/{{ redis_paths_folder }}/redis"+ redis_role_docker_image_tag: "8-alpine"+ redis_role_paths_folder: "{{ paperless_ngx_name }}"+ redis_role_paths_location: "{{ server_appdata_path }}/{{ redis_role_paths_folder }}/redis" - name: Remove legacy PostgreSQL Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" vars: var_prefix: "{{ paperless_ngx_name }}_postgres" -- name: PostgreSQL Role+- name: "Import Postgres Role" ansible.builtin.include_role: name: postgres vars:- postgres_instances: ["{{ paperless_ngx_postgres_name }}"]- postgres_docker_env_db: "{{ paperless_ngx_postgres_docker_env_db }}"- postgres_docker_image_tag: "{{ paperless_ngx_postgres_docker_image_tag }}"- postgres_docker_image_repo: "{{ paperless_ngx_postgres_docker_image_repo }}"- postgres_paths_folder: "{{ paperless_ngx_postgres_paths_folder }}"- postgres_paths_location: "{{ paperless_ngx_postgres_paths_location }}"+ postgres_instances: ["{{ lookup('role_var', '_postgres_name', role='paperless_ngx') }}"]+ postgres_role_docker_image_tag: "{{ lookup('role_var', '_postgres_docker_image_tag', role='paperless_ngx') }}"+ postgres_role_docker_image_repo: "{{ lookup('role_var', '_postgres_docker_image_repo', role='paperless_ngx') }}"+ postgres_role_paths_folder: "{{ lookup('role_var', '_postgres_paths_folder', role='paperless_ngx') }}"+ postgres_role_paths_location: "{{ lookup('role_var', '_postgres_paths_location', role='paperless_ngx') }}"+ postgres_role_docker_env_db: "{{ lookup('role_var', '_postgres_docker_env_db', role='paperless_ngx') }}"+ postgres_role_docker_healthcheck: "{{ lookup('role_var', '_postgres_docker_healthcheck', role='paperless_ngx') }}"+ when: lookup('role_var', '_postgres_deploy', role='paperless_ngx') - name: Remove legacy Gotenberg Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -48,8 +50,8 @@ name: gotenberg vars: gotenberg_name: "{{ paperless_ngx_name }}-gotenberg"- gotenberg_docker_image_tag: "8.22"- gotenberg_docker_commands_default:+ gotenberg_role_docker_image_tag: "8.22"+ gotenberg_role_docker_commands: - "gotenberg" - "--chromium-disable-javascript=true" - "--chromium-allow-list=file:///tmp/.*"@@ -65,7 +67,7 @@ name: tika vars: tika_name: "{{ paperless_ngx_name }}-tika"- tika_docker_image_tag: "latest"+ tika_role_docker_image_tag: "latest" - name: "Generate Secret Key for sessions" ansible.builtin.shell: "openssl rand -base64 45"@@ -74,9 +76,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/pgadmin/defaults/main.yml
@@ -17,117 +17,74 @@ # Web ################################ -pgadmin_web_subdomain: "{{ pgadmin_name }}"-pgadmin_web_domain: "{{ user.domain }}"-pgadmin_web_port: "80"-pgadmin_web_url: "{{ 'https://' + (pgadmin_web_subdomain + '.' + pgadmin_web_domain- if (pgadmin_web_subdomain | length > 0)- else pgadmin_web_domain) }}"+pgadmin_role_web_subdomain: "{{ pgadmin_name }}"+pgadmin_role_web_domain: "{{ user.domain }}"+pgadmin_role_web_port: "80"+pgadmin_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='pgadmin') + '.' + lookup('role_var', '_web_domain', role='pgadmin')+ if (lookup('role_var', '_web_subdomain', role='pgadmin') | length > 0)+ else lookup('role_var', '_web_domain', role='pgadmin')) }}" ################################ # DNS ################################ -pgadmin_dns_record: "{{ pgadmin_web_subdomain }}"-pgadmin_dns_zone: "{{ pgadmin_web_domain }}"-pgadmin_dns_proxy: "{{ dns.proxied }}"+pgadmin_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='pgadmin') }}"+pgadmin_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='pgadmin') }}"+pgadmin_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -pgadmin_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-pgadmin_traefik_middleware_default: "{{ traefik_default_middleware }}"-pgadmin_traefik_middleware_custom: ""-pgadmin_traefik_certresolver: "{{ traefik_default_certresolver }}"-pgadmin_traefik_enabled: true-pgadmin_traefik_api_enabled: false-pgadmin_traefik_api_endpoint: ""+pgadmin_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+pgadmin_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+pgadmin_role_traefik_middleware_custom: ""+pgadmin_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+pgadmin_role_traefik_enabled: true+pgadmin_role_traefik_api_enabled: false+pgadmin_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-pgadmin_docker_container: "{{ pgadmin_name }}"+pgadmin_role_docker_container: "{{ pgadmin_name }}" # Image-pgadmin_docker_image_pull: true-pgadmin_docker_image_tag: "latest"-pgadmin_docker_image: "dpage/pgadmin4:{{ pgadmin_docker_image_tag }}"--# Ports-pgadmin_docker_ports_defaults: []-pgadmin_docker_ports_custom: []-pgadmin_docker_ports: "{{ pgadmin_docker_ports_defaults- + pgadmin_docker_ports_custom }}"+pgadmin_role_docker_image_pull: true+pgadmin_role_docker_image_tag: "latest"+pgadmin_role_docker_image_repo: "dpage/pgadmin4"+pgadmin_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='pgadmin') }}:{{ lookup('role_var', '_docker_image_tag', role='pgadmin') }}" # Envs-pgadmin_docker_envs_default:+pgadmin_role_docker_envs_default: PGADMIN_DEFAULT_EMAIL: "{{ user.email }}" PGADMIN_DEFAULT_PASSWORD: "{{ user.pass }}"-pgadmin_docker_envs_custom: {}-pgadmin_docker_envs: "{{ pgadmin_docker_envs_default- | combine(pgadmin_docker_envs_custom) }}"--# Commands-pgadmin_docker_commands_default: []-pgadmin_docker_commands_custom: []-pgadmin_docker_commands: "{{ pgadmin_docker_commands_default- + pgadmin_docker_commands_custom }}"+pgadmin_role_docker_envs_custom: {}+pgadmin_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='pgadmin')+ | combine(lookup('role_var', '_docker_envs_custom', role='pgadmin')) }}" # Volumes-pgadmin_docker_volumes_default:+pgadmin_role_docker_volumes_default: - "pgadmin:/var/lib/pgadmin"-pgadmin_docker_volumes_custom: []-pgadmin_docker_volumes: "{{ pgadmin_docker_volumes_default- + pgadmin_docker_volumes_custom }}"--# Devices-pgadmin_docker_devices_default: []-pgadmin_docker_devices_custom: []-pgadmin_docker_devices: "{{ pgadmin_docker_devices_default- + pgadmin_docker_devices_custom }}"--# Hosts-pgadmin_docker_hosts_default: {}-pgadmin_docker_hosts_custom: {}-pgadmin_docker_hosts: "{{ docker_hosts_common- | combine(pgadmin_docker_hosts_default)- | combine(pgadmin_docker_hosts_custom) }}"--# Labels-pgadmin_docker_labels_default: {}-pgadmin_docker_labels_custom: {}-pgadmin_docker_labels: "{{ docker_labels_common- | combine(pgadmin_docker_labels_default)- | combine(pgadmin_docker_labels_custom) }}"+pgadmin_role_docker_volumes_custom: []+pgadmin_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='pgadmin')+ + lookup('role_var', '_docker_volumes_custom', role='pgadmin') }}" # Hostname-pgadmin_docker_hostname: "{{ pgadmin_name }}"+pgadmin_role_docker_hostname: "{{ pgadmin_name }}" # Networks-pgadmin_docker_networks_alias: "{{ pgadmin_name }}"-pgadmin_docker_networks_default: []-pgadmin_docker_networks_custom: []-pgadmin_docker_networks: "{{ docker_networks_common- + pgadmin_docker_networks_default- + pgadmin_docker_networks_custom }}"--# Capabilities-pgadmin_docker_capabilities_default: []-pgadmin_docker_capabilities_custom: []-pgadmin_docker_capabilities: "{{ pgadmin_docker_capabilities_default- + pgadmin_docker_capabilities_custom }}"--# Security Opts-pgadmin_docker_security_opts_default: []-pgadmin_docker_security_opts_custom: []-pgadmin_docker_security_opts: "{{ pgadmin_docker_security_opts_default- + pgadmin_docker_security_opts_custom }}"+pgadmin_role_docker_networks_alias: "{{ pgadmin_name }}"+pgadmin_role_docker_networks_default: []+pgadmin_role_docker_networks_custom: []+pgadmin_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='pgadmin')+ + lookup('role_var', '_docker_networks_custom', role='pgadmin') }}" # Restart Policy-pgadmin_docker_restart_policy: unless-stopped+pgadmin_role_docker_restart_policy: unless-stopped # State-pgadmin_docker_state: started+pgadmin_role_docker_state: started
modified
roles/pgadmin/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/photoprism/defaults/main.yml
@@ -17,68 +17,63 @@ # Paths ################################ -photoprism_paths_folder: "{{ photoprism_name }}"-photoprism_paths_location: "{{ server_appdata_path }}/{{ photoprism_paths_folder }}"-photoprism_paths_folders_list:- - "{{ photoprism_paths_location }}"- - "{{ photoprism_paths_location }}/originals"- - "{{ photoprism_paths_location }}/storage"- - "{{ photoprism_paths_location }}/import"+photoprism_role_paths_folder: "{{ photoprism_name }}"+photoprism_role_paths_location: "{{ server_appdata_path }}/{{ photoprism_role_paths_folder }}"+photoprism_role_paths_folders_list:+ - "{{ photoprism_role_paths_location }}"+ - "{{ photoprism_role_paths_location }}/originals"+ - "{{ photoprism_role_paths_location }}/storage"+ - "{{ photoprism_role_paths_location }}/import" ################################ # Web ################################ -photoprism_web_subdomain: "{{ photoprism_name }}"-photoprism_web_domain: "{{ user.domain }}"-photoprism_web_port: "2342"-photoprism_web_url: "{{ 'https://' + (photoprism_web_subdomain + '.' + photoprism_web_domain- if (photoprism_web_subdomain | length > 0)- else photoprism_web_domain) }}"+photoprism_role_web_subdomain: "{{ photoprism_name }}"+photoprism_role_web_domain: "{{ user.domain }}"+photoprism_role_web_port: "2342"+photoprism_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='photoprism') + '.' + lookup('role_var', '_web_domain', role='photoprism')+ if (lookup('role_var', '_web_subdomain', role='photoprism') | length > 0)+ else lookup('role_var', '_web_domain', role='photoprism')) }}" ################################ # DNS ################################ -photoprism_dns_record: "{{ photoprism_web_subdomain }}"-photoprism_dns_zone: "{{ photoprism_web_domain }}"-photoprism_dns_proxy: "{{ dns.proxied }}"+photoprism_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='photoprism') }}"+photoprism_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='photoprism') }}"+photoprism_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -photoprism_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-photoprism_traefik_middleware_default: "{{ traefik_default_middleware }}"-photoprism_traefik_middleware_custom: ""-photoprism_traefik_certresolver: "{{ traefik_default_certresolver }}"-photoprism_traefik_enabled: true-photoprism_traefik_api_enabled: false-photoprism_traefik_api_endpoint: ""+photoprism_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+photoprism_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+photoprism_role_traefik_middleware_custom: ""+photoprism_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+photoprism_role_traefik_enabled: true+photoprism_role_traefik_api_enabled: false+photoprism_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-photoprism_docker_container: "{{ photoprism_name }}"+photoprism_role_docker_container: "{{ photoprism_name }}" # Image-photoprism_docker_image_pull: true-photoprism_docker_image_tag: "latest"-photoprism_docker_image: "photoprism/photoprism:{{ photoprism_docker_image_tag }}"--# Ports-photoprism_docker_ports_defaults: []-photoprism_docker_ports_custom: []-photoprism_docker_ports: "{{ photoprism_docker_ports_defaults- + photoprism_docker_ports_custom }}"+photoprism_role_docker_image_pull: true+photoprism_role_docker_image_tag: "latest"+photoprism_role_docker_image_repo: "photoprism/photoprism"+photoprism_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='photoprism') }}:{{ lookup('role_var', '_docker_image_tag', role='photoprism') }}" # Envs-photoprism_docker_envs_default:+photoprism_role_docker_envs_default: PHOTOPRISM_ADMIN_PASSWORD: "{{ user.pass }}" PHOTOPRISM_AUTH_MODE: "password"- PHOTOPRISM_SITE_URL: "{{ photoprism_web_url }}"+ PHOTOPRISM_SITE_URL: "{{ lookup('role_var', '_web_url', role='photoprism') }}" PHOTOPRISM_ORIGINALS_LIMIT: "5000" PHOTOPRISM_HTTP_COMPRESSION: "gzip" PHOTOPRISM_LOG_LEVEL: "info"@@ -104,83 +99,51 @@ PHOTOPRISM_SITE_DESCRIPTION: "Trying out PhotoPrism!" PHOTOPRISM_SITE_AUTHOR: "{{ user.name }}" PHOTOPRISM_INIT: "gpu tensorflow"-photoprism_docker_envs_custom: {}-photoprism_docker_envs: "{{ photoprism_docker_envs_default- | combine(photoprism_docker_envs_custom) }}"--# Commands-photoprism_docker_commands_default: []-photoprism_docker_commands_custom: []-photoprism_docker_commands: "{{ photoprism_docker_commands_default- + photoprism_docker_commands_custom }}"+photoprism_role_docker_envs_custom: {}+photoprism_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='photoprism')+ | combine(lookup('role_var', '_docker_envs_custom', role='photoprism')) }}" # Volumes-photoprism_docker_volumes_default:- - "{{ photoprism_paths_location }}/originals:/photoprism/originals"- - "{{ photoprism_paths_location }}/import:/photoprism/import"- - "{{ photoprism_paths_location }}/storage:/photoprism/storage"-photoprism_docker_volumes_custom: []-photoprism_docker_volumes: "{{ photoprism_docker_volumes_default- + photoprism_docker_volumes_custom }}"--# Devices-photoprism_docker_devices_default: []-photoprism_docker_devices_custom: []-photoprism_docker_devices: "{{ photoprism_docker_devices_default- + photoprism_docker_devices_custom }}"--# Hosts-photoprism_docker_hosts_default: {}-photoprism_docker_hosts_custom: {}-photoprism_docker_hosts: "{{ docker_hosts_common- | combine(photoprism_docker_hosts_default)- | combine(photoprism_docker_hosts_custom) }}"--# Labels-photoprism_docker_labels_default: {}-photoprism_docker_labels_custom: {}-photoprism_docker_labels: "{{ docker_labels_common- | combine(photoprism_docker_labels_default)- | combine(photoprism_docker_labels_custom) }}"+photoprism_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='photoprism') }}/originals:/photoprism/originals"+ - "{{ lookup('role_var', '_paths_location', role='photoprism') }}/import:/photoprism/import"+ - "{{ lookup('role_var', '_paths_location', role='photoprism') }}/storage:/photoprism/storage"+photoprism_role_docker_volumes_custom: []+photoprism_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='photoprism')+ + lookup('role_var', '_docker_volumes_custom', role='photoprism') }}" # Hostname-photoprism_docker_hostname: "{{ photoprism_name }}"+photoprism_role_docker_hostname: "{{ photoprism_name }}" # Networks-photoprism_docker_networks_alias: "{{ photoprism_name }}"-photoprism_docker_networks_default: []-photoprism_docker_networks_custom: []-photoprism_docker_networks: "{{ docker_networks_common- + photoprism_docker_networks_default- + photoprism_docker_networks_custom }}"--# Capabilities-photoprism_docker_capabilities_default: []-photoprism_docker_capabilities_custom: []-photoprism_docker_capabilities: "{{ photoprism_docker_capabilities_default- + photoprism_docker_capabilities_custom }}"+photoprism_role_docker_networks_alias: "{{ photoprism_name }}"+photoprism_role_docker_networks_default: []+photoprism_role_docker_networks_custom: []+photoprism_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='photoprism')+ + lookup('role_var', '_docker_networks_custom', role='photoprism') }}" # Security Opts-photoprism_docker_security_opts_default:+photoprism_role_docker_security_opts_default: - "seccomp=unconfined" - "apparmor=unconfined"-photoprism_docker_security_opts_custom: []-photoprism_docker_security_opts: "{{ photoprism_docker_security_opts_default- + photoprism_docker_security_opts_custom }}"+photoprism_role_docker_security_opts_custom: []+photoprism_role_docker_security_opts: "{{ lookup('role_var', '_docker_security_opts_default', role='photoprism')+ + lookup('role_var', '_docker_security_opts_custom', role='photoprism') }}" # Working Directory-photoprism_docker_working_dir: "/photoprism"+photoprism_role_docker_working_dir: "/photoprism" # Restart Policy-photoprism_docker_restart_policy: unless-stopped+photoprism_role_docker_restart_policy: unless-stopped # State-photoprism_docker_state: started+photoprism_role_docker_state: started # User-photoprism_docker_user: "{{ uid }}:{{ gid }}"+photoprism_role_docker_user: "{{ uid }}:{{ gid }}" # Dependencies-photoprism_depends_on: "mariadb"-photoprism_depends_on_delay: "0"-photoprism_depends_on_healthchecks: "false"+photoprism_role_depends_on: "mariadb"+photoprism_role_depends_on_delay: "0"+photoprism_role_depends_on_healthchecks: "false"
modified
roles/photoprism/tasks/main.yml
@@ -17,7 +17,7 @@ name: "photoprisms" login_host: "mariadb" login_user: "root"- login_password: "{{ mariadb_docker_env_password }}"+ login_password: "{{ lookup('role_var', '_docker_env_password', role='mariadb') }}" state: present ignore_errors: true @@ -31,9 +31,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -43,7 +43,7 @@ - name: Docker Devices Task ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/set_docker_devices_variable.yml"- when: gpu.intel or use_nvidia+ when: use_intel or use_nvidia - name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"
modified
roles/phpmyadmin/defaults/main.yml
@@ -18,120 +18,71 @@ # Web ################################ -phpmyadmin_web_subdomain: "{{ phpmyadmin_name }}"-phpmyadmin_web_domain: "{{ user.domain }}"-phpmyadmin_web_port: "80"-phpmyadmin_web_url: "{{ 'https://' + (phpmyadmin_web_subdomain + '.' + phpmyadmin_web_domain- if (phpmyadmin_web_subdomain | length > 0)- else phpmyadmin_web_domain) }}"+phpmyadmin_role_web_subdomain: "{{ phpmyadmin_name }}"+phpmyadmin_role_web_domain: "{{ user.domain }}"+phpmyadmin_role_web_port: "80"+phpmyadmin_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='phpmyadmin') + '.' + lookup('role_var', '_web_domain', role='phpmyadmin')+ if (lookup('role_var', '_web_subdomain', role='phpmyadmin') | length > 0)+ else lookup('role_var', '_web_domain', role='phpmyadmin')) }}" ################################ # DNS ################################ -phpmyadmin_dns_record: "{{ phpmyadmin_web_subdomain }}"-phpmyadmin_dns_zone: "{{ phpmyadmin_web_domain }}"-phpmyadmin_dns_proxy: "{{ dns.proxied }}"+phpmyadmin_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='phpmyadmin') }}"+phpmyadmin_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='phpmyadmin') }}"+phpmyadmin_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -phpmyadmin_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-phpmyadmin_traefik_middleware_default: "{{ traefik_default_middleware }}"-phpmyadmin_traefik_middleware_custom: ""-phpmyadmin_traefik_certresolver: "{{ traefik_default_certresolver }}"-phpmyadmin_traefik_enabled: true-phpmyadmin_traefik_api_enabled: false-phpmyadmin_traefik_api_endpoint: ""+phpmyadmin_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+phpmyadmin_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+phpmyadmin_role_traefik_middleware_custom: ""+phpmyadmin_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+phpmyadmin_role_traefik_enabled: true+phpmyadmin_role_traefik_api_enabled: false+phpmyadmin_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-phpmyadmin_docker_container: "{{ phpmyadmin_name }}"+phpmyadmin_role_docker_container: "{{ phpmyadmin_name }}" # Image-phpmyadmin_docker_image_pull: true-phpmyadmin_docker_image_tag: "latest"-phpmyadmin_docker_image: "phpmyadmin:{{ phpmyadmin_docker_image_tag }}"--# Ports-phpmyadmin_docker_ports_defaults: []-phpmyadmin_docker_ports_custom: []-phpmyadmin_docker_ports: "{{ phpmyadmin_docker_ports_defaults- + phpmyadmin_docker_ports_custom }}"+phpmyadmin_role_docker_image_pull: true+phpmyadmin_role_docker_image_tag: "latest"+phpmyadmin_role_docker_image_repo: "phpmyadmin"+phpmyadmin_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='phpmyadmin') }}:{{ lookup('role_var', '_docker_image_tag', role='phpmyadmin') }}" # Envs-phpmyadmin_docker_envs_default:+phpmyadmin_role_docker_envs_default: TZ: "{{ tz }}" PMA_ARBITRARY: "1"- PMA_ABSOLUTE_URI: "{{ phpmyadmin_web_url }}"+ PMA_ABSOLUTE_URI: "{{ lookup('role_var', '_web_url', role='phpmyadmin') }}" PMA_VERBOSE: "Saltbox" PMA_PORT: "3306" HIDE_PHP_VERSION: "true"-phpmyadmin_docker_envs_custom: {}-phpmyadmin_docker_envs: "{{ phpmyadmin_docker_envs_default- | combine(phpmyadmin_docker_envs_custom) }}"--# Commands-phpmyadmin_docker_commands_default: []-phpmyadmin_docker_commands_custom: []-phpmyadmin_docker_commands: "{{ phpmyadmin_docker_commands_default- + phpmyadmin_docker_commands_custom }}"--# Volumes-phpmyadmin_docker_volumes_default: []-phpmyadmin_docker_volumes_custom: []-phpmyadmin_docker_volumes: "{{ phpmyadmin_docker_volumes_default- + phpmyadmin_docker_volumes_custom }}"--# Devices-phpmyadmin_docker_devices_default: []-phpmyadmin_docker_devices_custom: []-phpmyadmin_docker_devices: "{{ phpmyadmin_docker_devices_default- + phpmyadmin_docker_devices_custom }}"--# Hosts-phpmyadmin_docker_hosts_default: {}-phpmyadmin_docker_hosts_custom: {}-phpmyadmin_docker_hosts: "{{ docker_hosts_common- | combine(phpmyadmin_docker_hosts_default)- | combine(phpmyadmin_docker_hosts_custom) }}"--# Labels-phpmyadmin_docker_labels_default: {}-phpmyadmin_docker_labels_custom: {}-phpmyadmin_docker_labels: "{{ docker_labels_common- | combine(phpmyadmin_docker_labels_default)- | combine(phpmyadmin_docker_labels_custom) }}"+phpmyadmin_role_docker_envs_custom: {}+phpmyadmin_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='phpmyadmin')+ | combine(lookup('role_var', '_docker_envs_custom', role='phpmyadmin')) }}" # Hostname-phpmyadmin_docker_hostname: "{{ phpmyadmin_name }}"+phpmyadmin_role_docker_hostname: "{{ phpmyadmin_name }}" # Networks-phpmyadmin_docker_networks_alias: "{{ phpmyadmin_name }}"-phpmyadmin_docker_networks_default: []-phpmyadmin_docker_networks_custom: []-phpmyadmin_docker_networks: "{{ docker_networks_common- + phpmyadmin_docker_networks_default- + phpmyadmin_docker_networks_custom }}"--# Capabilities-phpmyadmin_docker_capabilities_default: []-phpmyadmin_docker_capabilities_custom: []-phpmyadmin_docker_capabilities: "{{ phpmyadmin_docker_capabilities_default- + phpmyadmin_docker_capabilities_custom }}"--# Security Opts-phpmyadmin_docker_security_opts_default: []-phpmyadmin_docker_security_opts_custom: []-phpmyadmin_docker_security_opts: "{{ phpmyadmin_docker_security_opts_default- + phpmyadmin_docker_security_opts_custom }}"+phpmyadmin_role_docker_networks_alias: "{{ phpmyadmin_name }}"+phpmyadmin_role_docker_networks_default: []+phpmyadmin_role_docker_networks_custom: []+phpmyadmin_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='phpmyadmin')+ + lookup('role_var', '_docker_networks_custom', role='phpmyadmin') }}" # Restart Policy-phpmyadmin_docker_restart_policy: unless-stopped+phpmyadmin_role_docker_restart_policy: unless-stopped # State-phpmyadmin_docker_state: started+phpmyadmin_role_docker_state: started
modified
roles/phpmyadmin/tasks/main.yml
@@ -11,9 +11,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/plex_auto_languages/defaults/main.yml
@@ -17,95 +17,58 @@ # Paths ################################ -plex_auto_languages_paths_folder: "{{ plex_auto_languages_name }}"-plex_auto_languages_paths_location: "{{ server_appdata_path }}/{{ plex_auto_languages_paths_folder }}"-plex_auto_languages_config_location: "{{ plex_auto_languages_paths_location }}/config.yaml"-plex_auto_languages_paths_folders_list:- - "{{ plex_auto_languages_paths_location }}"+plex_auto_languages_role_paths_folder: "{{ plex_auto_languages_name }}"+plex_auto_languages_role_paths_location: "{{ server_appdata_path }}/{{ plex_auto_languages_role_paths_folder }}"+plex_auto_languages_role_paths_config_location: "{{ plex_auto_languages_role_paths_location }}/config.yaml"+plex_auto_languages_role_paths_folders_list:+ - "{{ plex_auto_languages_role_paths_location }}" ################################ # Docker ################################ # Container-plex_auto_languages_docker_container: "{{ plex_auto_languages_name }}"+plex_auto_languages_role_docker_container: "{{ plex_auto_languages_name }}" # Image-plex_auto_languages_docker_image_pull: true-plex_auto_languages_docker_image_tag: "latest"-plex_auto_languages_docker_image: "journeyover/plex-auto-languages:{{ plex_auto_languages_docker_image_tag }}"+plex_auto_languages_role_docker_image_tag: "latest"+plex_auto_languages_role_docker_image_repo: "journeyover/plex-auto-languages"+plex_auto_languages_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='plex_auto_languages') }}:{{ lookup('role_var', '_docker_image_tag', role='plex_auto_languages') }}"+plex_auto_languages_role_docker_image_pull: true # Envs-plex_auto_languages_docker_envs_default:+plex_auto_languages_role_docker_envs_default: TZ: "{{ tz }}"-plex_auto_languages_docker_envs_custom: {}-plex_auto_languages_docker_envs: "{{ plex_auto_languages_docker_envs_default- | combine(plex_auto_languages_docker_envs_custom) }}"--# Commands-plex_auto_languages_docker_commands_default: []-plex_auto_languages_docker_commands_custom: []-plex_auto_languages_docker_commands: "{{ plex_auto_languages_docker_commands_default- + plex_auto_languages_docker_commands_custom }}"+plex_auto_languages_role_docker_envs_custom: {}+plex_auto_languages_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='plex_auto_languages')+ | combine(lookup('role_var', '_docker_envs_custom', role='plex_auto_languages')) }}" # Volumes-plex_auto_languages_docker_volumes_default:- - "{{ plex_auto_languages_paths_location }}:/config"-plex_auto_languages_docker_volumes_custom: []-plex_auto_languages_docker_volumes: "{{ plex_auto_languages_docker_volumes_default- + plex_auto_languages_docker_volumes_custom }}"--# Devices-plex_auto_languages_docker_devices_default: []-plex_auto_languages_docker_devices_custom: []-plex_auto_languages_docker_devices: "{{ plex_auto_languages_docker_devices_default- + plex_auto_languages_docker_devices_custom }}"--# Hosts-plex_auto_languages_docker_hosts_default: {}-plex_auto_languages_docker_hosts_custom: {}-plex_auto_languages_docker_hosts: "{{ docker_hosts_common- | combine(plex_auto_languages_docker_hosts_default)- | combine(plex_auto_languages_docker_hosts_custom) }}"--# Labels-plex_auto_languages_docker_labels_default: {}-plex_auto_languages_docker_labels_custom: {}-plex_auto_languages_docker_labels: "{{ docker_labels_common- | combine(plex_auto_languages_docker_labels_default)- | combine(plex_auto_languages_docker_labels_custom) }}"+plex_auto_languages_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='plex_auto_languages') }}:/config"+plex_auto_languages_role_docker_volumes_custom: []+plex_auto_languages_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='plex_auto_languages')+ + lookup('role_var', '_docker_volumes_custom', role='plex_auto_languages') }}" # Hostname-plex_auto_languages_docker_hostname: "{{ plex_auto_languages_name }}"+plex_auto_languages_role_docker_hostname: "{{ plex_auto_languages_name }}" # Networks-plex_auto_languages_docker_networks_alias: "{{ plex_auto_languages_name }}"-plex_auto_languages_docker_networks_default: []-plex_auto_languages_docker_networks_custom: []-plex_auto_languages_docker_networks: "{{ docker_networks_common- + plex_auto_languages_docker_networks_default- + plex_auto_languages_docker_networks_custom }}"--# Capabilities-plex_auto_languages_docker_capabilities_default: []-plex_auto_languages_docker_capabilities_custom: []-plex_auto_languages_docker_capabilities: "{{ plex_auto_languages_docker_capabilities_default- + plex_auto_languages_docker_capabilities_custom }}"--# Security Opts-plex_auto_languages_docker_security_opts_default: []-plex_auto_languages_docker_security_opts_custom: []-plex_auto_languages_docker_security_opts: "{{ plex_auto_languages_docker_security_opts_default- + plex_auto_languages_docker_security_opts_custom }}"+plex_auto_languages_role_docker_networks_alias: "{{ plex_auto_languages_name }}"+plex_auto_languages_role_docker_networks_default: []+plex_auto_languages_role_docker_networks_custom: []+plex_auto_languages_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='plex_auto_languages')+ + lookup('role_var', '_docker_networks_custom', role='plex_auto_languages') }}" # Restart Policy-plex_auto_languages_docker_restart_policy: unless-stopped+plex_auto_languages_role_docker_restart_policy: unless-stopped # State-plex_auto_languages_docker_state: started+plex_auto_languages_role_docker_state: started # Stop Timeout-plex_auto_languages_docker_stop_timeout: 10+plex_auto_languages_role_docker_stop_timeout: 10 # User-plex_auto_languages_docker_user: "{{ uid }}:{{ gid }}"+plex_auto_languages_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/plex_auto_languages/tasks/main.yml
@@ -17,7 +17,7 @@ block: - name: Check config exists ansible.builtin.stat:- path: "{{ plex_auto_languages_config_location }}"+ path: "{{ plex_auto_languages_role_paths_config_location }}" register: plex_auto_languages_config - name: Set Default Plex instance@@ -30,18 +30,12 @@ when: not plex_auto_languages_config.stat.exists - name: Create directories- ansible.builtin.file:- path: "{{ item }}"- state: directory- owner: "{{ user.name }}"- group: "{{ user.name }}"- mode: "0775"- with_items: "{{ lookup('vars', role_name + '_paths_folders_list') }}"+ ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" - name: Import default config ansible.builtin.template: src: config.yaml.j2- dest: "{{ plex_auto_languages_config_location }}"+ dest: "{{ plex_auto_languages_role_paths_config_location }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"
modified
roles/plex_auto_languages/templates/config.yaml.j2
@@ -36,7 +36,7 @@ # Plex configuration plex: # A valid Plex URL (required)- url: "{{ plex_web_url }}"+ url: "{{ lookup('role_var', '_web_url', role='plex') }}" # A valid Plex Token (required) token: "{{ plex_auth_token | default('') }}"
modified
roles/plex_dupefinder/tasks/main.yml
@@ -20,12 +20,12 @@ mode: "0775" recurse: true with_items:- - /opt/plex_dupefinder+ - "{{ server_appdata_path }}/plex_dupefinder" - name: Clone plex_dupefinder ansible.builtin.git: repo: https://github.com/l3uddz/plex_dupefinder.git- dest: /opt/plex_dupefinder+ dest: "{{ server_appdata_path }}/plex_dupefinder" clone: true version: HEAD force: true@@ -52,28 +52,28 @@ - name: Delete venv folder ansible.builtin.file:- path: "/opt/plex_dupefinder/venv"+ path: "{{ server_appdata_path }}/plex_dupefinder/venv" state: absent - name: Create venv ansible.builtin.command:- cmd: "{{ plex_dupefinder_python_install_path }} -m venv /opt/plex_dupefinder/venv"+ cmd: "{{ plex_dupefinder_python_install_path }} -m venv {{ server_appdata_path }}/plex_dupefinder/venv" args:- creates: "/opt/plex_dupefinder/venv"+ creates: "{{ server_appdata_path }}/plex_dupefinder/venv" become: true become_user: "{{ user.name }}" - name: Install pip requirements ansible.builtin.pip:- requirements: "/opt/plex_dupefinder/requirements.txt"- virtualenv: "/opt/plex_dupefinder/venv"- virtualenv_command: "/opt/plex_dupefinder/venv/bin/python3 -m pip"+ requirements: "{{ server_appdata_path }}/plex_dupefinder/requirements.txt"+ virtualenv: "{{ server_appdata_path }}/plex_dupefinder/venv"+ virtualenv_command: "{{ server_appdata_path }}/plex_dupefinder/venv/bin/python3 -m pip" become: true become_user: "{{ user.name }}" - name: Check config exists ansible.builtin.stat:- path: "/opt/plex_dupefinder/config.json"+ path: "{{ server_appdata_path }}/plex_dupefinder/config.json" register: plex_dupefinder_config - name: Import Plex Auth Token role@@ -84,7 +84,7 @@ - name: Import default config ansible.builtin.template: src: config.json.j2- dest: /opt/plex_dupefinder/config.json+ dest: "{{ server_appdata_path }}/plex_dupefinder/config.json" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"@@ -92,7 +92,7 @@ - name: Set plex_dupefinder.py as executable ansible.builtin.file:- path: /opt/plex_dupefinder/plex_dupefinder.py+ path: "{{ server_appdata_path }}/plex_dupefinder/plex_dupefinder.py" owner: "{{ user.name }}" group: "{{ user.name }}" mode: a+x
modified
roles/plex_dupefinder/templates/config.json.j2
@@ -39,7 +39,7 @@ "Movies": 1, "TV Shows": 2 },- "PLEX_SERVER": "{{ plex_web_url }}",+ "PLEX_SERVER": "{{ lookup('role_var', '_web_url', role='plex') }}", "PLEX_TOKEN": "{{ plex_auth_token | default('') }}", "SCORE_FILESIZE": true, "SKIP_LIST": [
modified
roles/plex_dupefinder/templates/plex_dupefinder.j2
@@ -1,2 +1,2 @@ #!/bin/bash-/opt/plex_dupefinder/venv/bin/python3 /opt/plex_dupefinder/plex_dupefinder.py+{{ server_appdata_path }}/plex_dupefinder/venv/bin/python3 {{ server_appdata_path }}/plex_dupefinder/plex_dupefinder.py
modified
roles/plex_meta_manager/tasks/migration.yml
@@ -12,40 +12,40 @@ vars: var_prefix: "plex-meta-manager" -- name: "Check if '/opt/plex-meta-manager' exists"+- name: "Check if '{{ server_appdata_path }}/plex-meta-manager' exists" ansible.builtin.stat:- path: "/opt/plex-meta-manager"+ path: "{{ server_appdata_path }}/plex-meta-manager" register: opt_pmm - name: "Check if overridden path exists" ansible.builtin.stat:- path: "/opt/{{ plex_meta_manager_name }}"+ path: "{{ server_appdata_path }}/{{ plex_meta_manager_name }}" register: opt_pmm_name when: (plex_meta_manager_name is defined and plex_meta_manager_name | length > 0) -- name: "Check if '/opt/kometa' exists"+- name: "Check if '{{ server_appdata_path }}/kometa' exists" ansible.builtin.stat:- path: "/opt/kometa"+ path: "{{ server_appdata_path }}/kometa" register: opt_kometa - name: Migrate PMM appdata when: (opt_pmm.stat.exists or (opt_pmm_name is defined and opt_pmm_name.stat is defined and opt_pmm_name.stat.exists)) block:- - name: Relocate '/opt/kometa' to '/opt/kometa_bak'- ansible.builtin.shell: "mv /opt/kometa /opt/kometa_bak"+ - name: Relocate '{{ server_appdata_path }}/kometa' to '{{ server_appdata_path }}/kometa_bak'+ ansible.builtin.shell: "mv {{ server_appdata_path }}/kometa {{ server_appdata_path }}/kometa_bak" register: kometa_relocate when: opt_kometa.stat.exists - - name: Relocate '/opt/plex-meta-manager' to '/opt/kometa'- ansible.builtin.shell: "mv /opt/plex-meta-manager /opt/kometa"+ - name: Relocate '{{ server_appdata_path }}/plex-meta-manager' to '{{ server_appdata_path }}/kometa'+ ansible.builtin.shell: "mv {{ server_appdata_path }}/plex-meta-manager {{ server_appdata_path }}/kometa" register: pmm_relocate when: opt_pmm.stat.exists - - name: Relocate '/opt/{{ plex_meta_manager_name }}' to '/opt/kometa'- ansible.builtin.shell: "mv /opt/{{ plex_meta_manager_name }} /opt/kometa"+ - name: Relocate '{{ server_appdata_path }}/{{ plex_meta_manager_name }}' to '{{ server_appdata_path }}/kometa'+ ansible.builtin.shell: "mv {{ server_appdata_path }}/{{ plex_meta_manager_name }} {{ server_appdata_path }}/kometa" register: pmm_name_relocate when: opt_pmm_name is defined and opt_pmm_name.stat is defined and opt_pmm_name.stat.exists - name: Print Kometa tag instructions ansible.builtin.debug:- msg: "Your appdata has been migrated to '/opt/kometa'. You may now run 'sb install sandbox-kometa' to deploy Kometa."+ msg: "Your appdata has been migrated to '{{ server_appdata_path }}/kometa'. You may now run 'sb install sandbox-kometa' to deploy Kometa."
modified
roles/plex_patrol/tasks/main2.yml
@@ -23,13 +23,13 @@ - name: Check if legacy folder exists ansible.builtin.stat:- path: "/opt/{{ plex_name }}_patrol"+ path: "{{ server_appdata_path }}/{{ plex_name }}_patrol" register: plex_patrol_legacy_folder - name: Migrate Plex Patrol directory migrate_folder:- legacy_path: "/opt/{{ plex_name }}_patrol"- new_path: "/opt/{{ plex_name }}-patrol"+ legacy_path: "{{ server_appdata_path }}/{{ plex_name }}_patrol"+ new_path: "{{ server_appdata_path }}/{{ plex_name }}-patrol" owner: "{{ user.name }}" group: "{{ user.name }}" mode: '0775'@@ -38,7 +38,7 @@ - name: Create plex_patrol directories ansible.builtin.file:- path: "/opt/{{ plex_name }}-patrol"+ path: "{{ server_appdata_path }}/{{ plex_name }}-patrol" state: directory owner: "{{ user.name }}" group: "{{ user.name }}"@@ -46,7 +46,7 @@ - name: Check config exists ansible.builtin.stat:- path: "/opt/{{ plex_name }}-patrol/settings.ini"+ path: "{{ server_appdata_path }}/{{ plex_name }}-patrol/settings.ini" register: plex_patrol_config - name: Import Plex Auth Token role@@ -57,7 +57,7 @@ - name: Import default config ansible.builtin.template: src: settings.ini.j2- dest: "/opt/{{ plex_name }}-patrol/settings.ini"+ dest: "{{ server_appdata_path }}/{{ plex_name }}-patrol/settings.ini" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"@@ -71,7 +71,7 @@ pull: true user: "{{ uid }}:{{ gid }}" volumes:- - "/opt/{{ plex_name }}-patrol:/config"+ - "{{ server_appdata_path }}/{{ plex_name }}-patrol:/config" env: TZ: "{{ tz }}" labels:
modified
roles/plex_utills/defaults/main.yml
@@ -17,129 +17,87 @@ # Paths ################################ -plex_utills_paths_folder: "{{ plex_utills_name }}"-plex_utills_paths_location: "{{ server_appdata_path }}/{{ plex_utills_paths_folder }}"-plex_utills_paths_folders_list:- - "{{ plex_utills_paths_location }}"- - "{{ plex_utills_paths_location }}/logs"+plex_utills_role_paths_folder: "{{ plex_utills_name }}"+plex_utills_role_paths_location: "{{ server_appdata_path }}/{{ plex_utills_role_paths_folder }}"+plex_utills_role_paths_folders_list:+ - "{{ plex_utills_role_paths_location }}"+ - "{{ plex_utills_role_paths_location }}/logs" ################################ # Web ################################ -plex_utills_web_subdomain: "{{ plex_utills_name }}"-plex_utills_web_domain: "{{ user.domain }}"-plex_utills_web_port: "80"-plex_utils_web_url: "{{ 'https://' + (plex_utils_web_subdomain + '.' + plex_utils_web_domain- if (plex_utils_web_subdomain | length > 0)- else plex_utils_web_domain) }}"+plex_utills_role_web_subdomain: "{{ plex_utills_name }}"+plex_utills_role_web_domain: "{{ user.domain }}"+plex_utills_role_web_port: "80"+plex_utills_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='plex_utills') + '.' + lookup('role_var', '_web_domain', role='plex_utills')+ if (lookup('role_var', '_web_subdomain', role='plex_utills') | length > 0)+ else lookup('role_var', '_web_domain', role='plex_utills')) }}" ################################ # DNS ################################ -plex_utills_dns_record: "{{ plex_utills_web_subdomain }}"-plex_utills_dns_zone: "{{ plex_utills_web_domain }}"-plex_utills_dns_proxy: "{{ dns.proxied }}"+plex_utills_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='plex_utills') }}"+plex_utills_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='plex_utills') }}"+plex_utills_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -plex_utills_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-plex_utills_traefik_middleware_default: "{{ traefik_default_middleware }}"-plex_utills_traefik_middleware_custom: ""-plex_utills_traefik_certresolver: "{{ traefik_default_certresolver }}"-plex_utills_traefik_enabled: true-plex_utills_traefik_api_enabled: false-plex_utills_traefik_api_endpoint: ""+plex_utills_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+plex_utills_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+plex_utills_role_traefik_middleware_custom: ""+plex_utills_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+plex_utills_role_traefik_enabled: true+plex_utills_role_traefik_api_enabled: false+plex_utills_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-plex_utills_docker_container: "{{ plex_utills_name }}"+plex_utills_role_docker_container: "{{ plex_utills_name }}" # Image-plex_utills_docker_image_pull: true-plex_utills_docker_image_tag: "latest"-plex_utills_docker_image: "jkirkcaldy/plex-utills:{{ plex_utills_docker_image_tag }}"--# Ports-plex_utills_docker_ports_defaults: []-plex_utills_docker_ports_custom: []-plex_utills_docker_ports: "{{ plex_utills_docker_ports_defaults- + plex_utills_docker_ports_custom }}"+plex_utills_role_docker_image_pull: true+plex_utills_role_docker_image_tag: "latest"+plex_utills_role_docker_image_repo: "jkirkcaldy/plex-utills"+plex_utills_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='plex_utills') }}:{{ lookup('role_var', '_docker_image_tag', role='plex_utills') }}" # Envs-plex_utills_docker_envs_default:+plex_utills_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-plex_utills_docker_envs: "{{ plex_utills_docker_envs_default- | combine(plex_utills_docker_envs_custom) }}"--# Commands-plex_utills_docker_commands_default: []-plex_utills_docker_commands_custom: []-plex_utills_docker_commands: "{{ plex_utills_docker_commands_default- + plex_utills_docker_commands_custom }}"+plex_utills_role_docker_envs_custom: {}+plex_utills_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='plex_utills')+ | combine(lookup('role_var', '_docker_envs_custom', role='plex_utills')) }}" # Volumes-plex_utills_docker_volumes_default:- - "{{ plex_utills_paths_location }}:/config"- - "{{ plex_utills_paths_location }}/logs:/logs"+plex_utills_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='plex_utills') }}:/config"+ - "{{ lookup('role_var', '_paths_location', role='plex_utills') }}/logs:/logs" - "/mnt:/films"-plex_utills_docker_volumes_custom: []-plex_utills_docker_volumes: "{{ plex_utills_docker_volumes_default- + plex_utills_docker_volumes_custom }}"--# Devices-plex_utills_docker_devices_default: []-plex_utills_docker_devices_custom: []-plex_utills_docker_devices: "{{ plex_utills_docker_devices_default- + plex_utills_docker_devices_custom }}"--# Hosts-plex_utills_docker_hosts_default: {}-plex_utills_docker_hosts_custom: {}-plex_utills_docker_hosts: "{{ docker_hosts_common- | combine(plex_utills_docker_hosts_default)- | combine(plex_utills_docker_hosts_custom) }}"--# Labels-plex_utills_docker_labels_default: {}-plex_utills_docker_labels_custom: {}-plex_utills_docker_labels: "{{ docker_labels_common- | combine(plex_utills_docker_labels_default)- | combine(plex_utills_docker_labels_custom) }}"+plex_utills_role_docker_volumes_custom: []+plex_utills_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='plex_utills')+ + lookup('role_var', '_docker_volumes_custom', role='plex_utills') }}" # Hostname-plex_utills_docker_hostname: "{{ plex_utills_name }}"+plex_utills_role_docker_hostname: "{{ plex_utills_name }}" # Networks-plex_utills_docker_networks_alias: "{{ plex_utills_name }}"-plex_utills_docker_networks_default: []-plex_utills_docker_networks_custom: []-plex_utills_docker_networks: "{{ docker_networks_common- + plex_utills_docker_networks_default- + plex_utills_docker_networks_custom }}"--# Capabilities-plex_utills_docker_capabilities_default: []-plex_utills_docker_capabilities_custom: []-plex_utills_docker_capabilities: "{{ plex_utills_docker_capabilities_default- + plex_utills_docker_capabilities_custom }}"--# Security Opts-plex_utills_docker_security_opts_default: []-plex_utills_docker_security_opts_custom: []-plex_utills_docker_security_opts: "{{ plex_utills_docker_security_opts_default- + plex_utills_docker_security_opts_custom }}"+plex_utills_role_docker_networks_alias: "{{ plex_utills_name }}"+plex_utills_role_docker_networks_default: []+plex_utills_role_docker_networks_custom: []+plex_utills_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='plex_utills')+ + lookup('role_var', '_docker_networks_custom', role='plex_utills') }}" # Restart Policy-plex_utills_docker_restart_policy: unless-stopped+plex_utills_role_docker_restart_policy: unless-stopped # State-plex_utills_docker_state: started+plex_utills_role_docker_state: started
modified
roles/plex_utills/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/plexshare/defaults/main.yml
@@ -17,62 +17,57 @@ # Paths ################################ -plexshare_paths_folder: "{{ plexshare_name }}"-plexshare_paths_location: "{{ server_appdata_path }}/{{ plexshare_paths_folder }}"-plexshare_paths_folders_list:- - "{{ plexshare_paths_location }}"+plexshare_role_paths_folder: "{{ plexshare_name }}"+plexshare_role_paths_location: "{{ server_appdata_path }}/{{ plexshare_role_paths_folder }}"+plexshare_role_paths_folders_list:+ - "{{ plexshare_role_paths_location }}" ################################ # Web ################################ -plexshare_web_subdomain: "{{ plexshare_name }}"-plexshare_web_domain: "{{ user.domain }}"-plexshare_web_port: "80"-plexshare_web_url: "{{ 'https://' + (plexshare_web_subdomain + '.' + plexshare_web_domain- if (plexshare_web_subdomain | length > 0)- else plexshare_web_domain) }}"+plexshare_role_web_subdomain: "{{ plexshare_name }}"+plexshare_role_web_domain: "{{ user.domain }}"+plexshare_role_web_port: "80"+plexshare_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='plexshare') + '.' + lookup('role_var', '_web_domain', role='plexshare')+ if (lookup('role_var', '_web_subdomain', role='plexshare') | length > 0)+ else lookup('role_var', '_web_domain', role='plexshare')) }}" ################################ # DNS ################################ -plexshare_dns_record: "{{ plexshare_web_subdomain }}"-plexshare_dns_zone: "{{ plexshare_web_domain }}"-plexshare_dns_proxy: "{{ dns.proxied }}"+plexshare_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='plexshare') }}"+plexshare_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='plexshare') }}"+plexshare_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -plexshare_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-plexshare_traefik_middleware_default: "{{ traefik_default_middleware }}"-plexshare_traefik_middleware_custom: ""-plexshare_traefik_certresolver: "{{ traefik_default_certresolver }}"-plexshare_traefik_enabled: true-plexshare_traefik_api_enabled: false-plexshare_traefik_api_endpoint: ""+plexshare_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+plexshare_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+plexshare_role_traefik_middleware_custom: ""+plexshare_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+plexshare_role_traefik_enabled: true+plexshare_role_traefik_api_enabled: false+plexshare_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-plexshare_docker_container: "{{ plexshare_name }}"+plexshare_role_docker_container: "{{ plexshare_name }}" # Image-plexshare_docker_image_pull: true-plexshare_docker_image_tag: "latest"-plexshare_docker_image: "chewbaka/plexshare:{{ plexshare_docker_image_tag }}"--# Ports-plexshare_docker_ports_defaults: []-plexshare_docker_ports_custom: []-plexshare_docker_ports: "{{ plexshare_docker_ports_defaults- + plexshare_docker_ports_custom }}"+plexshare_role_docker_image_pull: true+plexshare_role_docker_image_tag: "latest"+plexshare_role_docker_image_repo: "chewbaka/plexshare"+plexshare_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='plexshare') }}:{{ lookup('role_var', '_docker_image_tag', role='plexshare') }}" # Envs-plexshare_docker_envs_default:+plexshare_role_docker_envs_default: TZ: "{{ tz }}" WEB_DOCUMENT_ROOT: "/app/public" WEB_DOCUMENT_INDEX: "index.php"@@ -83,73 +78,29 @@ PHP_MAX_EXECUTION_TIME: "300" PHP_DATE_TIMEZONE: "{{ tz }}" COMPOSER_VERSION: "1"- BASE_URL: "{{ plexshare_web_url }}/"-plexshare_docker_envs_custom: {}-plexshare_docker_envs: "{{ plexshare_docker_envs_default- | combine(plexshare_docker_envs_custom) }}"--# Commands-plexshare_docker_commands_default: []-plexshare_docker_commands_custom: []-plexshare_docker_commands: "{{ plexshare_docker_commands_default- + plexshare_docker_commands_custom }}"--# Volumes-plexshare_docker_volumes_default: []-plexshare_docker_volumes_custom: []-plexshare_docker_volumes: "{{ plexshare_docker_volumes_default- + plexshare_docker_volumes_custom }}"--# Devices-plexshare_docker_devices_default: []-plexshare_docker_devices_custom: []-plexshare_docker_devices: "{{ plexshare_docker_devices_default- + plexshare_docker_devices_custom }}"--# Hosts-plexshare_docker_hosts_default: {}-plexshare_docker_hosts_custom: {}-plexshare_docker_hosts: "{{ docker_hosts_common- | combine(plexshare_docker_hosts_default)- | combine(plexshare_docker_hosts_custom) }}"--# Labels-plexshare_docker_labels_default: {}-plexshare_docker_labels_custom: {}-plexshare_docker_labels: "{{ docker_labels_common- | combine(plexshare_docker_labels_default)- | combine(plexshare_docker_labels_custom) }}"+ BASE_URL: "{{ lookup('role_var', '_web_url', role='plexshare') }}/"+plexshare_role_docker_envs_custom: {}+plexshare_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='plexshare')+ | combine(lookup('role_var', '_docker_envs_custom', role='plexshare')) }}" # Hostname-plexshare_docker_hostname: "{{ plexshare_name }}"+plexshare_role_docker_hostname: "{{ plexshare_name }}" # Networks-plexshare_docker_networks_alias: "{{ plexshare_name }}"-plexshare_docker_networks_default: []-plexshare_docker_networks_custom: []-plexshare_docker_networks: "{{ docker_networks_common- + plexshare_docker_networks_default- + plexshare_docker_networks_custom }}"--# Capabilities-plexshare_docker_capabilities_default: []-plexshare_docker_capabilities_custom: []-plexshare_docker_capabilities: "{{ plexshare_docker_capabilities_default- + plexshare_docker_capabilities_custom }}"--# Security Opts-plexshare_docker_security_opts_default: []-plexshare_docker_security_opts_custom: []-plexshare_docker_security_opts: "{{ plexshare_docker_security_opts_default- + plexshare_docker_security_opts_custom }}"+plexshare_role_docker_networks_alias: "{{ plexshare_name }}"+plexshare_role_docker_networks_default: []+plexshare_role_docker_networks_custom: []+plexshare_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='plexshare')+ + lookup('role_var', '_docker_networks_custom', role='plexshare') }}" # Restart Policy-plexshare_docker_restart_policy: unless-stopped+plexshare_role_docker_restart_policy: unless-stopped # State-plexshare_docker_state: started+plexshare_role_docker_state: started # Dependencies-plexshare_depends_on: "{{ plexshare_name }}-mariadb"-plexshare_depends_on_delay: "0"-plexshare_depends_on_healthchecks: "false"+plexshare_role_depends_on: "{{ plexshare_name }}-mariadb"+plexshare_role_depends_on_delay: "0"+plexshare_role_depends_on_healthchecks: "false"
modified
roles/plexshare/tasks/main.yml
@@ -10,7 +10,7 @@ --- - name: Check if db folder exists ansible.builtin.stat:- path: "{{ server_appdata_path }}/{{ plexshare_paths_folder }}/mariadb"+ path: "{{ server_appdata_path }}/{{ plexshare_role_paths_folder }}/mariadb" register: stat_plexshare_db_folder - name: Remove legacy MariaDB Docker container@@ -23,25 +23,25 @@ name: mariadb vars: mariadb_instances: ["{{ plexshare_name }}-mariadb"]- mariadb_docker_image_tag: "latest"- mariadb_paths_folder: "{{ plexshare_name }}"- mariadb_paths_location: "{{ server_appdata_path }}/{{ plexshare_paths_folder }}/mariadb"+ mariadb_role_docker_image_tag: "latest"+ mariadb_role_paths_folder: "{{ plexshare_name }}"+ mariadb_role_paths_location: "{{ server_appdata_path }}/{{ plexshare_role_paths_folder }}/mariadb" - name: MariaDB | Create plexshare database community.mysql.mysql_db: name: "plexshare" login_host: "{{ plexshare_name }}-mariadb" login_user: "root"- login_password: "{{ mariadb_docker_env_password }}"+ login_password: "{{ lookup('role_var', '_docker_env_password', role='mariadb') }}" state: present when: not stat_plexshare_db_folder.stat.exists - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/plextraktsync/defaults/main.yml
@@ -17,91 +17,60 @@ # Paths ################################ -plextraktsync_paths_folder: "{{ plextraktsync_name }}"-plextraktsync_paths_location: "{{ server_appdata_path }}/{{ plextraktsync_paths_folder }}"-plextraktsync_paths_env: "{{ plextraktsync_paths_location }}/.env"-plextraktsync_paths_log: "{{ plextraktsync_paths_location }}/plextraktsync.log"-plextraktsync_paths_folders_list:- - "{{ plextraktsync_paths_location }}"+plextraktsync_role_paths_folder: "{{ plextraktsync_name }}"+plextraktsync_role_paths_location: "{{ server_appdata_path }}/{{ plextraktsync_role_paths_folder }}"+plextraktsync_role_paths_env: "{{ plextraktsync_role_paths_location }}/.env"+plextraktsync_role_paths_log: "{{ plextraktsync_role_paths_location }}/plextraktsync.log"+plextraktsync_role_paths_folders_list:+ - "{{ plextraktsync_role_paths_location }}" ################################ # Docker ################################ # Container-plextraktsync_docker_container: "{{ plextraktsync_name }}"+plextraktsync_role_docker_container: "{{ plextraktsync_name }}" # Image-plextraktsync_docker_image_pull: true-plextraktsync_docker_image_tag: "latest"-plextraktsync_docker_image: "ghcr.io/taxel/plextraktsync:{{ plextraktsync_docker_image_tag }}"+plextraktsync_role_docker_image_pull: true+plextraktsync_role_docker_image_tag: "latest"+plextraktsync_role_docker_image_repo: "ghcr.io/taxel/plextraktsync"+plextraktsync_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='plextraktsync') }}:{{ lookup('role_var', '_docker_image_tag', role='plextraktsync') }}" # Envs-plextraktsync_docker_envs_default:+plextraktsync_role_docker_envs_default: TZ: "{{ tz }}"-plextraktsync_docker_envs_custom: {}-plextraktsync_docker_envs: "{{ plextraktsync_docker_envs_default- | combine(plextraktsync_docker_envs_custom) }}"+plextraktsync_role_docker_envs_custom: {}+plextraktsync_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='plextraktsync')+ | combine(lookup('role_var', '_docker_envs_custom', role='plextraktsync')) }}" # Commands-plextraktsync_docker_commands_default:+plextraktsync_role_docker_commands_default: - watch-plextraktsync_docker_commands_custom: []-plextraktsync_docker_commands: "{{ plextraktsync_docker_commands_default- + plextraktsync_docker_commands_custom }}"+plextraktsync_role_docker_commands_custom: []+plextraktsync_role_docker_commands: "{{ lookup('role_var', '_docker_commands_default', role='plextraktsync')+ + lookup('role_var', '_docker_commands_custom', role='plextraktsync') }}" # Volumes-plextraktsync_docker_volumes_default:- - "{{ plextraktsync_paths_location }}:/app/config"-plextraktsync_docker_volumes_custom: []-plextraktsync_docker_volumes: "{{ plextraktsync_docker_volumes_default- + plextraktsync_docker_volumes_custom }}"--# Devices-plextraktsync_docker_devices_default: []-plextraktsync_docker_devices_custom: []-plextraktsync_docker_devices: "{{ plextraktsync_docker_devices_default- + plextraktsync_docker_devices_custom }}"--# Hosts-plextraktsync_docker_hosts_default: {}-plextraktsync_docker_hosts_custom: {}-plextraktsync_docker_hosts: "{{ docker_hosts_common- | combine(plextraktsync_docker_hosts_default)- | combine(plextraktsync_docker_hosts_custom) }}"--# Labels-plextraktsync_docker_labels_default: {}-plextraktsync_docker_labels_custom: {}-plextraktsync_docker_labels: "{{ docker_labels_common- | combine(plextraktsync_docker_labels_default)- | combine(plextraktsync_docker_labels_custom) }}"+plextraktsync_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='plextraktsync') }}:/app/config"+plextraktsync_role_docker_volumes_custom: []+plextraktsync_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='plextraktsync')+ + lookup('role_var', '_docker_volumes_custom', role='plextraktsync') }}" # Hostname-plextraktsync_docker_hostname: "{{ plextraktsync_name }}"+plextraktsync_role_docker_hostname: "{{ plextraktsync_name }}" # Networks-plextraktsync_docker_networks_alias: "{{ plextraktsync_name }}"-plextraktsync_docker_networks_default: []-plextraktsync_docker_networks_custom: []-plextraktsync_docker_networks: "{{ docker_networks_common- + plextraktsync_docker_networks_default- + plextraktsync_docker_networks_custom }}"--# Capabilities-plextraktsync_docker_capabilities_default: []-plextraktsync_docker_capabilities_custom: []-plextraktsync_docker_capabilities: "{{ plextraktsync_docker_capabilities_default- + plextraktsync_docker_capabilities_custom }}"--# Security Opts-plextraktsync_docker_security_opts_default: []-plextraktsync_docker_security_opts_custom: []-plextraktsync_docker_security_opts: "{{ plextraktsync_docker_security_opts_default- + plextraktsync_docker_security_opts_custom }}"+plextraktsync_role_docker_networks_alias: "{{ plextraktsync_name }}"+plextraktsync_role_docker_networks_default: []+plextraktsync_role_docker_networks_custom: []+plextraktsync_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='plextraktsync')+ + lookup('role_var', '_docker_networks_custom', role='plextraktsync') }}" # Restart Policy-plextraktsync_docker_restart_policy: unless-stopped+plextraktsync_role_docker_restart_policy: unless-stopped # State-plextraktsync_docker_state: started+plextraktsync_role_docker_state: started
modified
roles/plextraktsync/tasks/main.yml
@@ -13,9 +13,9 @@ - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" -- name: Check if `{{ plextraktsync_paths_env | basename }}` exists+- name: Check if `{{ plextraktsync_role_paths_env | basename }}` exists ansible.builtin.stat:- path: "{{ plextraktsync_paths_env }}"+ path: "{{ plextraktsync_role_paths_env }}" register: plextraktsync_env - name: Pre-Install Tasks@@ -27,7 +27,7 @@ - name: Wait for directory to be populated ansible.builtin.wait_for:- path: "{{ plextraktsync_paths_log }}"+ path: "{{ plextraktsync_role_paths_log }}" - name: Sleep 3 seconds ansible.builtin.wait_for:@@ -35,7 +35,7 @@ - name: Reset files ownership ansible.builtin.file:- path: "{{ plextraktsync_paths_location }}"+ path: "{{ plextraktsync_role_paths_location }}" owner: "{{ user.name }}" group: "{{ user.name }}" recurse: true
modified
roles/plextraktsync/tasks/subtasks/pre-install/main.yml
@@ -11,18 +11,18 @@ ansible.builtin.set_fact: plex_name: "{{ plex_name | default(plex_instances[0]) }}" -- name: Check if {{ plex_paths_config_location | basename }} exists+- name: Check if {{ plex_role_paths_config_location | basename }} exists ansible.builtin.stat:- path: "{{ plex_paths_config_location }}"+ path: "{{ plex_role_paths_config_location }}" register: preferences_xml - name: Get default Plex username ignore_errors: true when: preferences_xml.stat.exists block:- - name: Get {{ plex_paths_config_location | basename }} XML data+ - name: Get {{ plex_role_paths_config_location | basename }} XML data community.general.xml:- path: "{{ plex_paths_config_location }}"+ path: "{{ plex_role_paths_config_location }}" xpath: /Preferences content: attribute register: preferences_xml_resp@@ -36,8 +36,8 @@ name: plex_auth_token when: plex_account_is_enabled -- name: Create {{ plextraktsync_paths_env | basename }}+- name: Create {{ plextraktsync_role_paths_env | basename }} ansible.builtin.template: src: env.j2- dest: "{{ plextraktsync_paths_env }}"+ dest: "{{ plextraktsync_role_paths_env }}" mode: "0644"
modified
roles/plextraktsync/templates/env.j2
@@ -1,3 +1,3 @@-PLEX_BASEURL=http://{{ plex_docker_networks_alias }}:{{ plex_web_port }}+PLEX_BASEURL=http://{{ lookup('role_var', '_docker_networks_alias', role='plex') }}:{{ lookup('role_var', '_web_port', role='plex') }} PLEX_TOKEN={{ plex_auth_token | d('') }} PLEX_USERNAME={{ plex_owner_username | d('') | escape }}
modified
roles/privatebin/defaults/main.yml
@@ -17,144 +17,100 @@ # Paths ################################ -privatebin_paths_folder: "{{ privatebin_name }}"-privatebin_paths_location: "{{ server_appdata_path }}/{{ privatebin_paths_folder }}"-privatebin_paths_folders_list:- - "{{ privatebin_paths_location }}"+privatebin_role_paths_folder: "{{ privatebin_name }}"+privatebin_role_paths_location: "{{ server_appdata_path }}/{{ privatebin_role_paths_folder }}"+privatebin_role_paths_folders_list:+ - "{{ privatebin_role_paths_location }}" ################################ # Web ################################ -privatebin_web_subdomain: "{{ privatebin_name }}"-privatebin_web_domain: "{{ user.domain }}"-privatebin_web_port: "8080"-privatebin_web_url: "{{ 'https://' + (privatebin_web_subdomain + '.' + privatebin_web_domain- if (privatebin_web_subdomain | length > 0)- else privatebin_web_domain) }}"+privatebin_role_web_subdomain: "{{ privatebin_name }}"+privatebin_role_web_domain: "{{ user.domain }}"+privatebin_role_web_port: "8080"+privatebin_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='privatebin') + '.' + lookup('role_var', '_web_domain', role='privatebin')+ if (lookup('role_var', '_web_subdomain', role='privatebin') | length > 0)+ else lookup('role_var', '_web_domain', role='privatebin')) }}" ################################ # DNS ################################ -privatebin_dns_record: "{{ privatebin_web_subdomain }}"-privatebin_dns_zone: "{{ privatebin_web_domain }}"-privatebin_dns_proxy: "{{ dns.proxied }}"+privatebin_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='privatebin') }}"+privatebin_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='privatebin') }}"+privatebin_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -privatebin_traefik_sso_middleware: ""-privatebin_traefik_middleware_default: "{{ traefik_default_middleware }}"-privatebin_traefik_middleware_custom: ""-privatebin_traefik_certresolver: "{{ traefik_default_certresolver }}"-privatebin_traefik_enabled: true-privatebin_traefik_api_enabled: false-privatebin_traefik_api_endpoint: ""+privatebin_role_traefik_sso_middleware: ""+privatebin_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+privatebin_role_traefik_middleware_custom: ""+privatebin_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+privatebin_role_traefik_enabled: true+privatebin_role_traefik_api_enabled: false+privatebin_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-privatebin_docker_container: "{{ privatebin_name }}"+privatebin_role_docker_container: "{{ privatebin_name }}" # Image-privatebin_docker_image_pull: true-privatebin_docker_image_tag: "latest"-privatebin_docker_image: "privatebin/nginx-fpm-alpine:{{ privatebin_docker_image_tag }}"--# Ports-privatebin_docker_ports_defaults: []-privatebin_docker_ports_custom: []-privatebin_docker_ports: "{{ privatebin_docker_ports_defaults- + privatebin_docker_ports_custom }}"+privatebin_role_docker_image_pull: true+privatebin_role_docker_image_tag: "latest"+privatebin_role_docker_image: "privatebin/nginx-fpm-alpine:{{ lookup('role_var', '_docker_image_tag', role='privatebin') }}" # Envs-privatebin_docker_envs_default:+privatebin_role_docker_envs_default: TZ: "{{ tz }}" PHP_TZ: "{{ tz }}"-privatebin_docker_envs_custom: {}-privatebin_docker_envs: "{{ privatebin_docker_envs_default- | combine(privatebin_docker_envs_custom) }}"--# Commands-privatebin_docker_commands_default: []-privatebin_docker_commands_custom: []-privatebin_docker_commands: "{{ privatebin_docker_commands_default- + privatebin_docker_commands_custom }}"+privatebin_role_docker_envs_custom: {}+privatebin_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='privatebin')+ | combine(lookup('role_var', '_docker_envs_custom', role='privatebin')) }}" # Volumes-privatebin_docker_volumes_default:- - "{{ privatebin_paths_location }}:/srv/data"- - "{{ privatebin_paths_location }}/conf.php:/srv/cfg/conf.php:ro"- - "{{ lookup('vars', role_name + '_docker_container') }}_tmpfs_run:/run"-privatebin_docker_volumes_custom: []-privatebin_docker_volumes: "{{ privatebin_docker_volumes_default- + privatebin_docker_volumes_custom }}"+privatebin_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='privatebin') }}:/srv/data"+ - "{{ lookup('role_var', '_paths_location', role='privatebin') }}/conf.php:/srv/cfg/conf.php:ro"+ - "{{ privatebin_name }}_tmpfs_run:/run"+privatebin_role_docker_volumes_custom: []+privatebin_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='privatebin')+ + lookup('role_var', '_docker_volumes_custom', role='privatebin') }}" # Mounts-privatebin_docker_mounts_default:+privatebin_role_docker_mounts_default: - target: /tmp type: tmpfs - target: /var/lib/nginx/tmp type: tmpfs-privatebin_docker_mounts_custom: []-privatebin_docker_mounts: "{{ privatebin_docker_mounts_default- + privatebin_docker_mounts_custom }}"--# Devices-privatebin_docker_devices_default: []-privatebin_docker_devices_custom: []-privatebin_docker_devices: "{{ privatebin_docker_devices_default- + privatebin_docker_devices_custom }}"--# Hosts-privatebin_docker_hosts_default: {}-privatebin_docker_hosts_custom: {}-privatebin_docker_hosts: "{{ docker_hosts_common- | combine(privatebin_docker_hosts_default)- | combine(privatebin_docker_hosts_custom) }}"--# Labels-privatebin_docker_labels_default: {}-privatebin_docker_labels_custom: {}-privatebin_docker_labels: "{{ docker_labels_common- | combine(privatebin_docker_labels_default)- | combine(privatebin_docker_labels_custom) }}"+privatebin_role_docker_mounts_custom: []+privatebin_role_docker_mounts: "{{ lookup('role_var', '_docker_mounts_default', role='privatebin')+ + lookup('role_var', '_docker_mounts_custom', role='privatebin') }}" # Hostname-privatebin_docker_hostname: "{{ privatebin_name }}"+privatebin_role_docker_hostname: "{{ privatebin_name }}" # Networks-privatebin_docker_networks_alias: "{{ privatebin_name }}"-privatebin_docker_networks_default: []-privatebin_docker_networks_custom: []-privatebin_docker_networks: "{{ docker_networks_common- + privatebin_docker_networks_default- + privatebin_docker_networks_custom }}"--# Capabilities-privatebin_docker_capabilities_default: []-privatebin_docker_capabilities_custom: []-privatebin_docker_capabilities: "{{ privatebin_docker_capabilities_default- + privatebin_docker_capabilities_custom }}"--# Security Opts-privatebin_docker_security_opts_default: []-privatebin_docker_security_opts_custom: []-privatebin_docker_security_opts: "{{ privatebin_docker_security_opts_default- + privatebin_docker_security_opts_custom }}"+privatebin_role_docker_networks_alias: "{{ privatebin_name }}"+privatebin_role_docker_networks_default: []+privatebin_role_docker_networks_custom: []+privatebin_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='privatebin')+ + lookup('role_var', '_docker_networks_custom', role='privatebin') }}" # Read Only-privatebin_docker_read_only: yes+privatebin_role_docker_read_only: true # Restart Policy-privatebin_docker_restart_policy: unless-stopped+privatebin_role_docker_restart_policy: unless-stopped # State-privatebin_docker_state: started+privatebin_role_docker_state: started # User-privatebin_docker_user: "{{ uid }}:{{ gid }}"+privatebin_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/privatebin/tasks/main.yml
@@ -10,28 +10,25 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container- community.docker.docker_container:- name: "{{ lookup('vars', role_name + '_docker_container') }}"- state: absent- container_default_behavior: compatibility+ ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" - name: Check 'conf.php'' exists ansible.builtin.stat:- path: "{{ privatebin_paths_location }}/conf.php"+ path: "{{ lookup('role_var', '_paths_location', role='privatebin') }}/conf.php" register: conf_php - name: Import default 'conf.php' ansible.builtin.get_url: url: https://raw.githubusercontent.com/PrivateBin/PrivateBin/master/cfg/conf.sample.php- dest: "{{ privatebin_paths_location }}/conf.php"+ dest: "{{ lookup('role_var', '_paths_location', role='privatebin') }}/conf.php" owner: "{{ user.name }}" group: "{{ user.name }}" validate_certs: false@@ -41,7 +38,7 @@ - name: Create a volume with options community.docker.docker_volume:- name: "{{ lookup('vars', role_name + '_docker_container') }}_tmpfs_run"+ name: "{{ privatebin_name }}_tmpfs_run" driver_options: type: tmpfs device: tmpfs
modified
roles/profilarr/defaults/main.yml
@@ -17,128 +17,84 @@ # Paths ################################ -profilarr_paths_folder: "{{ profilarr_name }}"-profilarr_paths_location: "{{ server_appdata_path }}/{{ profilarr_paths_folder }}"-profilarr_paths_folders_list:- - "{{ profilarr_paths_location }}"+profilarr_role_paths_folder: "{{ profilarr_name }}"+profilarr_role_paths_location: "{{ server_appdata_path }}/{{ profilarr_role_paths_folder }}"+profilarr_role_paths_folders_list:+ - "{{ profilarr_role_paths_location }}" ################################ # Web ################################ -profilarr_web_subdomain: "{{ profilarr_name }}"-profilarr_web_domain: "{{ user.domain }}"-profilarr_web_port: "6868"-profilarr_web_url: "{{ 'https://' + (profilarr_web_subdomain + '.' + profilarr_web_domain- if (profilarr_web_subdomain | length > 0)- else profilarr_web_domain) }}"+profilarr_role_web_subdomain: "{{ profilarr_name }}"+profilarr_role_web_domain: "{{ user.domain }}"+profilarr_role_web_port: "6868"+profilarr_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='profilarr') + '.' + lookup('role_var', '_web_domain', role='profilarr')+ if (lookup('role_var', '_web_subdomain', role='profilarr') | length > 0)+ else lookup('role_var', '_web_domain', role='profilarr')) }}" ################################ # DNS ################################ -profilarr_dns_record: "{{ profilarr_web_subdomain }}"-profilarr_dns_zone: "{{ profilarr_web_domain }}"-profilarr_dns_proxy: "{{ dns.proxied }}"+profilarr_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='profilarr') }}"+profilarr_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='profilarr') }}"+profilarr_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -profilarr_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-profilarr_traefik_middleware_default: "{{ traefik_default_middleware }}"-profilarr_traefik_middleware_custom: ""-profilarr_traefik_certresolver: "{{ traefik_default_certresolver }}"-profilarr_traefik_enabled: true-profilarr_traefik_api_enabled: true-profilarr_traefik_api_endpoint: "PathPrefix(`/api`)"+profilarr_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+profilarr_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+profilarr_role_traefik_middleware_custom: ""+profilarr_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+profilarr_role_traefik_enabled: true+profilarr_role_traefik_api_enabled: true+profilarr_role_traefik_api_endpoint: "PathPrefix(`/api`)" ################################ # Docker ################################ # Container-profilarr_docker_container: "{{ profilarr_name }}"+profilarr_role_docker_container: "{{ profilarr_name }}" # Image-profilarr_docker_image_pull: true-profilarr_docker_image_repo: "santiagosayshey/profilarr"-profilarr_docker_image_tag: "latest"-profilarr_docker_image: "{{ profilarr_docker_image_repo }}:{{ profilarr_docker_image_tag }}"--# Ports-profilarr_docker_ports_defaults: []-profilarr_docker_ports_custom: []-profilarr_docker_ports: "{{ profilarr_docker_ports_defaults- + profilarr_docker_ports_custom }}"+profilarr_role_docker_image_pull: true+profilarr_role_docker_image_repo: "santiagosayshey/profilarr"+profilarr_role_docker_image_tag: "latest"+profilarr_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='profilarr') }}:{{ lookup('role_var', '_docker_image_tag', role='profilarr') }}" # Envs-profilarr_docker_envs_default:+profilarr_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-profilarr_docker_envs_custom: {}-profilarr_docker_envs: "{{ profilarr_docker_envs_default- | combine(profilarr_docker_envs_custom) }}"--# Commands-profilarr_docker_commands_default: []-profilarr_docker_commands_custom: []-profilarr_docker_commands: "{{ profilarr_docker_commands_default- + profilarr_docker_commands_custom }}"+profilarr_role_docker_envs_custom: {}+profilarr_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='profilarr')+ | combine(lookup('role_var', '_docker_envs_custom', role='profilarr')) }}" # Volumes-profilarr_docker_volumes_default:- - "{{ profilarr_paths_location }}:/config"-profilarr_docker_volumes_custom: []-profilarr_docker_volumes: "{{ profilarr_docker_volumes_default- + profilarr_docker_volumes_custom }}"--# Devices-profilarr_docker_devices_default: []-profilarr_docker_devices_custom: []-profilarr_docker_devices: "{{ profilarr_docker_devices_default- + profilarr_docker_devices_custom }}"--# Hosts-profilarr_docker_hosts_default: []-profilarr_docker_hosts_custom: []-profilarr_docker_hosts: "{{ docker_hosts_common- | combine(profilarr_docker_hosts_default)- | combine(profilarr_docker_hosts_custom) }}"--# Labels-profilarr_docker_labels_default: {}-profilarr_docker_labels_custom: {}-profilarr_docker_labels: "{{ docker_labels_common- | combine(profilarr_docker_labels_default)- | combine(profilarr_docker_labels_custom) }}"+profilarr_role_docker_volumes_default:+ - "{{ profilarr_role_paths_location }}:/config"+profilarr_role_docker_volumes_custom: []+profilarr_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='profilarr')+ + lookup('role_var', '_docker_volumes_custom', role='profilarr') }}" # Hostname-profilarr_docker_hostname: "{{ profilarr_name }}"+profilarr_role_docker_hostname: "{{ profilarr_name }}" # Networks-profilarr_docker_networks_alias: "{{ profilarr_name }}"-profilarr_docker_networks_default: []-profilarr_docker_networks_custom: []-profilarr_docker_networks: "{{ docker_networks_common- + profilarr_docker_networks_default- + profilarr_docker_networks_custom }}"--# Capabilities-profilarr_docker_capabilities_default: []-profilarr_docker_capabilities_custom: []-profilarr_docker_capabilities: "{{ profilarr_docker_capabilities_default- + profilarr_docker_capabilities_custom }}"--# Security Opts-profilarr_docker_security_opts_default: []-profilarr_docker_security_opts_custom: []-profilarr_docker_security_opts: "{{ profilarr_docker_security_opts_default- + profilarr_docker_security_opts_custom }}"+profilarr_role_docker_networks_alias: "{{ profilarr_name }}"+profilarr_role_docker_networks_default: []+profilarr_role_docker_networks_custom: []+profilarr_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='profilarr')+ + lookup('role_var', '_docker_networks_custom', role='profilarr') }}" # Restart Policy-profilarr_docker_restart_policy: unless-stopped+profilarr_role_docker_restart_policy: unless-stopped # State-profilarr_docker_state: started+profilarr_role_docker_state: started
modified
roles/profilarr/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/puddletag/defaults/main.yml
@@ -17,130 +17,87 @@ # Paths ################################ -puddletag_paths_folder: "{{ puddletag_name }}"-puddletag_paths_location: "{{ server_appdata_path }}/{{ puddletag_paths_folder }}"-puddletag_paths_folders_list:- - "{{ puddletag_paths_location }}"+puddletag_role_paths_folder: "{{ puddletag_name }}"+puddletag_role_paths_location: "{{ server_appdata_path }}/{{ puddletag_role_paths_folder }}"+puddletag_role_paths_folders_list:+ - "{{ puddletag_role_paths_location }}" ################################ # Web ################################ -puddletag_web_subdomain: "{{ puddletag_name }}"-puddletag_web_domain: "{{ user.domain }}"-puddletag_web_port: "8080"-puddletag_web_url: "{{ 'https://' + (puddletag_web_subdomain + '.' + puddletag_web_domain- if (puddletag_web_subdomain | length > 0)- else puddletag_web_domain) }}"+puddletag_role_web_subdomain: "{{ puddletag_name }}"+puddletag_role_web_domain: "{{ user.domain }}"+puddletag_role_web_port: "8080"+puddletag_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='puddletag') + '.' + lookup('role_var', '_web_domain', role='puddletag')+ if (lookup('role_var', '_web_subdomain', role='puddletag') | length > 0)+ else lookup('role_var', '_web_domain', role='puddletag')) }}" ################################ # DNS ################################ -puddletag_dns_record: "{{ puddletag_web_subdomain }}"-puddletag_dns_zone: "{{ puddletag_web_domain }}"-puddletag_dns_proxy: "{{ dns.proxied }}"+puddletag_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='puddletag') }}"+puddletag_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='puddletag') }}"+puddletag_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -puddletag_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-puddletag_traefik_middleware_default: "{{ traefik_default_middleware }}"-puddletag_traefik_middleware_custom: ""-puddletag_traefik_certresolver: "{{ traefik_default_certresolver }}"-puddletag_traefik_enabled: true-puddletag_traefik_api_enabled: false-puddletag_traefik_api_endpoint: ""+puddletag_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+puddletag_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+puddletag_role_traefik_middleware_custom: ""+puddletag_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+puddletag_role_traefik_enabled: true+puddletag_role_traefik_api_enabled: false+puddletag_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-puddletag_docker_container: "{{ puddletag_name }}"+puddletag_role_docker_container: "{{ puddletag_name }}" # Image-puddletag_docker_image_pull: true-puddletag_docker_image_tag: "latest"-puddletag_docker_image: "xirg/docker-puddletag:{{ puddletag_docker_image_tag }}"--# Ports-puddletag_docker_ports_defaults: []-puddletag_docker_ports_custom: []-puddletag_docker_ports: "{{ puddletag_docker_ports_defaults- + puddletag_docker_ports_custom }}"+puddletag_role_docker_image_pull: true+puddletag_role_docker_image_repo: "xirg/docker-puddletag"+puddletag_role_docker_image_tag: "latest"+puddletag_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='puddletag') }}:{{ lookup('role_var', '_docker_image_tag', role='puddletag') }}" # Envs-puddletag_docker_envs_default:+puddletag_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}" APPNAME: "{{ puddletag_name }}" GUAC_USER: "{{ user.name }}" GUAC_PASS: "{{ user.pass | hash('md5') }}"-puddletag_docker_envs_custom: {}-puddletag_docker_envs: "{{ puddletag_docker_envs_default- | combine(puddletag_docker_envs_custom) }}"--# Commands-puddletag_docker_commands_default: []-puddletag_docker_commands_custom: []-puddletag_docker_commands: "{{ puddletag_docker_commands_default- + puddletag_docker_commands_custom }}"+puddletag_role_docker_envs_custom: {}+puddletag_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='puddletag')+ | combine(lookup('role_var', '_docker_envs_custom', role='puddletag')) }}" # Volumes-puddletag_docker_volumes_default:- - "{{ puddletag_paths_location }}:/config"-puddletag_docker_volumes_custom: []-puddletag_docker_volumes: "{{ puddletag_docker_volumes_default- + puddletag_docker_volumes_custom }}"--# Devices-puddletag_docker_devices_default: []-puddletag_docker_devices_custom: []-puddletag_docker_devices: "{{ puddletag_docker_devices_default- + puddletag_docker_devices_custom }}"--# Hosts-puddletag_docker_hosts_default: {}-puddletag_docker_hosts_custom: {}-puddletag_docker_hosts: "{{ docker_hosts_common- | combine(puddletag_docker_hosts_default)- | combine(puddletag_docker_hosts_custom) }}"--# Labels-puddletag_docker_labels_default: {}-puddletag_docker_labels_custom: {}-puddletag_docker_labels: "{{ docker_labels_common- | combine(puddletag_docker_labels_default)- | combine(puddletag_docker_labels_custom) }}"+puddletag_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='puddletag') }}:/config"+puddletag_role_docker_volumes_custom: []+puddletag_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='puddletag')+ + lookup('role_var', '_docker_volumes_custom', role='puddletag') }}" # Hostname-puddletag_docker_hostname: "{{ puddletag_name }}"+puddletag_role_docker_hostname: "{{ puddletag_name }}" # Networks-puddletag_docker_networks_alias: "{{ puddletag_name }}"-puddletag_docker_networks_default: []-puddletag_docker_networks_custom: []-puddletag_docker_networks: "{{ docker_networks_common- + puddletag_docker_networks_default- + puddletag_docker_networks_custom }}"--# Capabilities-puddletag_docker_capabilities_default: []-puddletag_docker_capabilities_custom: []-puddletag_docker_capabilities: "{{ puddletag_docker_capabilities_default- + puddletag_docker_capabilities_custom }}"--# Security Opts-puddletag_docker_security_opts_default: []-puddletag_docker_security_opts_custom: []-puddletag_docker_security_opts: "{{ puddletag_docker_security_opts_default- + puddletag_docker_security_opts_custom }}"+puddletag_role_docker_networks_alias: "{{ puddletag_name }}"+puddletag_role_docker_networks_default: []+puddletag_role_docker_networks_custom: []+puddletag_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='puddletag')+ + lookup('role_var', '_docker_networks_custom', role='puddletag') }}" # Restart Policy-puddletag_docker_restart_policy: unless-stopped+puddletag_role_docker_restart_policy: unless-stopped # State-puddletag_docker_state: started+puddletag_role_docker_state: started
modified
roles/puddletag/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/pufferpanel/defaults/main.yml
@@ -17,128 +17,93 @@ # Paths ################################ -pufferpanel_paths_folder: "{{ pufferpanel_name }}"-pufferpanel_paths_location: "{{ server_appdata_path }}/{{ pufferpanel_paths_folder }}"-pufferpanel_paths_folders_list:- - "{{ pufferpanel_paths_location }}/config"- - "{{ pufferpanel_paths_location }}/servers"+pufferpanel_role_paths_folder: "{{ pufferpanel_name }}"+pufferpanel_role_paths_location: "{{ server_appdata_path }}/{{ pufferpanel_role_paths_folder }}"+pufferpanel_role_paths_folders_list:+ - "{{ pufferpanel_role_paths_location }}/config"+ - "{{ pufferpanel_role_paths_location }}/data"+ - "{{ pufferpanel_role_paths_location }}/logs" ################################ # Web ################################ -pufferpanel_web_subdomain: "{{ pufferpanel_name }}"-pufferpanel_web_domain: "{{ user.domain }}"-pufferpanel_web_port: "8080"-pufferpanel_web_url: "{{ 'https://' + (pufferpanel_web_subdomain + '.' + pufferpanel_web_domain- if (pufferpanel_web_subdomain | length > 0)- else pufferpanel_web_domain) }}"+pufferpanel_role_web_subdomain: "{{ pufferpanel_name }}"+pufferpanel_role_web_domain: "{{ user.domain }}"+pufferpanel_role_web_port: "8080"+pufferpanel_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='pufferpanel') + '.' + lookup('role_var', '_web_domain', role='pufferpanel')+ if (lookup('role_var', '_web_subdomain', role='pufferpanel') | length > 0)+ else lookup('role_var', '_web_domain', role='pufferpanel')) }}" ################################ # DNS ################################ -pufferpanel_dns_record: "{{ pufferpanel_web_subdomain }}"-pufferpanel_dns_zone: "{{ pufferpanel_web_domain }}"-pufferpanel_dns_proxy: "{{ dns.proxied }}"+pufferpanel_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='pufferpanel') }}"+pufferpanel_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='pufferpanel') }}"+pufferpanel_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -pufferpanel_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-pufferpanel_traefik_middleware_default: "{{ traefik_default_middleware }}"-pufferpanel_traefik_middleware_custom: ""-pufferpanel_traefik_certresolver: "{{ traefik_default_certresolver }}"-pufferpanel_traefik_enabled: true+pufferpanel_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+pufferpanel_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+pufferpanel_role_traefik_middleware_custom: ""+pufferpanel_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+pufferpanel_role_traefik_enabled: true ################################ # Docker ################################ # Container-pufferpanel_docker_container: "{{ pufferpanel_name }}"+pufferpanel_role_docker_container: "{{ pufferpanel_name }}" # Image-pufferpanel_docker_image_pull: true-pufferpanel_docker_image_tag: "latest"-pufferpanel_docker_image: "pufferpanel/pufferpanel:{{ pufferpanel_docker_image_tag }}"+pufferpanel_role_docker_image_pull: true+pufferpanel_role_docker_image_repo: "pufferpanel/pufferpanel"+pufferpanel_role_docker_image_tag: "latest"+pufferpanel_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='pufferpanel') }}:{{ lookup('role_var', '_docker_image_tag', role='pufferpanel') }}" # Ports-pufferpanel_docker_ports_defaults:+pufferpanel_role_docker_ports_default: - "5657:5657"-pufferpanel_docker_ports_custom: []-pufferpanel_docker_ports: "{{ pufferpanel_docker_ports_defaults- + pufferpanel_docker_ports_custom }}"+pufferpanel_role_docker_ports_custom: []+pufferpanel_role_docker_ports: "{{ lookup('role_var', '_docker_ports_default', role='pufferpanel')+ + lookup('role_var', '_docker_ports_custom', role='pufferpanel') }}" # Envs-pufferpanel_docker_envs_default:+pufferpanel_role_docker_envs_default: TZ: "{{ tz }}"- PUFFER_DAEMON_DATA_SERVERS: "{{ pufferpanel_paths_location }}/servers"-pufferpanel_docker_envs_custom: {}-pufferpanel_docker_envs: "{{ pufferpanel_docker_envs_default- | combine(pufferpanel_docker_envs_custom) }}"--# Commands-pufferpanel_docker_commands_default: []-pufferpanel_docker_commands_custom: []-pufferpanel_docker_commands: "{{ pufferpanel_docker_commands_default- + pufferpanel_docker_commands_custom }}"+ GIN_MODE: "release"+pufferpanel_role_docker_envs_custom: {}+pufferpanel_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='pufferpanel')+ | combine(lookup('role_var', '_docker_envs_custom', role='pufferpanel')) }}" # Volumes-pufferpanel_docker_volumes_default:- - "{{ pufferpanel_paths_location }}/config:/etc/pufferpanel"- - "{{ pufferpanel_paths_location }}/servers:{{ pufferpanel_paths_location }}/servers"+pufferpanel_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='pufferpanel') }}/config:/etc/pufferpanel"+ - "{{ lookup('role_var', '_paths_location', role='pufferpanel') }}/data:/var/lib/pufferpanel"+ - "{{ lookup('role_var', '_paths_location', role='pufferpanel') }}/logs:/var/log/pufferpanel" - "/var/run/docker.sock:/var/run/docker.sock"-pufferpanel_docker_volumes_custom: []-pufferpanel_docker_volumes: "{{ pufferpanel_docker_volumes_default- + pufferpanel_docker_volumes_custom }}"--# Devices-pufferpanel_docker_devices_default: []-pufferpanel_docker_devices_custom: []-pufferpanel_docker_devices: "{{ pufferpanel_docker_devices_default- + pufferpanel_docker_devices_custom }}"--# Hosts-pufferpanel_docker_hosts_default: {}-pufferpanel_docker_hosts_custom: {}-pufferpanel_docker_hosts: "{{ docker_hosts_common- | combine(pufferpanel_docker_hosts_default)- | combine(pufferpanel_docker_hosts_custom) }}"--# Labels-pufferpanel_docker_labels_default: {}-pufferpanel_docker_labels_custom: {}-pufferpanel_docker_labels: "{{ docker_labels_common- | combine(pufferpanel_docker_labels_default)- | combine(pufferpanel_docker_labels_custom) }}"+pufferpanel_role_docker_volumes_custom: []+pufferpanel_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='pufferpanel')+ + lookup('role_var', '_docker_volumes_custom', role='pufferpanel') }}" # Hostname-pufferpanel_docker_hostname: "{{ pufferpanel_name }}"+pufferpanel_role_docker_hostname: "{{ pufferpanel_name }}" # Networks-pufferpanel_docker_networks_alias: "{{ pufferpanel_name }}"-pufferpanel_docker_networks_default: []-pufferpanel_docker_networks_custom: []-pufferpanel_docker_networks: "{{ docker_networks_common- + pufferpanel_docker_networks_default- + pufferpanel_docker_networks_custom }}"--# Capabilities-pufferpanel_docker_capabilities_default: []-pufferpanel_docker_capabilities_custom: []-pufferpanel_docker_capabilities: "{{ pufferpanel_docker_capabilities_default- + pufferpanel_docker_capabilities_custom }}"--# Security Opts-pufferpanel_docker_security_opts_default: []-pufferpanel_docker_security_opts_custom: []-pufferpanel_docker_security_opts: "{{ pufferpanel_docker_security_opts_default- + pufferpanel_docker_security_opts_custom }}"+pufferpanel_role_docker_networks_alias: "{{ pufferpanel_name }}"+pufferpanel_role_docker_networks_default: []+pufferpanel_role_docker_networks_custom: []+pufferpanel_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='pufferpanel')+ + lookup('role_var', '_docker_networks_custom', role='pufferpanel') }}" # Restart Policy-pufferpanel_docker_restart_policy: unless-stopped+pufferpanel_role_docker_restart_policy: unless-stopped # State-pufferpanel_docker_state: started+pufferpanel_role_docker_state: started
modified
roles/pufferpanel/tasks/main.yml
@@ -10,17 +10,37 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" -- name: Check if '{{ pufferpanel_paths_location }}' exists+- name: Check if '{{ lookup('role_var', '_paths_location', role='pufferpanel') }}' exists ansible.builtin.stat:- path: "{{ pufferpanel_paths_location }}"+ path: "{{ lookup('role_var', '_paths_location', role='pufferpanel') }}" register: pufferpanel_config - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"++- name: Check if legacy folder exists+ ansible.builtin.stat:+ path: "{{ lookup('role_var', '_paths_location', role='pufferpanel') }}/servers"+ register: pufferpanel_legacy_folder++- name: Check if new folder exists+ ansible.builtin.stat:+ path: "{{ lookup('role_var', '_paths_location', role='pufferpanel') }}/data"+ register: pufferpanel_data_folder++- name: Migrate pufferpanel directory+ migrate_folder:+ legacy_path: "{{ lookup('role_var', '_paths_location', role='pufferpanel') }}/servers"+ new_path: "{{ lookup('role_var', '_paths_location', role='pufferpanel') }}/data"+ owner: "{{ user.name }}"+ group: "{{ user.name }}"+ mode: '0775'+ recurse: false+ when: pufferpanel_legacy_folder.stat.exists and (not pufferpanel_data_folder.stat.exists) - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"
modified
roles/pyload/defaults/main.yml
@@ -17,128 +17,84 @@ # Paths ################################ -pyload_paths_folder: "{{ pyload_name }}"-pyload_paths_location: "{{ server_appdata_path }}/{{ pyload_paths_folder }}"-pyload_paths_folders_list:- - "{{ pyload_paths_location }}"+pyload_role_paths_folder: "{{ pyload_name }}"+pyload_role_paths_location: "{{ server_appdata_path }}/{{ pyload_role_paths_folder }}"+pyload_role_paths_folders_list:+ - "{{ pyload_role_paths_location }}" ################################ # Web ################################ -pyload_web_subdomain: "{{ pyload_name }}"-pyload_web_domain: "{{ user.domain }}"-pyload_web_port: "8000"-pyload_web_url: "{{ 'https://' + (pyload_web_subdomain + '.' + pyload_web_domain- if (pyload_web_subdomain | length > 0)- else pyload_web_domain) }}"+pyload_role_web_subdomain: "{{ pyload_name }}"+pyload_role_web_domain: "{{ user.domain }}"+pyload_role_web_port: "8000"+pyload_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='pyload') + '.' + lookup('role_var', '_web_domain', role='pyload')+ if (lookup('role_var', '_web_subdomain', role='pyload') | length > 0)+ else lookup('role_var', '_web_domain', role='pyload')) }}" ################################ # DNS ################################ -pyload_dns_record: "{{ pyload_web_subdomain }}"-pyload_dns_zone: "{{ pyload_web_domain }}"-pyload_dns_proxy: "{{ dns.proxied }}"+pyload_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='pyload') }}"+pyload_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='pyload') }}"+pyload_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -pyload_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-pyload_traefik_middleware_default: "{{ traefik_default_middleware }}"-pyload_traefik_middleware_custom: ""-pyload_traefik_certresolver: "{{ traefik_default_certresolver }}"-pyload_traefik_enabled: true-pyload_traefik_api_enabled: false-pyload_traefik_api_endpoint: ""+pyload_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+pyload_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+pyload_role_traefik_middleware_custom: ""+pyload_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+pyload_role_traefik_enabled: true+pyload_role_traefik_api_enabled: false+pyload_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-pyload_docker_container: "{{ pyload_name }}"+pyload_role_docker_container: "{{ pyload_name }}" # Image-pyload_docker_image_pull: true-pyload_docker_image_tag: "latest"-pyload_docker_image: "lscr.io/linuxserver/pyload-ng:{{ pyload_docker_image_tag }}"--# Ports-pyload_docker_ports_defaults: []-pyload_docker_ports_custom: []-pyload_docker_ports: "{{ pyload_docker_ports_defaults- + pyload_docker_ports_custom }}"+pyload_role_docker_image_pull: true+pyload_role_docker_image_repo: "lscr.io/linuxserver/pyload-ng"+pyload_role_docker_image_tag: "latest"+pyload_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='pyload') }}:{{ lookup('role_var', '_docker_image_tag', role='pyload') }}" # Envs-pyload_docker_envs_default:+pyload_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-pyload_docker_envs_custom: {}-pyload_docker_envs: "{{ pyload_docker_envs_default- | combine(pyload_docker_envs_custom) }}"--# Commands-pyload_docker_commands_default: []-pyload_docker_commands_custom: []-pyload_docker_commands: "{{ pyload_docker_commands_default- + pyload_docker_commands_custom }}"+pyload_role_docker_envs_custom: {}+pyload_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='pyload')+ | combine(lookup('role_var', '_docker_envs_custom', role='pyload')) }}" # Volumes-pyload_docker_volumes_default:- - "{{ pyload_paths_location }}:/config"-pyload_docker_volumes_custom: []-pyload_docker_volumes: "{{ pyload_docker_volumes_default- + pyload_docker_volumes_custom }}"--# Devices-pyload_docker_devices_default: []-pyload_docker_devices_custom: []-pyload_docker_devices: "{{ pyload_docker_devices_default- + pyload_docker_devices_custom }}"--# Hosts-pyload_docker_hosts_default: {}-pyload_docker_hosts_custom: {}-pyload_docker_hosts: "{{ docker_hosts_common- | combine(pyload_docker_hosts_default)- | combine(pyload_docker_hosts_custom) }}"--# Labels-pyload_docker_labels_default:- diun.enable: "true"-pyload_docker_labels_custom: {}-pyload_docker_labels: "{{ docker_labels_common- | combine(pyload_docker_labels_default)- | combine(pyload_docker_labels_custom) }}"+pyload_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='pyload') }}:/config"+pyload_role_docker_volumes_custom: []+pyload_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='pyload')+ + lookup('role_var', '_docker_volumes_custom', role='pyload') }}" # Hostname-pyload_docker_hostname: "{{ pyload_name }}"+pyload_role_docker_hostname: "{{ pyload_name }}" # Networks-pyload_docker_networks_alias: "{{ pyload_name }}"-pyload_docker_networks_default: []-pyload_docker_networks_custom: []-pyload_docker_networks: "{{ docker_networks_common- + pyload_docker_networks_default- + pyload_docker_networks_custom }}"--# Capabilities-pyload_docker_capabilities_default: []-pyload_docker_capabilities_custom: []-pyload_docker_capabilities: "{{ pyload_docker_capabilities_default- + pyload_docker_capabilities_custom }}"--# Security Opts-pyload_docker_security_opts_default: []-pyload_docker_security_opts_custom: []-pyload_docker_security_opts: "{{ pyload_docker_security_opts_default- + pyload_docker_security_opts_custom }}"+pyload_role_docker_networks_alias: "{{ pyload_name }}"+pyload_role_docker_networks_default: []+pyload_role_docker_networks_custom: []+pyload_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='pyload')+ + lookup('role_var', '_docker_networks_custom', role='pyload') }}" # Restart Policy-pyload_docker_restart_policy: unless-stopped+pyload_role_docker_restart_policy: unless-stopped # State-pyload_docker_state: started+pyload_role_docker_state: started
modified
roles/pyload/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/python_plexlibrary/tasks/main.yml
@@ -20,12 +20,12 @@ recurse: true mode: "0775" with_items:- - "/opt/python-plexlibrary"+ - "{{ server_appdata_path }}/python-plexlibrary" - name: Clone python-plexlibrary ansible.builtin.git: repo: "https://github.com/adamgot/python-plexlibrary.git"- dest: "/opt/python-plexlibrary"+ dest: "{{ server_appdata_path }}/python-plexlibrary" version: master force: true become: true@@ -51,22 +51,22 @@ - name: Delete venv folder ansible.builtin.file:- path: "/opt/python-plexlibrary/venv"+ path: "{{ server_appdata_path }}/python-plexlibrary/venv" state: absent - name: Create venv ansible.builtin.command:- cmd: "{{ python_plexlibrary_python_install_path }} -m venv /opt/python-plexlibrary/venv"+ cmd: "{{ python_plexlibrary_python_install_path }} -m venv {{ server_appdata_path }}/python-plexlibrary/venv" args:- creates: "/opt/python-plexlibrary/venv"+ creates: "{{ server_appdata_path }}/python-plexlibrary/venv" become: true become_user: "{{ user.name }}" - name: Install pip requirements ansible.builtin.pip:- requirements: "/opt/python-plexlibrary/requirements.txt"- virtualenv: "/opt/python-plexlibrary/venv"- virtualenv_command: "/opt/python-plexlibrary/venv/bin/python3 -m pip"+ requirements: "{{ server_appdata_path }}/python-plexlibrary/requirements.txt"+ virtualenv: "{{ server_appdata_path }}/python-plexlibrary/venv"+ virtualenv_command: "{{ server_appdata_path }}/python-plexlibrary/venv/bin/python3 -m pip" become: true become_user: "{{ user.name }}" @@ -74,8 +74,8 @@ ansible.builtin.pip: name: trakt state: absent- virtualenv: "/opt/python-plexlibrary/venv"- virtualenv_command: "/opt/python-plexlibrary/venv/bin/python3 -m pip"+ virtualenv: "{{ server_appdata_path }}/python-plexlibrary/venv"+ virtualenv_command: "{{ server_appdata_path }}/python-plexlibrary/venv/bin/python3 -m pip" become: true become_user: "{{ user.name }}" @@ -83,14 +83,14 @@ ansible.builtin.pip: name: pytrakt state: present- virtualenv: "/opt/python-plexlibrary/venv"- virtualenv_command: "/opt/python-plexlibrary/venv/bin/python3 -m pip"+ virtualenv: "{{ server_appdata_path }}/python-plexlibrary/venv"+ virtualenv_command: "{{ server_appdata_path }}/python-plexlibrary/venv/bin/python3 -m pip" become: true become_user: "{{ user.name }}" - name: Find pip3 path ansible.builtin.find:- paths: /opt/python-plexlibrary/venv+ paths: "{{ server_appdata_path }}/python-plexlibrary/venv" recurse: true patterns: 'pip3' register: files@@ -101,13 +101,13 @@ - name: Check config exists ansible.builtin.stat:- path: "/opt/python-plexlibrary/config.yml"+ path: "{{ server_appdata_path }}/python-plexlibrary/config.yml" register: python_plexlibrary_config - name: Create config from template ansible.builtin.copy:- src: "/opt/python-plexlibrary/config-template.yml"- dest: "/opt/python-plexlibrary/config.yml"+ src: "{{ server_appdata_path }}/python-plexlibrary/config-template.yml"+ dest: "{{ server_appdata_path }}/python-plexlibrary/config.yml" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"@@ -116,7 +116,7 @@ - name: Add plex url to config file ansible.builtin.shell: |- yyq -i '.plex.baseurl = "{{ plex_web_url }}"' /opt/python-plexlibrary/config.yml+ yyq -i '.plex.baseurl = "{{ lookup('role_var', '_web_url', role='plex') }}"' {{ server_appdata_path }}/python-plexlibrary/config.yml become: true become_user: "{{ user.name }}" @@ -127,15 +127,15 @@ - name: Add plex token to config file ansible.builtin.shell: |- yyq -i '.plex.token = "{{ plex_auth_token }}"' /opt/python-plexlibrary/config.yml+ yyq -i '.plex.token = "{{ plex_auth_token }}"' {{ server_appdata_path }}/python-plexlibrary/config.yml become: true become_user: "{{ user.name }}" when: plex_account_is_enabled -- name: "Copy example recipes to '/opt/python-plexlibrary' folder"+- name: "Copy example recipes to '{{ server_appdata_path }}/python-plexlibrary' folder" ansible.builtin.copy: src: "{{ item }}"- dest: "/opt/python-plexlibrary/recipes/examples/saltbox/"+ dest: "{{ server_appdata_path }}/python-plexlibrary/recipes/examples/saltbox/" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0775"@@ -143,10 +143,10 @@ with_fileglob: - "recipes/*.yml" -- name: "Copy helper scripts to '/opt/python-plexlibrary' folder"+- name: "Copy helper scripts to '{{ server_appdata_path }}/python-plexlibrary' folder" ansible.builtin.template: src: "{{ item }}.j2"- dest: "/opt/python-plexlibrary/{{ item }}"+ dest: "{{ server_appdata_path }}/python-plexlibrary/{{ item }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0775"@@ -157,13 +157,13 @@ - name: "Create '/usr/local/bin' symlink" ansible.builtin.file:- src: "/opt/python-plexlibrary/plexlibrary.sh"+ src: "{{ server_appdata_path }}/python-plexlibrary/plexlibrary.sh" dest: "/usr/local/bin/plexlibrary" state: link - name: "Add items to '.gitignore'" ansible.builtin.lineinfile:- path: "/opt/python-plexlibrary/.gitignore"+ path: "{{ server_appdata_path }}/python-plexlibrary/.gitignore" state: present insertafter: EOF line: '{{ item }}'
modified
roles/python_plexlibrary/templates/plexlibrary-cron-helper.sh.j2
@@ -12,14 +12,14 @@ export PYTHONIOENCODING=UTF-8 PYTHON_PATH='{{ python_plexlibrary_bin_folder }}/python3'-LOG_PATH='/opt/python-plexlibrary/plexlibrary-cron.log'-RECIPES_PATH='/opt/python-plexlibrary/recipes'-SCRIPT_PATH='/opt/python-plexlibrary/plexlibrary/plexlibrary.py'+LOG_PATH='{{ server_appdata_path }}/python-plexlibrary/plexlibrary-cron.log'+RECIPES_PATH='{{ server_appdata_path }}/python-plexlibrary/recipes'+SCRIPT_PATH='{{ server_appdata_path }}/python-plexlibrary/plexlibrary/plexlibrary.py' echo $(date) | tee -a $LOG_PATH echo "" | tee -a $LOG_PATH -cd /opt/python-plexlibrary+cd {{ server_appdata_path }}/python-plexlibrary for file in $RECIPES_PATH/* do
modified
roles/python_plexlibrary/templates/plexlibrary.sh.j2
@@ -12,9 +12,9 @@ export PYTHONIOENCODING=UTF-8 PYTHON_PATH='{{ python_plexlibrary_bin_folder }}/python3'-LOG_PATH='/opt/python-plexlibrary/plexlibrary.log'+LOG_PATH='{{ server_appdata_path }}/python-plexlibrary/plexlibrary.log' echo $(date) | tee -a $LOG_PATH echo "" | tee -a $LOG_PATH -(cd /opt/python-plexlibrary && $PYTHON_PATH plexlibrary "$@")+(cd {{ server_appdata_path }}/python-plexlibrary && $PYTHON_PATH plexlibrary "$@")
modified
roles/qbit_manage/defaults/main.yml
@@ -17,62 +17,63 @@ # Paths ################################ -qbit_manage_paths_folder: "{{ qbit_manage_name }}"-qbit_manage_paths_location: "{{ server_appdata_path }}/{{ qbit_manage_paths_folder }}"-qbit_manage_paths_folders_list:- - "{{ qbit_manage_paths_location }}"+qbit_manage_role_paths_folder: "{{ qbit_manage_name }}"+qbit_manage_role_paths_location: "{{ server_appdata_path }}/{{ qbit_manage_role_paths_folder }}"+qbit_manage_role_paths_folders_list:+ - "{{ qbit_manage_role_paths_location }}" ################################ # Web ################################ -qbit_manage_web_subdomain: "{{ qbit_manage_name }}"-qbit_manage_web_domain: "{{ user.domain }}"-qbit_manage_web_port: "8080"-qbit_manage_web_url: "{{ 'https://' + (qbit_manage_web_subdomain + '.' + qbit_manage_web_domain- if (qbit_manage_web_subdomain | length > 0)- else qbit_manage_web_domain) }}"+qbit_manage_role_web_subdomain: "{{ qbit_manage_name }}"+qbit_manage_role_web_domain: "{{ user.domain }}"+qbit_manage_role_web_port: "8080"+qbit_manage_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='qbit_manage') + '.' + lookup('role_var', '_web_domain', role='qbit_manage')+ if (lookup('role_var', '_web_subdomain', role='qbit_manage') | length > 0)+ else lookup('role_var', '_web_domain', role='qbit_manage')) }}" ################################ # DNS ################################ -qbit_manage_dns_record: "{{ qbit_manage_web_subdomain }}"-qbit_manage_dns_zone: "{{ qbit_manage_web_domain }}"-qbit_manage_dns_proxy: "{{ dns.proxied }}"+qbit_manage_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='qbit_manage') }}"+qbit_manage_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='qbit_manage') }}"+qbit_manage_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -qbit_manage_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-qbit_manage_traefik_middleware_default: "{{ traefik_default_middleware }}"-qbit_manage_traefik_middleware_custom: ""-qbit_manage_traefik_certresolver: "{{ traefik_default_certresolver }}"-qbit_manage_traefik_enabled: true-qbit_manage_traefik_api_enabled: true-qbit_manage_traefik_api_endpoint: "PathPrefix(`/api`)"+qbit_manage_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+qbit_manage_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+qbit_manage_role_traefik_middleware_custom: ""+qbit_manage_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+qbit_manage_role_traefik_enabled: true+qbit_manage_role_traefik_api_enabled: true+qbit_manage_role_traefik_api_endpoint: "PathPrefix(`/api`)" ################################ # Docker ################################ # Container-qbit_manage_docker_container: "{{ qbit_manage_name }}"+qbit_manage_role_docker_container: "{{ qbit_manage_name }}" # Image-qbit_manage_docker_image_pull: true-qbit_manage_docker_image_tag: "release"-qbit_manage_docker_image: "ghcr.io/hotio/qbitmanage:{{ qbit_manage_docker_image_tag }}"+qbit_manage_role_docker_image_pull: true+qbit_manage_role_docker_image_repo: "ghcr.io/hotio/qbitmanage"+qbit_manage_role_docker_image_tag: "release"+qbit_manage_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='qbit_manage') }}:{{ lookup('role_var', '_docker_image_tag', role='qbit_manage') }}" # Ports-qbit_manage_docker_ports_defaults: []-qbit_manage_docker_ports_custom: []-qbit_manage_docker_ports: "{{ qbit_manage_docker_ports_defaults- + qbit_manage_docker_ports_custom }}"+qbit_manage_role_docker_ports_default: []+qbit_manage_role_docker_ports_custom: []+qbit_manage_role_docker_ports: "{{ lookup('role_var', '_docker_ports_default', role='qbit_manage')+ + lookup('role_var', '_docker_ports_custom', role='qbit_manage') }}" # Envs-qbit_manage_docker_envs_default:+qbit_manage_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" UMASK: "002"@@ -96,70 +97,31 @@ QBT_WIDTH: "{{ qbit_manage.qbt_width }}" QBT_DEBUG: "{{ qbit_manage.qbt_debug }}" QBT_TRACE: "{{ qbit_manage.qbt_trace }}"--qbit_manage_docker_envs_custom: {}-qbit_manage_docker_envs: "{{ qbit_manage_docker_envs_default- | combine(qbit_manage_docker_envs_custom) }}"--# Commands-qbit_manage_docker_commands_default: []-qbit_manage_docker_commands_custom: []-qbit_manage_docker_commands: "{{ qbit_manage_docker_commands_default- + qbit_manage_docker_commands_custom }}"+qbit_manage_role_docker_envs_custom: {}+qbit_manage_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='qbit_manage')+ | combine(lookup('role_var', '_docker_envs_custom', role='qbit_manage')) }}" # Volumes-qbit_manage_docker_volumes_default:- - "{{ qbit_manage_paths_location }}:/config"-qbit_manage_docker_volumes_custom: []-qbit_manage_docker_volumes: "{{ qbit_manage_docker_volumes_default- + qbit_manage_docker_volumes_custom }}"--# Devices-qbit_manage_docker_devices_default: []-qbit_manage_docker_devices_custom: []-qbit_manage_docker_devices: "{{ qbit_manage_docker_devices_default- + qbit_manage_docker_devices_custom }}"--# Hosts-qbit_manage_docker_hosts_default: {}-qbit_manage_docker_hosts_custom: {}-qbit_manage_docker_hosts: "{{ docker_hosts_common- | combine(qbit_manage_docker_hosts_default)- | combine(qbit_manage_docker_hosts_custom) }}"--# Labels-qbit_manage_docker_labels_default: {}-qbit_manage_docker_labels_custom: {}-qbit_manage_docker_labels: "{{ docker_labels_common- | combine(qbit_manage_docker_labels_default)- | combine(qbit_manage_docker_labels_custom) }}"+qbit_manage_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='qbit_manage') }}:/config"+qbit_manage_role_docker_volumes_custom: []+qbit_manage_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='qbit_manage')+ + lookup('role_var', '_docker_volumes_custom', role='qbit_manage') }}" # Hostname-qbit_manage_docker_hostname: "{{ qbit_manage_name }}"+qbit_manage_role_docker_hostname: "{{ qbit_manage_name }}" # Networks-qbit_manage_docker_networks_alias: "{{ qbit_manage_name }}"-qbit_manage_docker_networks_default: []-qbit_manage_docker_networks_custom: []-qbit_manage_docker_networks: "{{ docker_networks_common- + qbit_manage_docker_networks_default- + qbit_manage_docker_networks_custom }}"--# Capabilities-qbit_manage_docker_capabilities_default: []-qbit_manage_docker_capabilities_custom: []-qbit_manage_docker_capabilities: "{{ qbit_manage_docker_capabilities_default- + qbit_manage_docker_capabilities_custom }}"--# Security Opts-qbit_manage_docker_security_opts_default: []-qbit_manage_docker_security_opts_custom: []-qbit_manage_docker_security_opts: "{{ qbit_manage_docker_security_opts_default- + qbit_manage_docker_security_opts_custom }}"+qbit_manage_role_docker_networks_alias: "{{ qbit_manage_name }}"+qbit_manage_role_docker_networks_default: []+qbit_manage_role_docker_networks_custom: []+qbit_manage_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='qbit_manage')+ + lookup('role_var', '_docker_networks_custom', role='qbit_manage') }}" # Restart Policy-qbit_manage_docker_restart_policy: on-failure-qbit_manage_docker_restart_retries: 3+qbit_manage_role_docker_restart_policy: on-failure+qbit_manage_role_docker_restart_retries: 3 # State-qbit_manage_docker_state: started+qbit_manage_role_docker_state: started
modified
roles/qbit_manage/tasks/main.yml
@@ -14,18 +14,18 @@ - name: Check if legacy folder exists ansible.builtin.stat:- path: "/opt/qbit_manage"+ path: "{{ server_appdata_path }}/qbit_manage" register: qbit_manage_legacy_folder - name: Check if new folder exists ansible.builtin.stat:- path: "/opt/qbit-manage"+ path: "{{ server_appdata_path }}/qbit-manage" register: qbit_manage_new_folder - name: Migrate qbit-manage directory migrate_folder:- legacy_path: /opt/qbit_manage- new_path: /opt/qbit-manage+ legacy_path: "{{ server_appdata_path }}/qbit_manage"+ new_path: "{{ server_appdata_path }}/qbit-manage" owner: "{{ user.name }}" group: "{{ user.name }}" mode: '0775'@@ -35,9 +35,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_role_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_role_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_role_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/qbittorrentvpn/defaults/main.yml
@@ -25,72 +25,65 @@ # Paths ################################ -qbittorrentvpn_paths_folder: "{{ qbittorrentvpn_name }}"-qbittorrentvpn_paths_location: "{{ server_appdata_path }}/{{ qbittorrentvpn_paths_folder }}"-qbittorrentvpn_paths_downloads_location: "{{ downloads_torrents_path }}/{{ qbittorrentvpn_paths_folder }}"-qbittorrentvpn_paths_conf: "{{ qbittorrentvpn_paths_location }}/qBittorrent/config/qBittorrent.conf"-qbittorrentvpn_paths_folders_list:- - "{{ qbittorrentvpn_paths_location }}"- - "{{ qbittorrentvpn_paths_location }}/wireguard"- - "{{ qbittorrentvpn_paths_downloads_location }}"- - "{{ qbittorrentvpn_paths_downloads_location }}/completed"- - "{{ qbittorrentvpn_paths_downloads_location }}/incoming"- - "{{ qbittorrentvpn_paths_downloads_location }}/watched"- - "{{ qbittorrentvpn_paths_downloads_location }}/torrents"+qbittorrentvpn_role_paths_folder: "{{ qbittorrentvpn_name }}"+qbittorrentvpn_role_paths_location: "{{ server_appdata_path }}/{{ qbittorrentvpn_role_paths_folder }}"+qbittorrentvpn_role_paths_downloads_location: "{{ downloads_torrents_path }}/{{ qbittorrentvpn_role_paths_folder }}"+qbittorrentvpn_role_paths_conf: "{{ qbittorrentvpn_role_paths_location }}/qBittorrent/config/qBittorrent.conf"+qbittorrentvpn_role_paths_folders_list:+ - "{{ qbittorrentvpn_role_paths_location }}"+ - "{{ qbittorrentvpn_role_paths_location }}/wireguard"+ - "{{ qbittorrentvpn_role_paths_downloads_location }}"+ - "{{ qbittorrentvpn_role_paths_downloads_location }}/completed"+ - "{{ qbittorrentvpn_role_paths_downloads_location }}/incoming"+ - "{{ qbittorrentvpn_role_paths_downloads_location }}/watched"+ - "{{ qbittorrentvpn_role_paths_downloads_location }}/torrents" ################################ # Web ################################ -qbittorrentvpn_web_subdomain: "{{ qbittorrentvpn_name }}"-qbittorrentvpn_web_domain: "{{ user.domain }}"-qbittorrentvpn_web_port: "8080"-qbittorrentvpn_web_url: "{{ 'https://' + (lookup('vars', qbittorrentvpn_name + '_web_subdomain', default=qbittorrentvpn_web_subdomain) + '.' + lookup('vars', qbittorrentvpn_name + '_web_domain', default=qbittorrentvpn_web_domain)- if (lookup('vars', qbittorrentvpn_name + '_web_subdomain', default=qbittorrentvpn_web_subdomain) | length > 0)- else lookup('vars', qbittorrentvpn_name + '_web_domain', default=qbittorrentvpn_web_domain)) }}"+qbittorrentvpn_role_web_subdomain: "{{ qbittorrentvpn_name }}"+qbittorrentvpn_role_web_domain: "{{ user.domain }}"+qbittorrentvpn_role_web_port: "8080"+qbittorrentvpn_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='qbittorrentvpn') + '.' + lookup('role_var', '_web_domain', role='qbittorrentvpn')+ if (lookup('role_var', '_web_subdomain', role='qbittorrentvpn') | length > 0)+ else lookup('role_var', '_web_domain', role='qbittorrentvpn')) }}" ################################ # DNS ################################ -qbittorrentvpn_dns_record: "{{ lookup('vars', qbittorrentvpn_name + '_web_subdomain', default=qbittorrentvpn_web_subdomain) }}"-qbittorrentvpn_dns_zone: "{{ lookup('vars', qbittorrentvpn_name + '_web_domain', default=qbittorrentvpn_web_domain) }}"-qbittorrentvpn_dns_proxy: "{{ dns.proxied }}"+qbittorrentvpn_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='qbittorrentvpn') }}"+qbittorrentvpn_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='qbittorrentvpn') }}"+qbittorrentvpn_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -qbittorrentvpn_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-qbittorrentvpn_traefik_middleware_default: "{{ traefik_default_middleware }}"-qbittorrentvpn_traefik_middleware_custom: ""-qbittorrentvpn_traefik_certresolver: "{{ traefik_default_certresolver }}"-qbittorrentvpn_traefik_enabled: true-qbittorrentvpn_traefik_api_enabled: true-qbittorrentvpn_traefik_api_endpoint: "PathPrefix(`/api`) || PathPrefix(`/command`) || PathPrefix(`/query`) || PathPrefix(`/login`) || PathPrefix(`/sync`)"+qbittorrentvpn_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+qbittorrentvpn_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+qbittorrentvpn_role_traefik_middleware_custom: ""+qbittorrentvpn_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+qbittorrentvpn_role_traefik_enabled: true+qbittorrentvpn_role_traefik_api_enabled: true+qbittorrentvpn_role_traefik_api_endpoint: "PathPrefix(`/api`) || PathPrefix(`/command`) || PathPrefix(`/query`) || PathPrefix(`/login`) || PathPrefix(`/sync`)" ################################ # Docker ################################ # Container-qbittorrentvpn_docker_container: "{{ qbittorrentvpn_name }}"+qbittorrentvpn_role_docker_container: "{{ qbittorrentvpn_name }}" # Image-qbittorrentvpn_docker_image_pull: true-qbittorrentvpn_docker_image_repo: "binhex/arch-qbittorrentvpn"-qbittorrentvpn_docker_image_tag: "latest"-qbittorrentvpn_docker_image: "{{ lookup('vars', qbittorrentvpn_name + '_docker_image_repo', default=qbittorrentvpn_docker_image_repo)- + ':' + lookup('vars', qbittorrentvpn_name + '_docker_image_tag', default=qbittorrentvpn_docker_image_tag) }}"--# Ports-qbittorrentvpn_docker_ports_defaults: []-qbittorrentvpn_docker_ports_custom: []-qbittorrentvpn_docker_ports: "{{ lookup('vars', qbittorrentvpn_name + '_docker_ports_defaults', default=qbittorrentvpn_docker_ports_defaults)- + lookup('vars', qbittorrentvpn_name + '_docker_ports_custom', default=qbittorrentvpn_docker_ports_custom) }}"+qbittorrentvpn_role_docker_image_pull: true+qbittorrentvpn_role_docker_image_repo: "binhex/arch-qbittorrentvpn"+qbittorrentvpn_role_docker_image_tag: "latest"+qbittorrentvpn_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='qbittorrentvpn') }}:{{ lookup('role_var', '_docker_image_tag', role='qbittorrentvpn') }}" # Envs-qbittorrentvpn_docker_envs_default:+qbittorrentvpn_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"@@ -104,84 +97,48 @@ ENABLE_PRIVOXY: "no" LAN_NETWORK: "{{ qbittorrentvpn_lan_network }}" NAME_SERVERS: "{{ qbittorrentvpn_name_servers }}"--qbittorrentvpn_docker_envs_custom: {}-qbittorrentvpn_docker_envs: "{{ lookup('vars', qbittorrentvpn_name + '_docker_envs_default', default=qbittorrentvpn_docker_envs_default)- | combine(lookup('vars', qbittorrentvpn_name + '_docker_envs_custom', default=qbittorrentvpn_docker_envs_custom)) }}"--# Commands-qbittorrentvpn_docker_commands_default: []-qbittorrentvpn_docker_commands_custom: []-qbittorrentvpn_docker_commands: "{{ lookup('vars', qbittorrentvpn_name + '_docker_commands_default', default=qbittorrentvpn_docker_commands_default)- + lookup('vars', qbittorrentvpn_name + '_docker_commands_custom', default=qbittorrentvpn_docker_commands_custom) }}"+qbittorrentvpn_role_docker_envs_custom: {}+qbittorrentvpn_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='qbittorrentvpn')+ | combine(lookup('role_var', '_docker_envs_custom', role='qbittorrentvpn')) }}" # Volumes-qbittorrentvpn_docker_volumes_default:- - "{{ qbittorrentvpn_paths_location }}:/config"+qbittorrentvpn_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='qbittorrentvpn') }}:/config" - "{{ server_appdata_path }}/scripts:/scripts"-qbittorrentvpn_docker_volumes_custom: []-qbittorrentvpn_docker_volumes: "{{ lookup('vars', qbittorrentvpn_name + '_docker_volumes_default', default=qbittorrentvpn_docker_volumes_default)- + lookup('vars', qbittorrentvpn_name + '_docker_volumes_custom', default=qbittorrentvpn_docker_volumes_custom) }}"--# Devices-qbittorrentvpn_docker_devices_default: []-qbittorrentvpn_docker_devices_custom: []-qbittorrentvpn_docker_devices: "{{ lookup('vars', qbittorrentvpn_name + '_docker_devices_default', default=qbittorrentvpn_docker_devices_default)- + lookup('vars', qbittorrentvpn_name + '_docker_devices_custom', default=qbittorrentvpn_docker_devices_custom) }}"--# Hosts-qbittorrentvpn_docker_hosts_default: {}-qbittorrentvpn_docker_hosts_custom: {}-qbittorrentvpn_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', qbittorrentvpn_name + '_docker_hosts_default', default=qbittorrentvpn_docker_hosts_default))- | combine(lookup('vars', qbittorrentvpn_name + '_docker_hosts_custom', default=qbittorrentvpn_docker_hosts_custom)) }}"--# Labels-qbittorrentvpn_docker_labels_default: {}-qbittorrentvpn_docker_labels_custom: {}-qbittorrentvpn_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', qbittorrentvpn_name + '_docker_labels_default', default=qbittorrentvpn_docker_labels_default))- | combine(lookup('vars', qbittorrentvpn_name + '_docker_labels_custom', default=qbittorrentvpn_docker_labels_custom)) }}"+qbittorrentvpn_role_docker_volumes_custom: []+qbittorrentvpn_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='qbittorrentvpn')+ + lookup('role_var', '_docker_volumes_custom', role='qbittorrentvpn') }}" # Hostname-qbittorrentvpn_docker_hostname: "{{ qbittorrentvpn_name }}"--# Network Mode-qbittorrentvpn_docker_network_mode_default: "{{ docker_networks_name_common }}"-qbittorrentvpn_docker_network_mode: "{{ lookup('vars', qbittorrentvpn_name + '_docker_network_mode_default', default=qbittorrentvpn_docker_network_mode_default) }}"+qbittorrentvpn_role_docker_hostname: "{{ qbittorrentvpn_name }}" # Networks-qbittorrentvpn_docker_networks_alias: "{{ qbittorrentvpn_name }}"-qbittorrentvpn_docker_networks_default: []-qbittorrentvpn_docker_networks_custom: []-qbittorrentvpn_docker_networks: "{{ docker_networks_common- + lookup('vars', qbittorrentvpn_name + '_docker_networks_default', default=qbittorrentvpn_docker_networks_default)- + lookup('vars', qbittorrentvpn_name + '_docker_networks_custom', default=qbittorrentvpn_docker_networks_custom) }}"+qbittorrentvpn_role_docker_networks_alias: "{{ qbittorrentvpn_name }}"+qbittorrentvpn_role_docker_networks_default: []+qbittorrentvpn_role_docker_networks_custom: []+qbittorrentvpn_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='qbittorrentvpn')+ + lookup('role_var', '_docker_networks_custom', role='qbittorrentvpn') }}" # Capabilities-qbittorrentvpn_docker_capabilities_default:+qbittorrentvpn_role_docker_capabilities_default: - NET_ADMIN-qbittorrentvpn_docker_capabilities_custom: []-qbittorrentvpn_docker_capabilities: "{{ qbittorrentvpn_docker_capabilities_default- + qbittorrentvpn_docker_capabilities_custom }}"+qbittorrentvpn_role_docker_capabilities_custom: []+qbittorrentvpn_role_docker_capabilities: "{{ lookup('role_var', '_docker_capabilities_default', role='qbittorrentvpn')+ + lookup('role_var', '_docker_capabilities_custom', role='qbittorrentvpn') }}" -# Security Opts-qbittorrentvpn_docker_security_opts_default: []-qbittorrentvpn_docker_security_opts_custom: []-qbittorrentvpn_docker_security_opts: "{{ lookup('vars', qbittorrentvpn_name + '_docker_security_opts_default', default=qbittorrentvpn_docker_security_opts_default)- + lookup('vars', qbittorrentvpn_name + '_docker_security_opts_custom', default=qbittorrentvpn_docker_security_opts_custom) }}" # Sysctls-qbittorrentvpn_docker_sysctls:+qbittorrentvpn_role_docker_sysctls: net.ipv4.conf.all.src_valid_mark: "1" # Restart Policy-qbittorrentvpn_docker_restart_policy: unless-stopped+qbittorrentvpn_role_docker_restart_policy: unless-stopped # Stop Timeout-qbittorrentvpn_docker_stop_timeout: 900+qbittorrentvpn_role_docker_stop_timeout: 900 # State-qbittorrentvpn_docker_state: started+qbittorrentvpn_role_docker_state: started # Privileged-qbittorrentvpn_docker_privileged: "yes"+qbittorrentvpn_role_docker_privileged: true
modified
roles/qbittorrentvpn/tasks/main2.yml
@@ -9,9 +9,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -21,12 +21,12 @@ - name: Check if existing config file exists ansible.builtin.stat:- path: "{{ qbittorrentvpn_paths_conf }}"- register: qbittorrentvpn_paths_conf_stat+ path: "{{ lookup('role_var', '_paths_conf', role='qbittorrentvpn') }}"+ register: qbittorrentvpn_role_paths_conf_stat - name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" - name: Post-Install Tasks ansible.builtin.import_tasks: "subtasks/post-install/main.yml"- when: (not continuous_integration) and (not qbittorrentvpn_paths_conf_stat.stat.exists)+ when: (not continuous_integration) and (not qbittorrentvpn_role_paths_conf_stat.stat.exists)
modified
roles/qbittorrentvpn/tasks/subtasks/post-install/main.yml
@@ -9,30 +9,18 @@ --- - name: Post-Install | Wait for config to be created ansible.builtin.wait_for:- path: "{{ qbittorrentvpn_paths_conf }}"+ path: "{{ lookup('role_var', '_paths_conf', role='qbittorrentvpn') }}" state: present - name: Post-Install | Wait for 10 seconds ansible.builtin.wait_for: timeout: 10 -- name: Post-Install | Stop container- community.docker.docker_container:- name: "{{ qbittorrentvpn_docker_container }}"- container_default_behavior: compatibility- tls_hostname: localhost- state: stopped- comparisons:- '*': ignore+- name: Post-Install | Stop Docker container+ ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/stop_docker_container.yml" - name: Post-Install | Settings Task ansible.builtin.import_tasks: "settings/main.yml" -- name: Post-Install | Start container # noqa args[module]- community.docker.docker_container:- name: "{{ qbittorrentvpn_docker_container }}"- container_default_behavior: compatibility- tls_hostname: localhost- state: "{{ qbittorrentvpn_docker_state }}"- comparisons:- '*': ignore+- name: Post-Install | Start Docker container+ ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/start_docker_container.yml"
modified
roles/qbittorrentvpn/tasks/subtasks/post-install/settings/main.yml
@@ -9,7 +9,7 @@ --- - name: Post-Install | Settings | Update HostHeaderValidation 'qbittorrentvpn.conf' config settings community.general.ini_file:- path: "{{ qbittorrentvpn_paths_conf }}"+ path: "{{ lookup('role_var', '_paths_conf', role='qbittorrentvpn') }}" section: Preferences option: WebUI\HostHeaderValidation value: "false"@@ -21,7 +21,7 @@ - name: Post-Install | Settings | Update CSRFProtection 'qbittorrentvpn.conf' config settings community.general.ini_file:- path: "{{ qbittorrentvpn_paths_conf }}"+ path: "{{ lookup('role_var', '_paths_conf', role='qbittorrentvpn') }}" section: Preferences option: WebUI\CSRFProtection value: "false"@@ -41,7 +41,7 @@ section: Preferences option: WebUI\Username value: '{{ user.name }}'- path: "{{ qbittorrentvpn_paths_conf }}"+ path: "{{ lookup('role_var', '_paths_conf', role='qbittorrentvpn') }}" state: present owner: "{{ user.name }}" group: "{{ user.name }}"@@ -52,7 +52,7 @@ section: Preferences option: WebUI\Password_PBKDF2 value: '{{ qbittorrent_hashed_passwd.msg }}'- path: "{{ qbittorrentvpn_paths_conf }}"+ path: "{{ lookup('role_var', '_paths_conf', role='qbittorrentvpn') }}" state: present owner: "{{ user.name }}" group: "{{ user.name }}"
modified
roles/qui/defaults/main.yml
@@ -17,129 +17,92 @@ # Paths ################################ -qui_paths_folder: "{{ qui_name }}"-qui_paths_location: "{{ server_appdata_path }}/{{ qui_paths_folder }}"-qui_paths_folders_list:- - "{{ qui_paths_location }}"+qui_role_paths_folder: "{{ qui_name }}"+qui_role_paths_location: "{{ server_appdata_path }}/{{ qui_role_paths_folder }}"+qui_role_paths_folders_list:+ - "{{ qui_role_paths_location }}" ################################ # Web ################################ -qui_web_subdomain: "{{ qui_name }}"-qui_web_domain: "{{ user.domain }}"-qui_web_port: "7476"-qui_web_url: "{{ 'https://' + (lookup('vars', qui_name + '_web_subdomain', default=qui_web_subdomain) + '.' + lookup('vars', qui_name + '_web_domain', default=qui_web_domain)- if (lookup('vars', qui_name + '_web_subdomain', default=qui_web_subdomain) | length > 0)- else lookup('vars', qui_name + '_web_domain', default=qui_web_domain)) }}"+qui_role_web_subdomain: "{{ qui_name }}"+qui_role_web_domain: "{{ user.domain }}"+qui_role_web_port: "7476"+qui_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='qui') + '.' + lookup('role_var', '_web_domain', role='qui')+ if (lookup('role_var', '_web_subdomain', role='qui') | length > 0)+ else lookup('role_var', '_web_domain', role='qui')) }}" ################################ # DNS ################################ -qui_dns_record: "{{ lookup('vars', qui_name + '_web_subdomain', default=qui_web_subdomain) }}"-qui_dns_zone: "{{ lookup('vars', qui_name + '_web_domain', default=qui_web_domain) }}"-qui_dns_proxy: "{{ dns.proxied }}"+qui_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='qui') }}"+qui_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='qui') }}"+qui_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -qui_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-qui_traefik_middleware_default: "{{ traefik_default_middleware }}"-qui_traefik_middleware_custom: ""-qui_traefik_certresolver: "{{ traefik_default_certresolver }}"-qui_traefik_enabled: true-qui_traefik_api_enabled: true-qui_traefik_api_endpoint: "PathPrefix(`/proxy`)"+qui_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+qui_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+qui_role_traefik_middleware_custom: ""+qui_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+qui_role_traefik_enabled: true+qui_role_traefik_api_enabled: true+qui_role_traefik_api_endpoint: "PathPrefix(`/proxy`)" ################################ # Docker ################################ # Container-qui_docker_container: "{{ qui_name }}"+qui_role_docker_container: "{{ qui_name }}" # Image-qui_docker_image_pull: true-qui_docker_image_repo: "ghcr.io/autobrr/qui"-qui_docker_image_tag: "latest"-qui_docker_image: "{{ lookup('vars', qui_name + '_docker_image_repo', default=qui_docker_image_repo) }}:{{ lookup('vars', qui_name + '_docker_image_tag', default=qui_docker_image_tag) }}"--# Ports-qui_docker_ports_defaults: []-qui_docker_ports_custom: []-qui_docker_ports: "{{ lookup('vars', qui_name + '_docker_ports_defaults', default=qui_docker_ports_defaults)- + lookup('vars', qui_name + '_docker_ports_custom', default=qui_docker_ports_custom) }}"+qui_role_docker_image_pull: true+qui_role_docker_image_repo: "ghcr.io/autobrr/qui"+qui_role_docker_image_tag: "latest"+qui_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='qui') }}:{{ lookup('role_var', '_docker_image_tag', role='qui') }}" # Envs-qui_docker_envs_default:+qui_role_docker_envs_default: TZ: "{{ tz }}"-qui_docker_envs_custom: {}-qui_docker_envs: "{{ lookup('vars', qui_name + '_docker_envs_default', default=qui_docker_envs_default)- | combine(lookup('vars', qui_name + '_docker_envs_custom', default=qui_docker_envs_custom)) }}"--# Commands-qui_docker_commands_default: []-qui_docker_commands_custom: []-qui_docker_commands: "{{ lookup('vars', qui_name + '_docker_commands_default', default=qui_docker_commands_default)- + lookup('vars', qui_name + '_docker_commands_custom', default=qui_docker_commands_custom) }}"+qui_role_docker_envs_custom: {}+qui_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='qui')+ | combine(lookup('role_var', '_docker_envs_custom', role='qui')) }}" # Volumes-qui_docker_volumes_default:- - "{{ qui_paths_location }}:/config"-qui_docker_volumes_custom: []-qui_docker_volumes: "{{ lookup('vars', qui_name + '_docker_volumes_default', default=qui_docker_volumes_default)- + lookup('vars', qui_name + '_docker_volumes_custom', default=qui_docker_volumes_custom) }}"--# Devices-qui_docker_devices_default: []-qui_docker_devices_custom: []-qui_docker_devices: "{{ lookup('vars', qui_name + '_docker_devices_default', default=qui_docker_devices_default)- + lookup('vars', qui_name + '_docker_devices_custom', default=qui_docker_devices_custom) }}"+qui_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='qui') }}:/config"+qui_role_docker_volumes_custom: []+qui_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='qui')+ + lookup('role_var', '_docker_volumes_custom', role='qui') }}" # Hosts-qui_docker_hosts_default: {}-qui_docker_hosts_custom: {}-qui_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', qui_name + '_docker_hosts_default', default=qui_docker_hosts_default))- | combine(lookup('vars', qui_name + '_docker_hosts_custom', default=qui_docker_hosts_custom)) }}"--# Labels-qui_docker_labels_default: {}-qui_docker_labels_custom: {}-qui_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', qui_name + '_docker_labels_default', default=qui_docker_labels_default))- | combine(lookup('vars', qui_name + '_docker_labels_custom', default=qui_docker_labels_custom)) }}"+qui_role_docker_hosts_default: {}+qui_role_docker_hosts_custom: {}+qui_role_docker_hosts: "{{ docker_hosts_common+ | combine(lookup('role_var', '_docker_hosts_default', role='qui'))+ | combine(lookup('role_var', '_docker_hosts_custom', role='qui')) }}" # Hostname-qui_docker_hostname: "{{ qui_name }}"+qui_role_docker_hostname: "{{ qui_name }}" # Networks-qui_docker_networks_alias: "{{ qui_name }}"-qui_docker_networks_default: []-qui_docker_networks_custom: []-qui_docker_networks: "{{ docker_networks_common- + lookup('vars', qui_name + '_docker_networks_default', default=qui_docker_networks_default)- + lookup('vars', qui_name + '_docker_networks_custom', default=qui_docker_networks_custom) }}"--# Capabilities-qui_docker_capabilities_default: []-qui_docker_capabilities_custom: []-qui_docker_capabilities: "{{ lookup('vars', qui_name + '_docker_capabilities_default', default=qui_docker_capabilities_default)- + lookup('vars', qui_name + '_docker_capabilities_custom', default=qui_docker_capabilities_custom) }}"--# Security Opts-qui_docker_security_opts_default: []-qui_docker_security_opts_custom: []-qui_docker_security_opts: "{{ lookup('vars', qui_name + '_docker_security_opts_default', default=qui_docker_security_opts_default)- + lookup('vars', qui_name + '_docker_security_opts_custom', default=qui_docker_security_opts_custom) }}"+qui_role_docker_networks_alias: "{{ qui_name }}"+qui_role_docker_networks_default: []+qui_role_docker_networks_custom: []+qui_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='qui')+ + lookup('role_var', '_docker_networks_custom', role='qui') }}" # Restart Policy-qui_docker_restart_policy: unless-stopped+qui_role_docker_restart_policy: unless-stopped # State-qui_docker_state: started+qui_role_docker_state: started # User-qui_docker_user: "{{ uid }}:{{ gid }}"+qui_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/qui/tasks/main2.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/recyclarr/defaults/main.yml
@@ -14,104 +14,65 @@ recyclarr_name: recyclarr ################################+# Settings+################################++recyclarr_role_cron_schedule: "@daily"++################################ # Paths ################################ -recyclarr_paths_folder: "{{ recyclarr_name }}"-recyclarr_paths_location: "{{ server_appdata_path }}/{{ recyclarr_paths_folder }}"-recyclarr_paths_folders_list:- - "{{ recyclarr_paths_location }}"- - "{{ recyclarr_paths_location }}/configs"-recyclarr_config_location: "{{ recyclarr_paths_location }}/recyclarr.yml"+recyclarr_role_paths_folder: "{{ recyclarr_name }}"+recyclarr_role_paths_location: "{{ server_appdata_path }}/{{ recyclarr_role_paths_folder }}"+recyclarr_role_paths_folders_list:+ - "{{ recyclarr_role_paths_location }}" ################################ # Docker ################################ # Container-recyclarr_docker_container: "{{ recyclarr_name }}"+recyclarr_role_docker_container: "{{ recyclarr_name }}" # Image-recyclarr_docker_image_pull: true-recyclarr_docker_image_tag: "latest"-recyclarr_docker_image: "ghcr.io/recyclarr/recyclarr:{{ recyclarr_docker_image_tag }}"--# Ports-recyclarr_docker_ports_defaults: []-recyclarr_docker_ports_custom: []-recyclarr_docker_ports: "{{ recyclarr_docker_ports_defaults- + recyclarr_docker_ports_custom }}"+recyclarr_role_docker_image_pull: true+recyclarr_role_docker_image_repo: "ghcr.io/recyclarr/recyclarr"+recyclarr_role_docker_image_tag: "latest"+recyclarr_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='recyclarr') }}:{{ lookup('role_var', '_docker_image_tag', role='recyclarr') }}" # Envs-recyclarr_docker_envs_default:+recyclarr_role_docker_envs_default: TZ: "{{ tz }}"- CRON_SCHEDULE: "{{ recyclarr.cron_schedule }}"+ CRON_SCHEDULE: "{{ lookup('role_var', '_cron_schedule', role='recyclarr') }}" RECYCLARR_CREATE_CONFIG: "true"-recyclarr_docker_envs_custom: {}-recyclarr_docker_envs: "{{ recyclarr_docker_envs_default- | combine(recyclarr_docker_envs_custom) }}"--# Commands-recyclarr_docker_commands_default: []-recyclarr_docker_commands_custom: []-recyclarr_docker_commands: "{{ recyclarr_docker_commands_default- + recyclarr_docker_commands_custom }}"+recyclarr_role_docker_envs_custom: {}+recyclarr_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='recyclarr')+ | combine(lookup('role_var', '_docker_envs_custom', role='recyclarr')) }}" # Volumes-recyclarr_docker_volumes_default:- - "{{ recyclarr_paths_location }}:/config"-recyclarr_docker_volumes_custom: []-recyclarr_docker_volumes: "{{ recyclarr_docker_volumes_default- + recyclarr_docker_volumes_custom }}"--# Devices-recyclarr_docker_devices_default: []-recyclarr_docker_devices_custom: []-recyclarr_docker_devices: "{{ recyclarr_docker_devices_default- + recyclarr_docker_devices_custom }}"--# Hosts-recyclarr_docker_hosts_default: {}-recyclarr_docker_hosts_custom: {}-recyclarr_docker_hosts: "{{ docker_hosts_common- | combine(recyclarr_docker_hosts_default)- | combine(recyclarr_docker_hosts_custom) }}"--# Labels-recyclarr_docker_labels_default: {}-recyclarr_docker_labels_custom: {}-recyclarr_docker_labels: "{{ docker_labels_common- | combine(recyclarr_docker_labels_default)- | combine(recyclarr_docker_labels_custom) }}"+recyclarr_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='recyclarr') }}:/config"+recyclarr_role_docker_volumes_custom: []+recyclarr_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='recyclarr')+ + lookup('role_var', '_docker_volumes_custom', role='recyclarr') }}" # Hostname-recyclarr_docker_hostname: "{{ recyclarr_name }}"+recyclarr_role_docker_hostname: "{{ recyclarr_name }}" # Networks-recyclarr_docker_networks_alias: "{{ recyclarr_name }}"-recyclarr_docker_networks_default: []-recyclarr_docker_networks_custom: []-recyclarr_docker_networks: "{{ docker_networks_common- + recyclarr_docker_networks_default- + recyclarr_docker_networks_custom }}"--# Capabilities-recyclarr_docker_capabilities_default: []-recyclarr_docker_capabilities_custom: []-recyclarr_docker_capabilities: "{{ recyclarr_docker_capabilities_default- + recyclarr_docker_capabilities_custom }}"--# Security Opts-recyclarr_docker_security_opts_default: []-recyclarr_docker_security_opts_custom: []-recyclarr_docker_security_opts: "{{ recyclarr_docker_security_opts_default- + recyclarr_docker_security_opts_custom }}"+recyclarr_role_docker_networks_alias: "{{ recyclarr_name }}"+recyclarr_role_docker_networks_default: []+recyclarr_role_docker_networks_custom: []+recyclarr_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='recyclarr')+ + lookup('role_var', '_docker_networks_custom', role='recyclarr') }}" # Restart Policy-recyclarr_docker_restart_policy: unless-stopped+recyclarr_role_docker_restart_policy: unless-stopped # State-recyclarr_docker_state: started+recyclarr_role_docker_state: started # User-recyclarr_docker_user: "{{ uid }}:{{ gid }}"+recyclarr_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/reposilite/defaults/main.yml
@@ -18,128 +18,85 @@ # Paths ################################ -reposilite_paths_folder: "{{ reposilite_name }}"-reposilite_paths_location: "{{ server_appdata_path }}/{{ reposilite_paths_folder }}"-reposilite_paths_folders_list:- - "{{ reposilite_paths_location }}"+reposilite_role_paths_folder: "{{ reposilite_name }}"+reposilite_role_paths_location: "{{ server_appdata_path }}/{{ reposilite_role_paths_folder }}"+reposilite_role_paths_folders_list:+ - "{{ reposilite_role_paths_location }}" ################################ # Web ################################ -reposilite_web_subdomain: "{{ reposilite_name }}"-reposilite_web_domain: "{{ user.domain }}"-reposilite_web_port: "8080"-respoilite_web_url: "{{ 'https://' + (respoilite_web_subdomain + '.' + respoilite_web_domain- if (respoilite_web_subdomain | length > 0)- else respoilite_web_domain) }}"+reposilite_role_web_subdomain: "{{ reposilite_name }}"+reposilite_role_web_domain: "{{ user.domain }}"+reposilite_role_web_port: "8080"+reposilite_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='reposilite') + '.' + lookup('role_var', '_web_domain', role='reposilite')+ if (lookup('role_var', '_web_subdomain', role='reposilite') | length > 0)+ else lookup('role_var', '_web_domain', role='reposilite')) }}" ################################ # DNS ################################ -reposilite_dns_record: "{{ reposilite_web_subdomain }}"-reposilite_dns_zone: "{{ reposilite_web_domain }}"-reposilite_dns_proxy: "{{ dns.proxied }}"+reposilite_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='reposilite') }}"+reposilite_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='reposilite') }}"+reposilite_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -reposilite_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-reposilite_traefik_middleware_default: "{{ traefik_default_middleware }}"-reposilite_traefik_middleware_custom: ""-reposilite_traefik_certresolver: "{{ traefik_default_certresolver }}"-reposilite_traefik_enabled: true-reposilite_traefik_api_enabled: true-reposilite_traefik_api_endpoint: "PathPrefix(`/api`)"+reposilite_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+reposilite_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+reposilite_role_traefik_middleware_custom: ""+reposilite_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+reposilite_role_traefik_enabled: true+reposilite_role_traefik_api_enabled: true+reposilite_role_traefik_api_endpoint: "PathPrefix(`/api`)" ################################ # Docker ################################ # Container-reposilite_docker_container: "{{ reposilite_name }}"+reposilite_role_docker_container: "{{ reposilite_name }}" # Image-reposilite_docker_image_pull: true-reposilite_docker_image_tag: "latest"-reposilite_docker_image: "ghcr.io/dzikoysk/reposilite:{{ reposilite_docker_image_tag }}"--# Ports-reposilite_docker_ports_defaults: []-reposilite_docker_ports_custom: []-reposilite_docker_ports: "{{ reposilite_docker_ports_defaults- + reposilite_docker_ports_custom }}"+reposilite_role_docker_image_pull: true+reposilite_role_docker_image_repo: "ghcr.io/dzikoysk/reposilite"+reposilite_role_docker_image_tag: "latest"+reposilite_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='reposilite') }}:{{ lookup('role_var', '_docker_image_tag', role='reposilite') }}" # Envs-reposilite_docker_envs_default:+reposilite_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}" REPOSILITE_OPTS: "--token {{ user.name }}:{{ user.pass }}"-reposilite_docker_envs_custom: {}-reposilite_docker_envs: "{{ reposilite_docker_envs_default- | combine(reposilite_docker_envs_custom) }}"--# Commands-reposilite_docker_commands_default: []-reposilite_docker_commands_custom: []-reposilite_docker_commands: "{{ reposilite_docker_commands_default- + reposilite_docker_commands_custom }}"+reposilite_role_docker_envs_custom: {}+reposilite_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='reposilite')+ | combine(lookup('role_var', '_docker_envs_custom', role='reposilite')) }}" # Volumes-reposilite_docker_volumes_default:- - "{{ reposilite_paths_location }}:/app/data"-reposilite_docker_volumes_custom: []-reposilite_docker_volumes: "{{ reposilite_docker_volumes_default- + reposilite_docker_volumes_custom }}"--# Devices-reposilite_docker_devices_default: []-reposilite_docker_devices_custom: []-reposilite_docker_devices: "{{ reposilite_docker_devices_default- + reposilite_docker_devices_custom }}"--# Hosts-reposilite_docker_hosts_default: {}-reposilite_docker_hosts_custom: {}-reposilite_docker_hosts: "{{ docker_hosts_common- | combine(reposilite_docker_hosts_default)- | combine(reposilite_docker_hosts_custom) }}"--# Labels-reposilite_docker_labels_default: {}-reposilite_docker_labels_custom: {}-reposilite_docker_labels: "{{ docker_labels_common- | combine(reposilite_docker_labels_default)- | combine(reposilite_docker_labels_custom) }}"+reposilite_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='reposilite') }}:/app/data"+reposilite_role_docker_volumes_custom: []+reposilite_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='reposilite')+ + lookup('role_var', '_docker_volumes_custom', role='reposilite') }}" # Hostname-reposilite_docker_hostname: "{{ reposilite_name }}"+reposilite_role_docker_hostname: "{{ reposilite_name }}" # Networks-reposilite_docker_networks_alias: "{{ reposilite_name }}"-reposilite_docker_networks_default: []-reposilite_docker_networks_custom: []-reposilite_docker_networks: "{{ docker_networks_common- + reposilite_docker_networks_default- + reposilite_docker_networks_custom }}"--# Capabilities-reposilite_docker_capabilities_default: []-reposilite_docker_capabilities_custom: []-reposilite_docker_capabilities: "{{ reposilite_docker_capabilities_default- + reposilite_docker_capabilities_custom }}"--# Security Opts-reposilite_docker_security_opts_default: []-reposilite_docker_security_opts_custom: []-reposilite_docker_security_opts: "{{ reposilite_docker_security_opts_default- + reposilite_docker_security_opts_custom }}"+reposilite_role_docker_networks_alias: "{{ reposilite_name }}"+reposilite_role_docker_networks_default: []+reposilite_role_docker_networks_custom: []+reposilite_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='reposilite')+ + lookup('role_var', '_docker_networks_custom', role='reposilite') }}" # Restart Policy-reposilite_docker_restart_policy: unless-stopped+reposilite_role_docker_restart_policy: unless-stopped # State-reposilite_docker_state: started+reposilite_role_docker_state: started
modified
roles/reposilite/tasks/main.yml
@@ -11,9 +11,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/requestrr/defaults/main.yml
@@ -17,129 +17,85 @@ # Paths ################################ -requestrr_paths_folder: "{{ requestrr_name }}"-requestrr_paths_location: "{{ server_appdata_path }}/{{ requestrr_paths_folder }}"-requestrr_paths_folders_list:- - "{{ requestrr_paths_location }}"+requestrr_role_paths_folder: "{{ requestrr_name }}"+requestrr_role_paths_location: "{{ server_appdata_path }}/{{ requestrr_role_paths_folder }}"+requestrr_role_paths_folders_list:+ - "{{ requestrr_role_paths_location }}" ################################ # Web ################################ -requestrr_web_subdomain: "{{ requestrr_name }}"-requestrr_web_domain: "{{ user.domain }}"-requestrr_web_port: "4545"-requestrr_web_url: "{{ 'https://' + lookup('vars', requestrr_name + '_web_subdomain', default=requestrr_web_subdomain)- + '.' + lookup('vars', requestrr_name + '_web_domain', default=requestrr_web_domain) }}"+requestrr_role_web_subdomain: "{{ requestrr_name }}"+requestrr_role_web_domain: "{{ user.domain }}"+requestrr_role_web_port: "4545"+requestrr_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='requestrr') + '.' + lookup('role_var', '_web_domain', role='requestrr')+ if (lookup('role_var', '_web_subdomain', role='requestrr') | length > 0)+ else lookup('role_var', '_web_domain', role='requestrr')) }}" ################################ # DNS ################################ -requestrr_dns_record: "{{ lookup('vars', requestrr_name + '_web_subdomain', default=requestrr_web_subdomain) }}"-requestrr_dns_zone: "{{ lookup('vars', requestrr_name + '_web_domain', default=requestrr_web_domain) }}"-requestrr_dns_proxy: "{{ dns.proxied }}"+requestrr_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='requestrr') }}"+requestrr_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='requestrr') }}"+requestrr_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -requestrr_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-requestrr_traefik_middleware_default: "{{ traefik_default_middleware }}"-requestrr_traefik_middleware_custom: ""-requestrr_traefik_certresolver: "{{ traefik_default_certresolver }}"-requestrr_traefik_enabled: true-requestrr_traefik_api_enabled: false-requestrr_traefik_api_endpoint: ""+requestrr_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+requestrr_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+requestrr_role_traefik_middleware_custom: ""+requestrr_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+requestrr_role_traefik_enabled: true+requestrr_role_traefik_api_enabled: false+requestrr_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-requestrr_docker_container: "{{ requestrr_name }}"+requestrr_role_docker_container: "{{ requestrr_name }}" # Image-requestrr_docker_image_pull: true-requestrr_docker_image_repo: "thomst08/requestrr"-requestrr_docker_image_tag: "latest"-requestrr_docker_image: "{{ lookup('vars', requestrr_name + '_docker_image_repo', default=requestrr_docker_image_repo)- + ':' + lookup('vars', requestrr_name + '_docker_image_tag', default=requestrr_docker_image_tag) }}"--# Ports-requestrr_docker_ports_defaults: []-requestrr_docker_ports_custom: []-requestrr_docker_ports: "{{ lookup('vars', requestrr_name + '_docker_ports_defaults', default=requestrr_docker_ports_defaults)- + lookup('vars', requestrr_name + '_docker_ports_custom', default=requestrr_docker_ports_custom) }}"+requestrr_role_docker_image_pull: true+requestrr_role_docker_image_repo: "thomst08/requestrr"+requestrr_role_docker_image_tag: "latest"+requestrr_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='requestrr') }}:{{ lookup('role_var', '_docker_image_tag', role='requestrr') }}" # Envs-requestrr_docker_envs_default:+requestrr_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}" UMASK: "002"-requestrr_docker_envs_custom: {}-requestrr_docker_envs: "{{ lookup('vars', requestrr_name + '_docker_envs_default', default=requestrr_docker_envs_default)- | combine(lookup('vars', requestrr_name + '_docker_envs_custom', default=requestrr_docker_envs_custom)) }}"--# Commands-requestrr_docker_commands_default: []-requestrr_docker_commands_custom: []-requestrr_docker_commands: "{{ lookup('vars', requestrr_name + '_docker_commands_default', default=requestrr_docker_commands_default)- + lookup('vars', requestrr_name + '_docker_commands_custom', default=requestrr_docker_commands_custom) }}"+requestrr_role_docker_envs_custom: {}+requestrr_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='requestrr')+ | combine(lookup('role_var', '_docker_envs_custom', role='requestrr')) }}" # Volumes-requestrr_docker_volumes_default:- - "{{ requestrr_paths_location }}:/root/config"-requestrr_docker_volumes_custom: []-requestrr_docker_volumes: "{{ lookup('vars', requestrr_name + '_docker_volumes_default', default=requestrr_docker_volumes_default)- + lookup('vars', requestrr_name + '_docker_volumes_custom', default=requestrr_docker_volumes_custom) }}"--# Devices-requestrr_docker_devices_default: []-requestrr_docker_devices_custom: []-requestrr_docker_devices: "{{ lookup('vars', requestrr_name + '_docker_devices_default', default=requestrr_docker_devices_default)- + lookup('vars', requestrr_name + '_docker_devices_custom', default=requestrr_docker_devices_custom) }}"--# Hosts-requestrr_docker_hosts_default: {}-requestrr_docker_hosts_custom: {}-requestrr_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', requestrr_name + '_docker_hosts_default', default=requestrr_docker_hosts_default))- | combine(lookup('vars', requestrr_name + '_docker_hosts_custom', default=requestrr_docker_hosts_custom)) }}"--# Labels-requestrr_docker_labels_default: {}-requestrr_docker_labels_custom: {}-requestrr_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', requestrr_name + '_docker_labels_default', default=requestrr_docker_labels_default))- | combine(lookup('vars', requestrr_name + '_docker_labels_custom', default=requestrr_docker_labels_custom)) }}"+requestrr_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='requestrr') }}:/root/config"+requestrr_role_docker_volumes_custom: []+requestrr_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='requestrr')+ + lookup('role_var', '_docker_volumes_custom', role='requestrr') }}" # Hostname-requestrr_docker_hostname: "{{ requestrr_name }}"+requestrr_role_docker_hostname: "{{ requestrr_name }}" # Networks-requestrr_docker_networks_alias: "{{ requestrr_name }}"-requestrr_docker_networks_default: []-requestrr_docker_networks_custom: []-requestrr_docker_networks: "{{ docker_networks_common- + lookup('vars', requestrr_name + '_docker_networks_default', default=requestrr_docker_networks_default)- + lookup('vars', requestrr_name + '_docker_networks_custom', default=requestrr_docker_networks_custom) }}"--# Capabilities-requestrr_docker_capabilities_default: []-requestrr_docker_capabilities_custom: []-requestrr_docker_capabilities: "{{ lookup('vars', requestrr_name + '_docker_capabilities_default', default=requestrr_docker_capabilities_default)- + lookup('vars', requestrr_name + '_docker_capabilities_custom', default=requestrr_docker_capabilities_custom) }}"--# Security Opts-requestrr_docker_security_opts_default: []-requestrr_docker_security_opts_custom: []-requestrr_docker_security_opts: "{{ lookup('vars', requestrr_name + '_docker_security_opts_default', default=requestrr_docker_security_opts_default)- + lookup('vars', requestrr_name + '_docker_security_opts_custom', default=requestrr_docker_security_opts_custom) }}"+requestrr_role_docker_networks_alias: "{{ requestrr_name }}"+requestrr_role_docker_networks_default: []+requestrr_role_docker_networks_custom: []+requestrr_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='requestrr')+ + lookup('role_var', '_docker_networks_custom', role='requestrr') }}" # Restart Policy-requestrr_docker_restart_policy: unless-stopped+requestrr_role_docker_restart_policy: unless-stopped # State-requestrr_docker_state: started+requestrr_role_docker_state: started
modified
roles/requestrr/tasks/main2.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/resiliosync/defaults/main.yml
@@ -12,136 +12,99 @@ ################################ resiliosync_name: resiliosync-resiliosync_data_port: "55555"++################################+# Settings+################################++resiliosync_role_data_port: "55555" ################################ # Paths ################################ -resiliosync_paths_folder: "{{ resiliosync_name }}"-resiliosync_paths_location: "{{ server_appdata_path }}/{{ resiliosync_paths_folder }}"-resiliosync_paths_folders_list:- - "{{ resiliosync_paths_location }}"+resiliosync_role_paths_folder: "{{ resiliosync_name }}"+resiliosync_role_paths_location: "{{ server_appdata_path }}/{{ resiliosync_role_paths_folder }}"+resiliosync_role_paths_folders_list:+ - "{{ resiliosync_role_paths_location }}" ################################ # Web ################################ -resiliosync_web_subdomain: "{{ resiliosync_name }}"-resiliosync_web_domain: "{{ user.domain }}"-resiliosync_web_port: "8888"-resiliosync_web_url: "{{ 'https://' + (resiliosync_web_subdomain + '.' + resiliosync_web_domain- if (resiliosync_web_subdomain | length > 0)- else resiliosync_web_domain) }}"+resiliosync_role_web_subdomain: "{{ resiliosync_name }}"+resiliosync_role_web_domain: "{{ user.domain }}"+resiliosync_role_web_port: "8888"+resiliosync_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='resiliosync') + '.' + lookup('role_var', '_web_domain', role='resiliosync')+ if (lookup('role_var', '_web_subdomain', role='resiliosync') | length > 0)+ else lookup('role_var', '_web_domain', role='resiliosync')) }}" ################################ # DNS ################################ -resiliosync_dns_record: "{{ resiliosync_web_subdomain }}"-resiliosync_dns_zone: "{{ resiliosync_web_domain }}"-resiliosync_dns_proxy: "{{ dns.proxied }}"+resiliosync_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='resiliosync') }}"+resiliosync_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='resiliosync') }}"+resiliosync_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -resiliosync_traefik_sso_middleware: ""-resiliosync_traefik_middleware_default: "{{ traefik_default_middleware }}"-resiliosync_traefik_middleware_custom: ""-resiliosync_traefik_certresolver: "{{ traefik_default_certresolver }}"-resiliosync_traefik_enabled: true-resiliosync_traefik_api_enabled: false-resiliosync_traefik_api_endpoint: ""+resiliosync_role_traefik_sso_middleware: ""+resiliosync_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+resiliosync_role_traefik_middleware_custom: ""+resiliosync_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+resiliosync_role_traefik_enabled: true+resiliosync_role_traefik_api_enabled: false+resiliosync_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-resiliosync_docker_container: "{{ resiliosync_name }}"+resiliosync_role_docker_container: "{{ resiliosync_name }}" # Image-resiliosync_docker_image_pull: true-resiliosync_docker_image_tag: "latest"-resiliosync_docker_image: "resilio/sync:{{ resiliosync_docker_image_tag }}"+resiliosync_role_docker_image_pull: true+resiliosync_role_docker_image_repo: "resilio/sync"+resiliosync_role_docker_image_tag: "latest"+resiliosync_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='resiliosync') }}:{{ lookup('role_var', '_docker_image_tag', role='resiliosync') }}" # Ports-resiliosync_docker_ports_defaults:- - "{{ resiliosync_data_port }}:{{ resiliosync_data_port }}"-resiliosync_docker_ports_custom: []-resiliosync_docker_ports: "{{ resiliosync_docker_ports_defaults- + resiliosync_docker_ports_custom }}"--# Envs-resiliosync_docker_envs_default: {}-resiliosync_docker_envs_custom: {}-resiliosync_docker_envs: "{{ resiliosync_docker_envs_default- | combine(resiliosync_docker_envs_custom) }}"-# Commands-resiliosync_docker_commands_default: []-resiliosync_docker_commands_custom: []-resiliosync_docker_commands: "{{ resiliosync_docker_commands_default- + resiliosync_docker_commands_custom }}"+resiliosync_role_docker_ports_default:+ - "{{ lookup('role_var', '_data_port', role='resiliosync') }}:{{ lookup('role_var', '_data_port', role='resiliosync') }}"+resiliosync_role_docker_ports_custom: []+resiliosync_role_docker_ports: "{{ lookup('role_var', '_docker_ports_default', role='resiliosync')+ + lookup('role_var', '_docker_ports_custom', role='resiliosync') }}" # Volumes-resiliosync_docker_volumes_global: false-resiliosync_docker_volumes_default:- - "{{ resiliosync_paths_location }}:/mnt/sync"+resiliosync_role_docker_volumes_global: false+resiliosync_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='resiliosync') }}:/mnt/sync" - "/mnt:/mnt/mounted_folders/mnt" - "/home:/mnt/mounted_folders/home"-resiliosync_docker_volumes_custom: []-resiliosync_docker_volumes: "{{ resiliosync_docker_volumes_default- + resiliosync_docker_volumes_custom }}"--# Devices-resiliosync_docker_devices_default: []-resiliosync_docker_devices_custom: []-resiliosync_docker_devices: "{{ resiliosync_docker_devices_default- + resiliosync_docker_devices_custom }}"--# Hosts-resiliosync_docker_hosts_default: {}-resiliosync_docker_hosts_custom: {}-resiliosync_docker_hosts: "{{ docker_hosts_common- | combine(resiliosync_docker_hosts_default)- | combine(resiliosync_docker_hosts_custom) }}"--# Labels-resiliosync_docker_labels_default: {}-resiliosync_docker_labels_custom: {}-resiliosync_docker_labels: "{{ docker_labels_common- | combine(resiliosync_docker_labels_default)- | combine(resiliosync_docker_labels_custom) }}"+resiliosync_role_docker_volumes_custom: []+resiliosync_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='resiliosync')+ + lookup('role_var', '_docker_volumes_custom', role='resiliosync') }}" # Hostname-resiliosync_docker_hostname: "{{ resiliosync_name }}"+resiliosync_role_docker_hostname: "{{ resiliosync_name }}" # Networks-resiliosync_docker_networks_alias: "{{ resiliosync_name }}"-resiliosync_docker_networks_default: []-resiliosync_docker_networks_custom: []-resiliosync_docker_networks: "{{ docker_networks_common- + resiliosync_docker_networks_default- + resiliosync_docker_networks_custom }}"--# Capabilities-resiliosync_docker_capabilities_default: []-resiliosync_docker_capabilities_custom: []-resiliosync_docker_capabilities: "{{ resiliosync_docker_capabilities_default- + resiliosync_docker_capabilities_custom }}"--# Security Opts-resiliosync_docker_security_opts_default: []-resiliosync_docker_security_opts_custom: []-resiliosync_docker_security_opts: "{{ resiliosync_docker_security_opts_default- + resiliosync_docker_security_opts_custom }}"+resiliosync_role_docker_networks_alias: "{{ resiliosync_name }}"+resiliosync_role_docker_networks_default: []+resiliosync_role_docker_networks_custom: []+resiliosync_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='resiliosync')+ + lookup('role_var', '_docker_networks_custom', role='resiliosync') }}" # Restart Policy-resiliosync_docker_restart_policy: unless-stopped+resiliosync_role_docker_restart_policy: unless-stopped # State-resiliosync_docker_state: started+resiliosync_role_docker_state: started # User-resiliosync_docker_user: "{{ uid }}:{{ gid }}"+resiliosync_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/resiliosync/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/rflood/defaults/main.yml
@@ -16,178 +16,140 @@ # Paths ################################ -rflood_paths_folder: "{{ rflood_name }}"-rflood_paths_location: "{{ server_appdata_path }}/{{ rflood_paths_folder }}"-rflood_paths_downloads_location: "{{ downloads_torrents_path }}/{{ rflood_paths_folder }}"-rflood_paths_folders_list:- - "{{ rflood_paths_location }}"- - "{{ rflood_paths_downloads_location }}"- - "{{ rflood_paths_downloads_location }}/completed"- - "{{ rflood_paths_downloads_location }}/incoming"- - "{{ rflood_paths_downloads_location }}/watched"- - "{{ rflood_paths_downloads_location }}/torrents"+rflood_role_paths_folder: "{{ rflood_name }}"+rflood_role_paths_location: "{{ server_appdata_path }}/{{ rflood_role_paths_folder }}"+rflood_role_paths_downloads_location: "{{ downloads_torrents_path }}/{{ rflood_role_paths_folder }}"+rflood_role_paths_folders_list:+ - "{{ rflood_role_paths_location }}"+ - "{{ rflood_role_paths_downloads_location }}"+ - "{{ rflood_role_paths_downloads_location }}/completed"+ - "{{ rflood_role_paths_downloads_location }}/incoming"+ - "{{ rflood_role_paths_downloads_location }}/watched"+ - "{{ rflood_role_paths_downloads_location }}/torrents" # Config files-rflood_paths_rtorrent_rc_location: "{{ rflood_paths_location }}/rtorrent.rc"+rflood_role_paths_rtorrent_rc_location: "{{ rflood_role_paths_location }}/rtorrent.rc" ################################ # Web ################################ -rflood_web_subdomain: "{{ rflood_name }}"-rflood_web_domain: "{{ user.domain }}"-rflood_web_port: "3000"-rflood_web_url: "{{ 'https://' + lookup('vars', rflood_name + '_web_subdomain', default=rflood_web_subdomain)- + '.' + lookup('vars', rflood_name + '_web_domain', default=rflood_web_domain) }}"+rflood_role_web_subdomain: "{{ rflood_name }}"+rflood_role_web_domain: "{{ user.domain }}"+rflood_role_web_port: "3000"+rflood_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='rflood') + '.' + lookup('role_var', '_web_domain', role='rflood')+ if (lookup('role_var', '_web_subdomain', role='rflood') | length > 0)+ else lookup('role_var', '_web_domain', role='rflood')) }}" ################################ # DNS ################################ -rflood_dns_record: "{{ lookup('vars', rflood_name + '_web_subdomain', default=rflood_web_subdomain) }}"-rflood_dns_zone: "{{ lookup('vars', rflood_name + '_web_domain', default=rflood_web_domain) }}"-rflood_dns_proxy: "{{ dns.proxied }}"+rflood_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='rflood') }}"+rflood_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='rflood') }}"+rflood_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -rflood_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-rflood_traefik_middleware_default: "{{ traefik_default_middleware }}"-rflood_traefik_middleware_custom: ""-rflood_traefik_certresolver: "{{ traefik_default_certresolver }}"-rflood_traefik_enabled: true+rflood_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+rflood_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+rflood_role_traefik_middleware_custom: ""+rflood_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+rflood_role_traefik_enabled: true # Disabled for security reasons, no authentication on API /!\-rflood_traefik_api_enabled: false-rflood_traefik_api_endpoint: "PathPrefix(`/api`)"+rflood_role_traefik_api_enabled: false+rflood_role_traefik_api_endpoint: "PathPrefix(`/api`)" ################################ # Config ################################ -rflood_config_public_trackers: false+rflood_role_config_public_trackers: false # rtorrent.rc-rflood_config_rflood_rc_settings_default:+rflood_role_config_rflood_rc_settings_default: # IP address that is reported to the tracker - { option: "network.local_address.set", value: "{{ ip_address_public }}" } # Ports- - { option: "network.port_range.set", value: "{{ rflood_docker_ports_50000 }}-{{ rflood_docker_ports_50000 }}" }- - { option: "dht.port.set", value: "{{ rflood_docker_ports_6881 }}" }+ - { option: "network.port_range.set", value: "{{ lookup('role_var', '_docker_ports_50000', role='rflood') }}-{{ lookup('role_var', '_docker_ports_50000', role='rflood') }}" }+ - { option: "dht.port.set", value: "{{ lookup('role_var', '_docker_ports_6881', role='rflood') }}" } # Enable / Disable Public Trackers- - { option: "dht.mode.set", value: "{{ rflood_config_public_trackers | ternary('on', 'disable') }}" }- - { option: "trackers.use_udp.set", value: "{{ rflood_config_public_trackers | ternary('yes', 'no') }}" }- - { option: "protocol.pex.set", value: "{{ rflood_config_public_trackers | ternary('yes', 'no') }}" }+ - { option: "dht.mode.set", value: "{{ lookup('role_var', '_config_public_trackers', role='rflood') | ternary('on', 'disable') }}" }+ - { option: "trackers.use_udp.set", value: "{{ lookup('role_var', '_config_public_trackers', role='rflood') | ternary('yes', 'no') }}" }+ - { option: "protocol.pex.set", value: "{{ lookup('role_var', '_config_public_trackers', role='rflood') | ternary('yes', 'no') }}" } # Maximum XMLRPC payloads - { option: "network.xmlrpc.size_limit.set", value: "20M" }-rflood_config_rflood_rc_settings_custom: []-rflood_config_rflood_rc_settings_list: "{{ lookup('vars', rflood_name + '_config_rflood_rc_settings_default', default=rflood_config_rflood_rc_settings_default)- + lookup('vars', rflood_name + '_config_rflood_rc_settings_custom', default=rflood_config_rflood_rc_settings_custom) }}"+rflood_role_config_rflood_rc_settings_custom: []+rflood_role_config_rflood_rc_settings_list: "{{ lookup('role_var', '_config_rflood_rc_settings_default', role='rflood')+ + lookup('role_var', '_config_rflood_rc_settings_custom', role='rflood') }}" ################################ # Docker ################################ # Container-rflood_docker_container: "{{ rflood_name }}"+rflood_role_docker_container: "{{ rflood_name }}" # Image-rflood_docker_image_pull: true-rflood_docker_image_repo: "ghcr.io/hotio/rflood"-rflood_docker_image_tag: "release"-rflood_docker_image: "{{ lookup('vars', rflood_name + '_docker_image_repo', default=rflood_docker_image_repo)- + ':' + lookup('vars', rflood_name + '_docker_image_tag', default=rflood_docker_image_tag) }}"+rflood_role_docker_image_pull: true+rflood_role_docker_image_repo: "ghcr.io/hotio/rflood"+rflood_role_docker_image_tag: "release"+rflood_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='rflood') }}:{{ lookup('role_var', '_docker_image_tag', role='rflood') }}" # Ports # - Internal and External ports need to match for the next set of ports # - Lookup available ports and set docker ports accordingly-rflood_docker_ports_50000: "{{ port_lookup_50000.meta.port- if (port_lookup_50000.meta.port is defined) and (port_lookup_50000.meta.port | trim | length > 0)- else '50000' }}"-rflood_docker_ports_6881: "{{ port_lookup_6881.meta.port- if (port_lookup_6881.meta.port is defined) and (port_lookup_6881.meta.port | trim | length > 0)- else '6881' }}"-rflood_docker_ports_defaults:- - "{{ rflood_docker_ports_50000 }}:{{ rflood_docker_ports_50000 }}"- - "{{ rflood_docker_ports_6881 }}:{{ rflood_docker_ports_6881 }}/udp"-rflood_docker_ports_custom: []-rflood_docker_ports: "{{ lookup('vars', rflood_name + '_docker_ports_defaults', default=rflood_docker_ports_defaults)- + lookup('vars', rflood_name + '_docker_ports_custom', default=rflood_docker_ports_custom) }}"+rflood_role_docker_ports_50000: "{{ port_lookup_50000.meta.port+ if (port_lookup_50000.meta.port is defined) and (port_lookup_50000.meta.port | trim | length > 0)+ else '50000' }}"+rflood_role_docker_ports_6881: "{{ port_lookup_6881.meta.port+ if (port_lookup_6881.meta.port is defined) and (port_lookup_6881.meta.port | trim | length > 0)+ else '6881' }}"+rflood_role_docker_ports_default:+ - "{{ lookup('role_var', '_docker_ports_50000', role='rflood') }}:{{ lookup('role_var', '_docker_ports_50000', role='rflood') }}"+ - "{{ lookup('role_var', '_docker_ports_6881', role='rflood') }}:{{ lookup('role_var', '_docker_ports_6881', role='rflood') }}/udp"+rflood_role_docker_ports_custom: []+rflood_role_docker_ports: "{{ lookup('role_var', '_docker_ports_default', role='rflood')+ + lookup('role_var', '_docker_ports_custom', role='rflood') }}" # Envs-rflood_docker_envs_default:+rflood_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}" UMASK: "002" FLOOD_AUTH: "false"-rflood_docker_envs_custom: {}-rflood_docker_envs: "{{ lookup('vars', rflood_name + '_docker_envs_default', default=rflood_docker_envs_default)- | combine(lookup('vars', rflood_name + '_docker_envs_custom', default=rflood_docker_envs_custom)) }}"--# Commands-rflood_docker_commands_default: []-rflood_docker_commands_custom: []-rflood_docker_commands: "{{ lookup('vars', rflood_name + '_docker_commands_default', default=rflood_docker_commands_default)- + lookup('vars', rflood_name + '_docker_commands_custom', default=rflood_docker_commands_custom) }}"+rflood_role_docker_envs_custom: {}+rflood_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='rflood')+ | combine(lookup('role_var', '_docker_envs_custom', role='rflood')) }}" # Volumes-rflood_docker_volumes_default:- - "{{ rflood_paths_location }}:/config"+rflood_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='rflood') }}:/config" - "{{ server_appdata_path }}/scripts:/scripts"-rflood_docker_volumes_custom: []-rflood_docker_volumes: "{{ lookup('vars', rflood_name + '_docker_volumes_default', default=rflood_docker_volumes_default)- + lookup('vars', rflood_name + '_docker_volumes_custom', default=rflood_docker_volumes_custom) }}"--# Devices-rflood_docker_devices_default: []-rflood_docker_devices_custom: []-rflood_docker_devices: "{{ lookup('vars', rflood_name + '_docker_devices_default', default=rflood_docker_devices_default)- + lookup('vars', rflood_name + '_docker_devices_custom', default=rflood_docker_devices_custom) }}"--# Hosts-rflood_docker_hosts_default: {}-rflood_docker_hosts_custom: {}-rflood_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', rflood_name + '_docker_hosts_default', default=rflood_docker_hosts_default))- | combine(lookup('vars', rflood_name + '_docker_hosts_custom', default=rflood_docker_hosts_custom)) }}"--# Labels-rflood_docker_labels_default: {}-rflood_docker_labels_custom: {}-rflood_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', rflood_name + '_docker_labels_default', default=rflood_docker_labels_default))- | combine(lookup('vars', rflood_name + '_docker_labels_custom', default=rflood_docker_labels_custom)) }}"+rflood_role_docker_volumes_custom: []+rflood_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='rflood')+ + lookup('role_var', '_docker_volumes_custom', role='rflood') }}" # Hostname-rflood_docker_hostname: "{{ rflood_name }}"+rflood_role_docker_hostname: "{{ rflood_name }}" # Networks-rflood_docker_networks_alias: "{{ rflood_name }}"-rflood_docker_networks_default: []-rflood_docker_networks_custom: []-rflood_docker_networks: "{{ docker_networks_common- + lookup('vars', rflood_name + '_docker_networks_default', default=rflood_docker_networks_default)- + lookup('vars', rflood_name + '_docker_networks_custom', default=rflood_docker_networks_custom) }}"--# Capabilities-rflood_docker_capabilities_default: []-rflood_docker_capabilities_custom: []-rflood_docker_capabilities: "{{ lookup('vars', rflood_name + '_docker_capabilities_default', default=rflood_docker_capabilities_default)- + lookup('vars', rflood_name + '_docker_capabilities_custom', default=rflood_docker_capabilities_custom) }}"--# Security Opts-rflood_docker_security_opts_default: []-rflood_docker_security_opts_custom: []-rflood_docker_security_opts: "{{ lookup('vars', rflood_name + '_docker_security_opts_default', default=rflood_docker_security_opts_default)- + lookup('vars', rflood_name + '_docker_security_opts_custom', default=rflood_docker_security_opts_custom) }}"+rflood_role_docker_networks_alias: "{{ rflood_name }}"+rflood_role_docker_networks_default: []+rflood_role_docker_networks_custom: []+rflood_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='rflood')+ + lookup('role_var', '_docker_networks_custom', role='rflood') }}" # Restart Policy-rflood_docker_restart_policy: unless-stopped+rflood_role_docker_restart_policy: unless-stopped # Stop Timeout-rflood_docker_stop_timeout: 900+rflood_role_docker_stop_timeout: 900 # State-rflood_docker_state: started+rflood_role_docker_state: started
modified
roles/rflood/tasks/main2.yml
@@ -9,9 +9,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/rflood/tasks/subtasks/post-install/main.yml
@@ -9,10 +9,8 @@ --- - name: Post-Install | Wait for config files to be created ansible.builtin.wait_for:- path: "{{ item }}"+ path: "{{ lookup('role_var', '_paths_rtorrent_rc_location', role='rflood') }}" state: present- loop:- - "{{ rflood_paths_rtorrent_rc_location }}" - name: Post-Install | Wait for 10 seconds ansible.builtin.wait_for:
modified
roles/rflood/tasks/subtasks/post-install/settings/main.yml
@@ -9,7 +9,7 @@ --- - name: Post-Install | Settings | Update 'rtorrent.rc' config settings community.general.ini_file:- path: "{{ rflood_paths_rtorrent_rc_location }}"+ path: "{{ lookup('role_var', '_paths_rtorrent_rc_location', role='rflood') }}" section: null option: "{{ item.option }}" value: "{{ item.value }}"@@ -18,4 +18,4 @@ owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"- loop: "{{ rflood_config_rflood_rc_settings_list }}"+ loop: "{{ lookup('role_var', '_config_rflood_rc_settings_list', role='rflood') }}"
modified
roles/rocketchat/defaults/main.yml
@@ -17,152 +17,111 @@ # Settings ################################ -rocketchat_mongodb_docker_image_tag: "6"-rocketchat_mongodb_docker_commands: ["mongod --oplogSize 128 --replSet rs0"]-rocketchat_mongodb_docker_volumes_custom: ["{{ rocketchat_paths_location }}/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro"]-rockatchat_mongodb_paths_location: "{{ rocketchat_paths_location }}/mongo"+rocketchat_mongodb_role_docker_image_tag: "6"+rocketchat_mongodb_role_docker_commands:+ - "mongod --oplogSize 128 --replSet rs0"+rocketchat_mongodb_role_docker_volumes_custom:+ - "{{ lookup('role_var', '_paths_location', role='rocketchat') }}/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro"+rockatchat_mongodb_role_paths_location: "{{ lookup('role_var', '_paths_location', role='rocketchat') }}/mongo" ################################ # Paths ################################ -rocketchat_paths_folder: "{{ rocketchat_name }}"-rocketchat_paths_location: "{{ server_appdata_path }}/{{ rocketchat_paths_folder }}"-rocketchat_paths_folders_list:- - "{{ rocketchat_paths_location }}"-rocketchat_paths_config_location: "{{ rocketchat_paths_location }}/env"+rocketchat_role_paths_folder: "{{ rocketchat_name }}"+rocketchat_role_paths_location: "{{ server_appdata_path }}/{{ rocketchat_role_paths_folder }}"+rocketchat_role_paths_folders_list:+ - "{{ rocketchat_role_paths_location }}"+rocketchat_role_paths_config_location: "{{ rocketchat_role_paths_location }}/env" ################################ # Web ################################ -rocketchat_web_subdomain: "{{ rocketchat_name }}"-rocketchat_web_domain: "{{ user.domain }}"-rocketchat_web_port: "3000"-rocketchat_web_url: "{{ 'https://' + (rocketchat_web_subdomain + '.' + rocketchat_web_domain- if (rocketchat_web_subdomain | length > 0)- else rocketchat_web_domain) }}"+rocketchat_role_web_subdomain: "{{ rocketchat_name }}"+rocketchat_role_web_domain: "{{ user.domain }}"+rocketchat_role_web_port: "3000"+rocketchat_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='rocketchat') + '.' + lookup('role_var', '_web_domain', role='rocketchat')+ if (lookup('role_var', '_web_subdomain', role='rocketchat') | length > 0)+ else lookup('role_var', '_web_domain', role='rocketchat')) }}" ################################ # DNS ################################ -rocketchat_dns_record: "{{ rocketchat_web_subdomain }}"-rocketchat_dns_zone: "{{ rocketchat_web_domain }}"-rocketchat_dns_proxy: "{{ dns.proxied }}"+rocketchat_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='rocketchat') }}"+rocketchat_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='rocketchat') }}"+rocketchat_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -rocketchat_traefik_sso_middleware: ""-rocketchat_traefik_middleware_default: "{{ traefik_default_middleware }}"-rocketchat_traefik_middleware_custom: ""-rocketchat_traefik_certresolver: "{{ traefik_default_certresolver }}"-rocketchat_traefik_enabled: true-rocketchat_traefik_api_enabled: false-rocketchat_traefik_api_endpoint: ""+rocketchat_role_traefik_sso_middleware: ""+rocketchat_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+rocketchat_role_traefik_middleware_custom: ""+rocketchat_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+rocketchat_role_traefik_enabled: true+rocketchat_role_traefik_api_enabled: false+rocketchat_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-rocketchat_docker_container: "{{ rocketchat_name }}"+rocketchat_role_docker_container: "{{ rocketchat_name }}" # Image-rocketchat_docker_image_pull: true-rocketchat_docker_image_tag: "latest"-rocketchat_docker_image: "rocketchat/rocket.chat:{{ rocketchat_docker_image_tag }}"--# Ports-rocketchat_docker_ports_defaults: []-rocketchat_docker_ports_custom: []-rocketchat_docker_ports: "{{ rocketchat_docker_ports_defaults- + rocketchat_docker_ports_custom }}"+rocketchat_role_docker_image_pull: true+rocketchat_role_docker_image_tag: "latest"+rocketchat_role_docker_image_repo: "rocketchat/rocket.chat"+rocketchat_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='rocketchat') }}:{{ lookup('role_var', '_docker_image_tag', role='rocketchat') }}" # Envs-rocketchat_docker_envs_default:+rocketchat_role_docker_envs_default: TZ: "{{ tz }}"- ROOT_URL: "{{ rocketchat_web_url }}"+ ROOT_URL: "{{ lookup('role_var', '_web_url', role='rocketchat') }}" MONGO_URL: "mongodb://rocketchat-mongo:27017/rocketchat?replicaSet=rs0&directConnection=true" MONGO_OPLOG_URL: "mongodb://rocketchat-mongo:27017/local?replicaSet=rs0&directConnection=true" DEPLOY_METHOD: "docker"-rocketchat_docker_envs_custom: {}-rocketchat_docker_envs: "{{ rocketchat_docker_envs_default- | combine(rocketchat_docker_envs_custom) }}"--# Commands-rocketchat_docker_commands_default: []-rocketchat_docker_commands_custom: []-rocketchat_docker_commands: "{{ rocketchat_docker_commands_default- + rocketchat_docker_commands_custom }}"+rocketchat_role_docker_envs_custom: {}+rocketchat_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='rocketchat')+ | combine(lookup('role_var', '_docker_envs_custom', role='rocketchat')) }}" # Volumes-rocketchat_docker_volumes_default:- - "{{ rocketchat_paths_location }}/uploads:/app/uploads"-rocketchat_docker_volumes_custom: []-rocketchat_docker_volumes: "{{ rocketchat_docker_volumes_default- + rocketchat_docker_volumes_custom }}"+rocketchat_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='rocketchat') }}/uploads:/app/uploads"+rocketchat_role_docker_volumes_custom: []+rocketchat_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='rocketchat')+ + lookup('role_var', '_docker_volumes_custom', role='rocketchat') }}" # Mounts-rocketchat_docker_mounts_default:+rocketchat_role_docker_mounts_default: - target: /tmp type: tmpfs-rocketchat_docker_mounts_custom: []-rocketchat_docker_mounts: "{{ rocketchat_docker_mounts_default- + rocketchat_docker_mounts_custom }}"--# Devices-rocketchat_docker_devices_default: []-rocketchat_docker_devices_custom: []-rocketchat_docker_devices: "{{ rocketchat_docker_devices_default- + rocketchat_docker_devices_custom }}"--# Hosts-rocketchat_docker_hosts_default: {}-rocketchat_docker_hosts_custom: {}-rocketchat_docker_hosts: "{{ docker_hosts_common- | combine(rocketchat_docker_hosts_default)- | combine(rocketchat_docker_hosts_custom) }}"--# Labels-rocketchat_docker_labels_default: {}-rocketchat_docker_labels_custom: {}-rocketchat_docker_labels: "{{ docker_labels_common- | combine(rocketchat_docker_labels_default)- | combine(rocketchat_docker_labels_custom) }}"+rocketchat_role_docker_mounts_custom: []+rocketchat_role_docker_mounts: "{{ lookup('role_var', '_docker_mounts_default', role='rocketchat')+ + lookup('role_var', '_docker_mounts_custom', role='rocketchat') }}" # Hostname-rocketchat_docker_hostname: "{{ rocketchat_name }}"+rocketchat_role_docker_hostname: "{{ rocketchat_name }}" # Networks-rocketchat_docker_networks_alias: "{{ rocketchat_name }}"-rocketchat_docker_networks_default: []-rocketchat_docker_networks_custom: []-rocketchat_docker_networks: "{{ docker_networks_common- + rocketchat_docker_networks_default- + rocketchat_docker_networks_custom }}"--# Capabilities-rocketchat_docker_capabilities_default: []-rocketchat_docker_capabilities_custom: []-rocketchat_docker_capabilities: "{{ rocketchat_docker_capabilities_default- + rocketchat_docker_capabilities_custom }}"--# Security Opts-rocketchat_docker_security_opts_default: []-rocketchat_docker_security_opts_custom: []-rocketchat_docker_security_opts: "{{ rocketchat_docker_security_opts_default- + rocketchat_docker_security_opts_custom }}"+rocketchat_role_docker_networks_alias: "{{ rocketchat_name }}"+rocketchat_role_docker_networks_default: []+rocketchat_role_docker_networks_custom: []+rocketchat_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='rocketchat')+ + lookup('role_var', '_docker_networks_custom', role='rocketchat') }}" # Restart Policy-rocketchat_docker_restart_policy: unless-stopped+rocketchat_role_docker_restart_policy: unless-stopped # State-rocketchat_docker_state: started+rocketchat_role_docker_state: started # Dependencies-rocketchat_depends_on: "rocketchat_db"-rocketchat_depends_on_delay: "0"-rocketchat_depends_on_healthchecks: "false"+rocketchat_role_depends_on: "rocketchat_db"+rocketchat_role_depends_on_delay: "0"+rocketchat_role_depends_on_healthchecks: "false"
modified
roles/rocketchat/tasks/main.yml
@@ -10,22 +10,16 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Create directories- ansible.builtin.file:- path: "{{ item }}"- state: directory- owner: "{{ user.name }}"- group: "{{ user.name }}"- mode: "0775"- with_items: "{{ lookup('vars', role_name + '_paths_folders_list') }}"+ ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" - name: Create upload directory ansible.builtin.file:- path: "{{ rocketchat_paths_location }}/uploads"+ path: "{{ rocketchat_role_paths_location }}/uploads" state: directory owner: "65533" group: "65533"@@ -34,7 +28,7 @@ - name: "RocketChat | Import init-mongo.js" ansible.builtin.template: src: init-mongo.js- dest: '{{ rocketchat_paths_location }}/init-mongo.js'+ dest: '{{ rocketchat_role_paths_location }}/init-mongo.js' owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0775"@@ -47,18 +41,18 @@ - name: Check if legacy mongodb folder exists ansible.builtin.stat:- path: "/opt/rocketchat_db"+ path: "{{ server_appdata_path }}/rocketchat_db" register: rocketchat_db_legacy_folder - name: Check if new mongodb folder exists ansible.builtin.stat:- path: "{{ rocketchat_paths_location }}/mongo"+ path: "{{ rocketchat_role_paths_location }}/mongo" register: rocketchat_db_new_folder - name: Migrate mongodb directory migrate_folder:- legacy_path: "/opt/rocketchat_db"- new_path: "{{ rocketchat_paths_location }}/mongo"+ legacy_path: "{{ server_appdata_path }}/rocketchat_db"+ new_path: "{{ rocketchat_role_paths_location }}/mongo" owner: "{{ user.name }}" group: "{{ user.name }}" mode: '0775'@@ -70,10 +64,10 @@ name: mongodb vars: mongodb_instances: ["{{ rocketchat_name }}-mongo"]- mongodb_docker_image_tag: "{{ rocketchat_mongodb_docker_image_tag }}"- mongodb_docker_commands: "{{ rocketchat_mongodb_docker_commands }}"- mongodb_docker_volumes_custom: "{{ rocketchat_mongodb_docker_volumes_custom }}"- mongodb_paths_location: "{{ rockatchat_mongodb_paths_location }}"+ mongodb_role_docker_image_tag: "{{ rocketchat_mongodb_role_docker_image_tag }}"+ mongodb_role_docker_commands: "{{ rocketchat_mongodb_role_docker_commands }}"+ mongodb_role_docker_volumes_custom: "{{ rocketchat_mongodb_role_docker_volumes_custom }}"+ mongodb_role_paths_location: "{{ rockatchat_mongodb_role_paths_location }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/sabthrottle/defaults/main.yml
@@ -17,95 +17,52 @@ # Paths ################################ -sabthrottle_paths_folder: "{{ sabthrottle_name }}"-sabthrottle_paths_location: "{{ server_appdata_path }}/{{ sabthrottle_paths_folder }}"-sabthrottle_paths_folders_list:- - "{{ sabthrottle_paths_location }}"-sabthrottle_paths_config_location: "{{ sabthrottle_paths_location }}/config.json"+sabthrottle_role_paths_folder: "{{ sabthrottle_name }}"+sabthrottle_role_paths_location: "{{ server_appdata_path }}/{{ sabthrottle_role_paths_folder }}"+sabthrottle_role_paths_folders_list:+ - "{{ sabthrottle_role_paths_location }}"+sabthrottle_role_paths_config_location: "{{ sabthrottle_role_paths_location }}/config.json" ################################ # Docker ################################ # Container-sabthrottle_docker_container: "{{ sabthrottle_name }}"+sabthrottle_role_docker_container: "{{ sabthrottle_name }}" # Image-sabthrottle_docker_image_pull: true-sabthrottle_docker_image_tag: "latest"-sabthrottle_docker_image: "8a8al00ey/sabthrottle:{{ sabthrottle_docker_image_tag }}"--# Ports-sabthrottle_docker_ports_defaults: []-sabthrottle_docker_ports_custom: []-sabthrottle_docker_ports: "{{ sabthrottle_docker_ports_defaults- + sabthrottle_docker_ports_custom }}"+sabthrottle_role_docker_image_pull: true+sabthrottle_role_docker_image_repo: "8a8al00ey/sabthrottle"+sabthrottle_role_docker_image_tag: "latest"+sabthrottle_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='sabthrottle') }}:{{ lookup('role_var', '_docker_image_tag', role='sabthrottle') }}" # Envs-sabthrottle_docker_envs_default:+sabthrottle_role_docker_envs_default: TZ: "{{ tz }}"-sabthrottle_docker_envs_custom: {}-sabthrottle_docker_envs: "{{ sabthrottle_docker_envs_default- | combine(sabthrottle_docker_envs_custom) }}"--# Commands-sabthrottle_docker_commands_default: []-sabthrottle_docker_commands_custom: []-sabthrottle_docker_commands: "{{ sabthrottle_docker_commands_default- + sabthrottle_docker_commands_custom }}"+sabthrottle_role_docker_envs_custom: {}+sabthrottle_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='sabthrottle')+ | combine(lookup('role_var', '_docker_envs_custom', role='sabthrottle')) }}" # Volumes-sabthrottle_docker_volumes_default:- - "{{ sabthrottle_paths_config_location }}:/sabthrottle/config.json:ro"-sabthrottle_docker_volumes_custom: []-sabthrottle_docker_volumes: "{{ sabthrottle_docker_volumes_default- + sabthrottle_docker_volumes_custom }}"--# Devices-sabthrottle_docker_devices_default: []-sabthrottle_docker_devices_custom: []-sabthrottle_docker_devices: "{{ sabthrottle_docker_devices_default- + sabthrottle_docker_devices_custom }}"--# Hosts-sabthrottle_docker_hosts_default: {}-sabthrottle_docker_hosts_custom: {}-sabthrottle_docker_hosts: "{{ docker_hosts_common- | combine(sabthrottle_docker_hosts_default)- | combine(sabthrottle_docker_hosts_custom) }}"--# Labels-sabthrottle_docker_labels_default: {}-sabthrottle_docker_labels_custom: {}-sabthrottle_docker_labels: "{{ docker_labels_common- | combine(sabthrottle_docker_labels_default)- | combine(sabthrottle_docker_labels_custom) }}"+sabthrottle_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_config_location', role='sabthrottle') }}:/sabthrottle/config.json:ro"+sabthrottle_role_docker_volumes_custom: []+sabthrottle_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='sabthrottle')+ + lookup('role_var', '_docker_volumes_custom', role='sabthrottle') }}" # Hostname-sabthrottle_docker_hostname: "{{ sabthrottle_name }}"+sabthrottle_role_docker_hostname: "{{ sabthrottle_name }}" # Networks-sabthrottle_docker_networks_alias: "{{ sabthrottle_name }}"-sabthrottle_docker_networks_default: []-sabthrottle_docker_networks_custom: []-sabthrottle_docker_networks: "{{ docker_networks_common- + sabthrottle_docker_networks_default- + sabthrottle_docker_networks_custom }}"--# Capabilities-sabthrottle_docker_capabilities_default: []-sabthrottle_docker_capabilities_custom: []-sabthrottle_docker_capabilities: "{{ sabthrottle_docker_capabilities_default- + sabthrottle_docker_capabilities_custom }}"--# Security Opts-sabthrottle_docker_security_opts_default: []-sabthrottle_docker_security_opts_custom: []-sabthrottle_docker_security_opts: "{{ sabthrottle_docker_security_opts_default- + sabthrottle_docker_security_opts_custom }}"+sabthrottle_role_docker_networks_alias: "{{ sabthrottle_name }}"+sabthrottle_role_docker_networks_default: []+sabthrottle_role_docker_networks_custom: []+sabthrottle_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='sabthrottle')+ + lookup('role_var', '_docker_networks_custom', role='sabthrottle') }}" # Restart Policy-sabthrottle_docker_restart_policy: unless-stopped+sabthrottle_role_docker_restart_policy: unless-stopped # State-sabthrottle_docker_state: started+sabthrottle_role_docker_state: started
modified
roles/sabthrottle/tasks/subtasks/pre-install.yml
@@ -9,15 +9,15 @@ --- - name: Pre-Install | Check if config exists ansible.builtin.stat:- path: "{{ sabthrottle_paths_config_location }}"- register: sabthrottle_paths_config_location_stat+ path: "{{ lookup('role_var', '_paths_config_location', role='sabthrottle') }}"+ register: sabthrottle_role_paths_config_location_stat - name: Pre-Install | Set Default Plex instance ansible.builtin.set_fact: plex_name: "{{ plex_name | default(plex_instances[0]) }}" - name: Pre-Install | New config tasks- when: not sabthrottle_paths_config_location_stat.stat.exists+ when: not sabthrottle_role_paths_config_location_stat.stat.exists block: - name: Pre-Install | Import Plex Auth Token role ansible.builtin.include_role:@@ -27,7 +27,7 @@ - name: Pre-Install | Import default config ansible.builtin.template: src: 'config.json.j2'- dest: "{{ sabthrottle_paths_config_location }}"+ dest: "{{ lookup('role_var', '_paths_config_location', role='sabthrottle') }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"
modified
roles/sabthrottle/templates/config.json.j2
@@ -1,7 +1,7 @@ { "plex": {- "url":"{{ plex_web_url }}",+ "url":"{{ lookup('role_var', '_web_url', role='plex') }}", "interval":60, "token": "{{ plex_auth_token | default('') }}" },
modified
roles/sanity_check/tasks/subtasks/backup_check.yml
@@ -15,7 +15,7 @@ # Age in hours - name: "Backup | Get age of 'backup.lock' file" ansible.builtin.set_fact:- backup_lock_age: "{{ ((((ansible_date_time.epoch | int) - (backup_lock.stat.ctime | int)) / (60 * 60)) | int) }}"+ backup_lock_age: "{{ ((((ansible_facts['date_time']['epoch'] | int) - (backup_lock.stat.ctime | int)) / (60 * 60)) | int) }}" when: backup_lock.stat.exists # Delete if older than 2 hours.
modified
roles/semaphoreui/defaults/main.yml
@@ -17,154 +17,112 @@ # Settings ################################ -semaphoreui_postgres_name: "{{ semaphoreui_name }}-postgres"-semaphoreui_postgres_docker_image_tag: "15"-semaphoreui_postgres_docker_image_repo: "postgres"-semaphoreui_postgres_docker_env_db: "semaphoreui"-semaphoreui_postgres_docker_env_user: "semaphoreui"-semaphoreui_postgres_docker_env_password: "semaphoreui"-semaphoreui_postgres_paths_folder: "{{ semaphoreui_name }}"-semaphoreui_postgres_paths_location: "{{ server_appdata_path }}/{{ postgres_paths_folder }}/postgres"+semaphoreui_role_postgres_deploy: true+semaphoreui_role_postgres_name: "{{ semaphoreui_name }}-postgres"+semaphoreui_role_postgres_user: "semaphoreui"+semaphoreui_role_postgres_password: "semaphoreui"+semaphoreui_role_postgres_docker_env_db: "semaphoreui"+semaphoreui_role_postgres_docker_image_tag: "15"+semaphoreui_role_postgres_docker_image_repo: "postgres"+semaphoreui_role_postgres_docker_healthcheck:+ test: ["CMD-SHELL", "pg_isready -d {{ lookup('role_var', '_postgres_docker_env_db', role='semaphoreui') }} -U {{ lookup('role_var', '_postgres_user', role='semaphoreui') }}"]+ start_period: 20s+ interval: 30s+ retries: 5+ timeout: 5s+semaphoreui_role_postgres_paths_folder: "{{ semaphoreui_name }}"+semaphoreui_role_postgres_paths_location: "{{ server_appdata_path }}/{{ semaphoreui_role_postgres_paths_folder }}/postgres" ################################ # Paths ################################ -semaphoreui_paths_folder: "{{ semaphoreui_name }}"-semaphoreui_paths_location: "{{ server_appdata_path }}/{{ semaphoreui_paths_folder }}"-semaphoreui_paths_folders_list:- - "{{ server_appdata_path }}/{{ semaphoreui_paths_folder }}/playbooks"+semaphoreui_role_paths_folder: "{{ semaphoreui_name }}"+semaphoreui_role_paths_location: "{{ server_appdata_path }}/{{ semaphoreui_role_paths_folder }}"+semaphoreui_role_paths_folders_list:+ - "{{ server_appdata_path }}/{{ semaphoreui_role_paths_folder }}/playbooks" ################################ # Web ################################ -semaphoreui_web_subdomain: "{{ semaphoreui_name }}"-semaphoreui_web_domain: "{{ user.domain }}"-semaphoreui_web_port: "3000"-semaphoreui_web_url: "{{ 'https://' + (semaphoreui_web_subdomain + '.' + semaphoreui_web_domain- if (semaphoreui_web_subdomain | length > 0)- else semaphoreui_web_domain) }}"+semaphoreui_role_web_subdomain: "{{ semaphoreui_name }}"+semaphoreui_role_web_domain: "{{ user.domain }}"+semaphoreui_role_web_port: "3000"+semaphoreui_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='semaphoreui') + '.' + lookup('role_var', '_web_domain', role='semaphoreui')+ if (lookup('role_var', '_web_subdomain', role='semaphoreui') | length > 0)+ else lookup('role_var', '_web_domain', role='semaphoreui')) }}" ################################ # DNS ################################ -semaphoreui_dns_record: "{{ semaphoreui_web_subdomain }}"-semaphoreui_dns_zone: "{{ semaphoreui_web_domain }}"-semaphoreui_dns_proxy: "{{ dns.proxied }}"+semaphoreui_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='semaphoreui') }}"+semaphoreui_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='semaphoreui') }}"+semaphoreui_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -semaphoreui_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-semaphoreui_traefik_middleware_default: "{{ traefik_default_middleware }}"-semaphoreui_traefik_middleware_custom: ""-semaphoreui_traefik_certresolver: "{{ traefik_default_certresolver }}"-semaphoreui_traefik_enabled: true-semaphoreui_traefik_api_enabled: true-semaphoreui_traefik_api_endpoint: "PathPrefix(`/api`)"+semaphoreui_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+semaphoreui_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+semaphoreui_role_traefik_middleware_custom: ""+semaphoreui_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+semaphoreui_role_traefik_enabled: true+semaphoreui_role_traefik_api_enabled: true+semaphoreui_role_traefik_api_endpoint: "PathPrefix(`/api`)" ################################ # Docker ################################ # Container-semaphoreui_docker_container: "{{ semaphoreui_name }}"+semaphoreui_role_docker_container: "{{ semaphoreui_name }}" # Image-semaphoreui_docker_image_pull: true-semaphoreui_docker_image_tag: "latest"-semaphoreui_docker_image: "semaphoreui/semaphore:{{ semaphoreui_docker_image_tag }}"--# Ports-semaphoreui_docker_ports_defaults: []-semaphoreui_docker_ports_custom: []-semaphoreui_docker_ports: "{{ semaphoreui_docker_ports_defaults- + semaphoreui_docker_ports_custom }}"+semaphoreui_role_docker_image_pull: true+semaphoreui_role_docker_image_tag: "latest"+semaphoreui_role_docker_image_repo: "semaphoreui/semaphore"+semaphoreui_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='semaphoreui') }}:{{ lookup('role_var', '_docker_image_tag', role='semaphoreui') }}" # Envs-semaphoreui_docker_envs_default:- - SEMAPHORE_DB_USER: semaphoreui- - SEMAPHORE_DB_PASS: semaphoreui- - SEMAPHORE_DB_HOST: "{{ semaphoreui_postgres_name }}" # for postgres, change to: postgres- - SEMAPHORE_DB_PORT: "5432" # change to 5432 for postgres- - SEMAPHORE_DB_DIALECT: postgres # for postgres, change to: postgres- - SEMAPHORE_DB: semaphoreui- - SEMAPHORE_PLAYBOOK_PATH: "{{ semaphoreui_paths_location }}/playbooks"- - SEMAPHORE_ADMIN_PASSWORD: "{{ user.pass }}"- - SEMAPHORE_ADMIN_NAME: "{{ user.name }}"- - SEMAPHORE_ADMIN_EMAIL: "{{ user.email }}"- - SEMAPHORE_ADMIN: "{{ user.name }}"- - SEMAPHORE_ACCESS_KEY_ENCRYPTION: "{{ semaphoreui_saltbox_facts.facts.secret_key }}"- - TZ: "{{ timezone }}"-semaphoreui_docker_envs_custom: {}-semaphoreui_docker_envs: "{{ semaphoreui_docker_envs_default- | combine(semaphoreui_docker_envs_custom) }}"--# Commands-semaphoreui_docker_commands_default: []-semaphoreui_docker_commands_custom: []-semaphoreui_docker_commands: "{{ semaphoreui_docker_commands_default- + semaphoreui_docker_commands_custom }}"--# Volumes-semaphoreui_docker_volumes_default: []-semaphoreui_docker_volumes_custom: []-semaphoreui_docker_volumes: "{{ semaphoreui_docker_volumes_default- + semaphoreui_docker_volumes_custom }}"--# Devices-semaphoreui_docker_devices_default: []-semaphoreui_docker_devices_custom: []-semaphoreui_docker_devices: "{{ semaphoreui_docker_devices_default- + semaphoreui_docker_devices_custom }}"--# Hosts-semaphoreui_docker_hosts_default: {}-semaphoreui_docker_hosts_custom: {}-semaphoreui_docker_hosts: "{{ docker_hosts_common- | combine(semaphoreui_docker_hosts_default)- | combine(semaphoreui_docker_hosts_custom) }}"--# Labels-semaphoreui_docker_labels_default: {}-semaphoreui_docker_labels_custom: {}-semaphoreui_docker_labels: "{{ docker_labels_common- | combine(semaphoreui_docker_labels_default)- | combine(semaphoreui_docker_labels_custom) }}"+semaphoreui_role_docker_envs_default:+ SEMAPHORE_DB_USER: "{{ lookup('role_var', '_postgres_user', role='semaphoreui') }}"+ SEMAPHORE_DB_PASS: "{{ lookup('role_var', '_postgres_password', role='semaphoreui') }}"+ SEMAPHORE_DB_HOST: "{{ lookup('role_var', '_postgres_name', role='semaphoreui') }}"+ SEMAPHORE_DB_PORT: "5432"+ SEMAPHORE_DB_DIALECT: "postgres"+ SEMAPHORE_DB: "{{ lookup('role_var', '_postgres_docker_env_db', role='semaphoreui') }}"+ SEMAPHORE_PLAYBOOK_PATH: "{{ lookup('role_var', '_paths_location', role='semaphoreui') }}/playbooks"+ SEMAPHORE_ADMIN_PASSWORD: "{{ user.pass }}"+ SEMAPHORE_ADMIN_NAME: "{{ user.name }}"+ SEMAPHORE_ADMIN_EMAIL: "{{ user.email }}"+ SEMAPHORE_ADMIN: "{{ user.name }}"+ SEMAPHORE_ACCESS_KEY_ENCRYPTION: "{{ semaphoreui_saltbox_facts.facts.secret_key }}"+ TZ: "{{ timezone }}"+semaphoreui_role_docker_envs_custom: {}+semaphoreui_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='semaphoreui')+ | combine(lookup('role_var', '_docker_envs_custom', role='semaphoreui')) }}" # Hostname-semaphoreui_docker_hostname: "{{ semaphoreui_name }}"+semaphoreui_role_docker_hostname: "{{ semaphoreui_name }}" # Networks-semaphoreui_docker_networks_alias: "{{ semaphoreui_name }}"-semaphoreui_docker_networks_default: []-semaphoreui_docker_networks_custom: []-semaphoreui_docker_networks: "{{ docker_networks_common- + semaphoreui_docker_networks_default- + semaphoreui_docker_networks_custom }}"--# Capabilities-semaphoreui_docker_capabilities_default: []-semaphoreui_docker_capabilities_custom: []-semaphoreui_docker_capabilities: "{{ semaphoreui_docker_capabilities_default- + semaphoreui_docker_capabilities_custom }}"--# Security Opts-semaphoreui_docker_security_opts_default: []-semaphoreui_docker_security_opts_custom: []-semaphoreui_docker_security_opts: "{{ semaphoreui_docker_security_opts_default- + semaphoreui_docker_security_opts_custom }}"+semaphoreui_role_docker_networks_alias: "{{ semaphoreui_name }}"+semaphoreui_role_docker_networks_default: []+semaphoreui_role_docker_networks_custom: []+semaphoreui_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='semaphoreui')+ + lookup('role_var', '_docker_networks_custom', role='semaphoreui') }}" # Restart Policy-semaphoreui_docker_restart_policy: unless-stopped+semaphoreui_role_docker_restart_policy: unless-stopped # State-semaphoreui_docker_state: started+semaphoreui_role_docker_state: started # Dependencies-semaphoreui_depends_on: "{{ semaphoreui_postgres_name }}"-semaphoreui_depends_on_delay: "0"-semaphoreui_depends_on_healthchecks: "false"+semaphoreui_role_depends_on: "{{ lookup('role_var', '_postgres_name', role='semaphoreui') }}"+semaphoreui_role_depends_on_delay: "0"+semaphoreui_role_depends_on_healthchecks: "false"
modified
roles/semaphoreui/tasks/main.yml
@@ -12,26 +12,27 @@ vars: var_prefix: "{{ semaphoreui_name }}_postgres" --- name: PostgreSQL Role+- name: "Import Postgres Role" ansible.builtin.include_role: name: postgres vars:- postgres_instances: ["{{ semaphoreui_postgres_name }}"]- postgres_docker_image_tag: "{{ semaphoreui_postgres_docker_image_tag }}"- postgres_docker_image_repo: "{{ semaphoreui_postgres_docker_image_repo }}"- postgres_docker_env_db: "{{ semaphoreui_postgres_docker_env_db }}"- postgres_docker_env_user: "{{ semaphoreui_postgres_docker_env_user }}"- postgres_docker_env_password: "{{ semaphoreui_postgres_docker_env_password }}"- postgres_paths_folder: "{{ semaphoreui_postgres_paths_folder }}"- postgres_paths_location: "{{ semaphoreui_postgres_paths_location }}"+ postgres_instances: ["{{ lookup('role_var', '_postgres_name', role='semaphoreui') }}"]+ postgres_role_docker_image_tag: "{{ lookup('role_var', '_postgres_docker_image_tag', role='semaphoreui') }}"+ postgres_role_docker_image_repo: "{{ lookup('role_var', '_postgres_docker_image_repo', role='semaphoreui') }}"+ postgres_role_paths_folder: "{{ lookup('role_var', '_postgres_paths_folder', role='semaphoreui') }}"+ postgres_role_paths_location: "{{ lookup('role_var', '_postgres_paths_location', role='semaphoreui') }}"+ postgres_role_docker_env_db: "{{ lookup('role_var', '_postgres_docker_env_db', role='semaphoreui') }}"+ postgres_role_docker_healthcheck: "{{ lookup('role_var', '_postgres_docker_healthcheck', role='semaphoreui') }}"+ postgres_role_docker_env_user: "{{ lookup('role_var', '_postgres_user', role='semaphoreui') }}"+ postgres_role_docker_env_password: "{{ lookup('role_var', '_postgres_password', role='semaphoreui') }}"+ when: lookup('role_var', '_postgres_deploy', role='semaphoreui') - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -45,6 +46,7 @@ owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0755"+ base_path: "{{ server_appdata_path }}" register: semaphoreui_saltbox_facts - name: Create directories
modified
roles/speedtest/defaults/main.yml
@@ -17,144 +17,101 @@ # Paths ################################ -speedtest_paths_folder: "{{ speedtest_name }}"-speedtest_paths_location: "{{ server_appdata_path }}/{{ speedtest_paths_folder }}"-speedtest_paths_folders_list:- - "{{ speedtest_paths_location }}"+speedtest_role_paths_folder: "{{ speedtest_name }}"+speedtest_role_paths_location: "{{ server_appdata_path }}/{{ speedtest_role_paths_folder }}"+speedtest_role_paths_folders_list:+ - "{{ speedtest_role_paths_location }}" ################################ # Web ################################ -speedtest_web_subdomain: "{{ speedtest_name }}"-speedtest_web_domain: "{{ user.domain }}"-speedtest_web_port: "80"-speedtest_web_url: "{{ 'https://' + (speedtest_web_subdomain + '.' + speedtest_web_domain- if (speedtest_web_subdomain | length > 0)- else speedtest_web_domain) }}"+speedtest_role_web_subdomain: "{{ speedtest_name }}"+speedtest_role_web_domain: "{{ user.domain }}"+speedtest_role_web_port: "80"+speedtest_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='speedtest') + '.' + lookup('role_var', '_web_domain', role='speedtest')+ if (lookup('role_var', '_web_subdomain', role='speedtest') | length > 0)+ else lookup('role_var', '_web_domain', role='speedtest')) }}" ################################ # DNS ################################ -speedtest_dns_record: "{{ speedtest_web_subdomain }}"-speedtest_dns_zone: "{{ speedtest_web_domain }}"-speedtest_dns_proxy: false+speedtest_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='speedtest') }}"+speedtest_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='speedtest') }}"+speedtest_role_dns_proxy: false ################################ # Traefik ################################ -speedtest_traefik_sso_middleware: ""-speedtest_traefik_middleware_default: "{{ traefik_default_middleware }}"-speedtest_traefik_middleware_custom: ""-speedtest_traefik_certresolver: "{{ traefik_default_certresolver }}"-speedtest_traefik_enabled: true-speedtest_traefik_api_enabled: false-speedtest_traefik_api_endpoint: ""+speedtest_role_traefik_sso_middleware: ""+speedtest_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+speedtest_role_traefik_middleware_custom: ""+speedtest_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+speedtest_role_traefik_enabled: true+speedtest_role_traefik_api_enabled: false+speedtest_role_traefik_api_endpoint: "" ################################-# THEME+# Theme ################################ # Options can be found at https://github.com/themepark-dev/theme.park-speedtest_themepark_enabled: false-speedtest_themepark_theme: "{{ global_themepark_theme }}"-speedtest_themepark_domain: "{{ global_themepark_domain }}"+speedtest_role_themepark_enabled: false+speedtest_role_themepark_theme: "{{ global_themepark_theme }}"+speedtest_role_themepark_domain: "{{ global_themepark_domain }}" ################################ # Docker ################################ # Container-speedtest_docker_container: "{{ speedtest_name }}"+speedtest_role_docker_container: "{{ speedtest_name }}" # Image-speedtest_docker_image_pull: true-speedtest_docker_image_tag: "latest"-speedtest_docker_image: "lscr.io/linuxserver/librespeed:{{ speedtest_docker_image_tag }}"--# Ports-speedtest_docker_ports_defaults: []-speedtest_docker_ports_custom: []-speedtest_docker_ports: "{{ speedtest_docker_ports_defaults- + speedtest_docker_ports_custom }}"+speedtest_role_docker_image_pull: true+speedtest_role_docker_image_repo: "lscr.io/linuxserver/librespeed"+speedtest_role_docker_image_tag: "latest"+speedtest_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='speedtest') }}:{{ lookup('role_var', '_docker_image_tag', role='speedtest') }}" # Envs-speedtest_docker_envs_default:+speedtest_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}" PASSWORD: "{{ user.pass }}" DB_TYPE: "sqlite"- DOCKER_MODS: "{{ 'ghcr.io/themepark-dev/theme.park:librespeed' if speedtest_themepark_enabled else omit }}"- TP_DOMAIN: "{{ lookup('vars', speedtest_name + '_themepark_domain', default=speedtest_themepark_domain) }}"- TP_THEME: "{{ lookup('vars', speedtest_name + '_themepark_theme', default=speedtest_themepark_theme) }}"-speedtest_docker_envs_custom: {}-speedtest_docker_envs: "{{ speedtest_docker_envs_default- | combine(speedtest_docker_envs_custom) }}"--# Commands-speedtest_docker_commands_default: []-speedtest_docker_commands_custom: []-speedtest_docker_commands: "{{ speedtest_docker_commands_default- + speedtest_docker_commands_custom }}"+ DOCKER_MODS: "{{ 'ghcr.io/themepark-dev/theme.park:librespeed' if lookup('role_var', '_themepark_enabled', role='speedtest') else omit }}"+ TP_DOMAIN: "{{ lookup('role_var', '_themepark_domain', role='speedtest') }}"+ TP_THEME: "{{ lookup('role_var', '_themepark_theme', role='speedtest') }}"+speedtest_role_docker_envs_custom: {}+speedtest_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='speedtest')+ | combine(lookup('role_var', '_docker_envs_custom', role='speedtest')) }}" # Volumes-speedtest_docker_volumes_default:- - "{{ speedtest_paths_location }}:/config"-speedtest_docker_volumes_custom: []-speedtest_docker_volumes: "{{ speedtest_docker_volumes_default- + speedtest_docker_volumes_custom }}"--# Devices-speedtest_docker_devices_default: []-speedtest_docker_devices_custom: []-speedtest_docker_devices: "{{ speedtest_docker_devices_default- + speedtest_docker_devices_custom }}"--# Hosts-speedtest_docker_hosts_default: {}-speedtest_docker_hosts_custom: {}-speedtest_docker_hosts: "{{ docker_hosts_common- | combine(speedtest_docker_hosts_default)- | combine(speedtest_docker_hosts_custom) }}"--# Labels-speedtest_docker_labels_default: {}-speedtest_docker_labels_custom: {}-speedtest_docker_labels: "{{ docker_labels_common- | combine(speedtest_docker_labels_default)- | combine(speedtest_docker_labels_custom) }}"+speedtest_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='speedtest') }}:/config"+speedtest_role_docker_volumes_custom: []+speedtest_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='speedtest')+ + lookup('role_var', '_docker_volumes_custom', role='speedtest') }}" # Hostname-speedtest_docker_hostname: "{{ speedtest_name }}"+speedtest_role_docker_hostname: "{{ speedtest_name }}" # Networks-speedtest_docker_networks_alias: "{{ speedtest_name }}"-speedtest_docker_networks_default: []-speedtest_docker_networks_custom: []-speedtest_docker_networks: "{{ docker_networks_common- + speedtest_docker_networks_default- + speedtest_docker_networks_custom }}"--# Capabilities-speedtest_docker_capabilities_default: []-speedtest_docker_capabilities_custom: []-speedtest_docker_capabilities: "{{ speedtest_docker_capabilities_default- + speedtest_docker_capabilities_custom }}"--# Security Opts-speedtest_docker_security_opts_default: []-speedtest_docker_security_opts_custom: []-speedtest_docker_security_opts: "{{ speedtest_docker_security_opts_default- + speedtest_docker_security_opts_custom }}"+speedtest_role_docker_networks_alias: "{{ speedtest_name }}"+speedtest_role_docker_networks_default: []+speedtest_role_docker_networks_custom: []+speedtest_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='speedtest')+ + lookup('role_var', '_docker_networks_custom', role='speedtest') }}" # Restart Policy-speedtest_docker_restart_policy: unless-stopped+speedtest_role_docker_restart_policy: unless-stopped # State-speedtest_docker_state: started+speedtest_role_docker_state: started # Force Kill-speedtest_docker_force_kill: yes+speedtest_role_docker_force_kill: true
modified
roles/speedtest/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/sqlitebrowser/defaults/main.yml
@@ -17,128 +17,85 @@ # Paths ################################ -sqlitebrowser_paths_folder: "{{ sqlitebrowser_name }}"-sqlitebrowser_paths_location: "{{ server_appdata_path }}/{{ sqlitebrowser_paths_folder }}"-sqlitebrowser_paths_folders_list:- - "{{ sqlitebrowser_paths_location }}"+sqlitebrowser_role_paths_folder: "{{ sqlitebrowser_name }}"+sqlitebrowser_role_paths_location: "{{ server_appdata_path }}/{{ sqlitebrowser_role_paths_folder }}"+sqlitebrowser_role_paths_folders_list:+ - "{{ sqlitebrowser_role_paths_location }}" ################################ # Web ################################ -sqlitebrowser_web_subdomain: "{{ sqlitebrowser_name }}"-sqlitebrowser_web_domain: "{{ user.domain }}"-sqlitebrowser_web_port: "3000"-sqlitebrowser_web_url: "{{ 'https://' + (sqlitebrowser_web_subdomain + '.' + sqlitebrowser_web_domain- if (sqlitebrowser_web_subdomain | length > 0)- else sqlitebrowser_web_domain) }}"+sqlitebrowser_role_web_subdomain: "{{ sqlitebrowser_name }}"+sqlitebrowser_role_web_domain: "{{ user.domain }}"+sqlitebrowser_role_web_port: "3000"+sqlitebrowser_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='sqlitebrowser') + '.' + lookup('role_var', '_web_domain', role='sqlitebrowser')+ if (lookup('role_var', '_web_subdomain', role='sqlitebrowser') | length > 0)+ else lookup('role_var', '_web_domain', role='sqlitebrowser')) }}" ################################ # DNS ################################ -sqlitebrowser_dns_record: "{{ sqlitebrowser_web_subdomain }}"-sqlitebrowser_dns_zone: "{{ sqlitebrowser_web_domain }}"-sqlitebrowser_dns_proxy: "{{ dns.proxied }}"+sqlitebrowser_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='sqlitebrowser') }}"+sqlitebrowser_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='sqlitebrowser') }}"+sqlitebrowser_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -sqlitebrowser_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-sqlitebrowser_traefik_middleware_default: "{{ traefik_default_middleware }}"-sqlitebrowser_traefik_middleware_custom: ""-sqlitebrowser_traefik_certresolver: "{{ traefik_default_certresolver }}"-sqlitebrowser_traefik_enabled: true-sqlitebrowser_traefik_api_enabled: false-sqlitebrowser_traefik_api_endpoint: ""-sqlitebrowser_traefik_error_pages_enabled: false+sqlitebrowser_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+sqlitebrowser_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+sqlitebrowser_role_traefik_middleware_custom: ""+sqlitebrowser_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+sqlitebrowser_role_traefik_enabled: true+sqlitebrowser_role_traefik_api_enabled: false+sqlitebrowser_role_traefik_api_endpoint: ""+sqlitebrowser_role_traefik_error_pages_enabled: false ################################ # Docker ################################ # Container-sqlitebrowser_docker_container: "{{ sqlitebrowser_name }}"+sqlitebrowser_role_docker_container: "{{ sqlitebrowser_name }}" # Image-sqlitebrowser_docker_image_pull: true-sqlitebrowser_docker_image_tag: "latest"-sqlitebrowser_docker_image: "lscr.io/linuxserver/sqlitebrowser:{{ sqlitebrowser_docker_image_tag }}"--# Ports-sqlitebrowser_docker_ports_defaults: []-sqlitebrowser_docker_ports_custom: []-sqlitebrowser_docker_ports: "{{ sqlitebrowser_docker_ports_defaults- + sqlitebrowser_docker_ports_custom }}"+sqlitebrowser_role_docker_image_pull: true+sqlitebrowser_role_docker_image_repo: "lscr.io/linuxserver/sqlitebrowser"+sqlitebrowser_role_docker_image_tag: "latest"+sqlitebrowser_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='sqlitebrowser') }}:{{ lookup('role_var', '_docker_image_tag', role='sqlitebrowser') }}" # Envs-sqlitebrowser_docker_envs_default:+sqlitebrowser_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"-sqlitebrowser_docker_envs_custom: {}-sqlitebrowser_docker_envs: "{{ sqlitebrowser_docker_envs_default- | combine(sqlitebrowser_docker_envs_custom) }}"--# Commands-sqlitebrowser_docker_commands_default: []-sqlitebrowser_docker_commands_custom: []-sqlitebrowser_docker_commands: "{{ sqlitebrowser_docker_commands_default- + sqlitebrowser_docker_commands_custom }}"+sqlitebrowser_role_docker_envs_custom: {}+sqlitebrowser_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='sqlitebrowser')+ | combine(lookup('role_var', '_docker_envs_custom', role='sqlitebrowser')) }}" # Volumes-sqlitebrowser_docker_volumes_default:- - "{{ sqlitebrowser_paths_location }}:/config"-sqlitebrowser_docker_volumes_custom: []-sqlitebrowser_docker_volumes: "{{ sqlitebrowser_docker_volumes_default- + sqlitebrowser_docker_volumes_custom }}"--# Devices-sqlitebrowser_docker_devices_default: []-sqlitebrowser_docker_devices_custom: []-sqlitebrowser_docker_devices: "{{ sqlitebrowser_docker_devices_default- + sqlitebrowser_docker_devices_custom }}"--# Hosts-sqlitebrowser_docker_hosts_default: {}-sqlitebrowser_docker_hosts_custom: {}-sqlitebrowser_docker_hosts: "{{ docker_hosts_common- | combine(sqlitebrowser_docker_hosts_default)- | combine(sqlitebrowser_docker_hosts_custom) }}"--# Labels-sqlitebrowser_docker_labels_default: {}-sqlitebrowser_docker_labels_custom: {}-sqlitebrowser_docker_labels: "{{ docker_labels_common- | combine(sqlitebrowser_docker_labels_default)- | combine(sqlitebrowser_docker_labels_custom) }}"+sqlitebrowser_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='sqlitebrowser') }}:/config"+sqlitebrowser_role_docker_volumes_custom: []+sqlitebrowser_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='sqlitebrowser')+ + lookup('role_var', '_docker_volumes_custom', role='sqlitebrowser') }}" # Hostname-sqlitebrowser_docker_hostname: "{{ sqlitebrowser_name }}"+sqlitebrowser_role_docker_hostname: "{{ sqlitebrowser_name }}" # Networks-sqlitebrowser_docker_networks_alias: "{{ sqlitebrowser_name }}"-sqlitebrowser_docker_networks_default: []-sqlitebrowser_docker_networks_custom: []-sqlitebrowser_docker_networks: "{{ docker_networks_common- + sqlitebrowser_docker_networks_default- + sqlitebrowser_docker_networks_custom }}"--# Capabilities-sqlitebrowser_docker_capabilities_default: []-sqlitebrowser_docker_capabilities_custom: []-sqlitebrowser_docker_capabilities: "{{ sqlitebrowser_docker_capabilities_default- + sqlitebrowser_docker_capabilities_custom }}"--# Security Opts-sqlitebrowser_docker_security_opts_default: []-sqlitebrowser_docker_security_opts_custom: []-sqlitebrowser_docker_security_opts: "{{ sqlitebrowser_docker_security_opts_default- + sqlitebrowser_docker_security_opts_custom }}"+sqlitebrowser_role_docker_networks_alias: "{{ sqlitebrowser_name }}"+sqlitebrowser_role_docker_networks_default: []+sqlitebrowser_role_docker_networks_custom: []+sqlitebrowser_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='sqlitebrowser')+ + lookup('role_var', '_docker_networks_custom', role='sqlitebrowser') }}" # Restart Policy-sqlitebrowser_docker_restart_policy: unless-stopped+sqlitebrowser_role_docker_restart_policy: unless-stopped # State-sqlitebrowser_docker_state: started+sqlitebrowser_role_docker_state: started
modified
roles/sqlitebrowser/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/sshwifty/defaults/main.yml
@@ -17,131 +17,88 @@ # Paths ################################ -sshwifty_paths_folder: "{{ sshwifty_name }}"-sshwifty_paths_location: "{{ server_appdata_path }}/{{ sshwifty_paths_folder }}"-sshwifty_paths_folders_list:- - "{{ sshwifty_paths_location }}"- - "{{ sshwifty_paths_location }}/config"-sshwifty_paths_config_location: "{{ sshwifty_paths_location }}/config/sshwifty.conf.json"+sshwifty_role_paths_folder: "{{ sshwifty_name }}"+sshwifty_role_paths_location: "{{ server_appdata_path }}/{{ sshwifty_role_paths_folder }}"+sshwifty_role_paths_folders_list:+ - "{{ sshwifty_role_paths_location }}"+ - "{{ sshwifty_role_paths_location }}/config"+sshwifty_role_paths_config_location: "{{ sshwifty_role_paths_location }}/config/sshwifty.conf.json" ################################ # Web ################################ -sshwifty_web_subdomain: "{{ sshwifty_name }}"-sshwifty_web_domain: "{{ user.domain }}"-sshwifty_web_port: "8182"-sshwifty_web_url: "{{ 'https://' + (sshwifty_web_subdomain + '.' + sshwifty_web_domain- if (sshwifty_web_subdomain | length > 0)- else sshwifty_web_domain) }}"+sshwifty_role_web_subdomain: "{{ sshwifty_name }}"+sshwifty_role_web_domain: "{{ user.domain }}"+sshwifty_role_web_port: "8182"+sshwifty_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='sshwifty') + '.' + lookup('role_var', '_web_domain', role='sshwifty')+ if (lookup('role_var', '_web_subdomain', role='sshwifty') | length > 0)+ else lookup('role_var', '_web_domain', role='sshwifty')) }}" ################################ # DNS ################################ -sshwifty_dns_record: "{{ sshwifty_web_subdomain }}"-sshwifty_dns_zone: "{{ sshwifty_web_domain }}"-sshwifty_dns_proxy: "{{ dns.proxied }}"+sshwifty_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='sshwifty') }}"+sshwifty_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='sshwifty') }}"+sshwifty_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -sshwifty_traefik_sso_middleware: ""-sshwifty_traefik_middleware_default: "{{ traefik_default_middleware }}"-sshwifty_traefik_middleware_custom: ""-sshwifty_traefik_certresolver: "{{ traefik_default_certresolver }}"-sshwifty_traefik_enabled: true-sshwifty_traefik_api_enabled: false-sshwifty_traefik_api_endpoint: ""-sshwifty_traefik_error_pages_enabled: false+sshwifty_role_traefik_sso_middleware: ""+sshwifty_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+sshwifty_role_traefik_middleware_custom: ""+sshwifty_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+sshwifty_role_traefik_enabled: true+sshwifty_role_traefik_api_enabled: false+sshwifty_role_traefik_api_endpoint: ""+sshwifty_role_traefik_error_pages_enabled: false ################################ # Docker ################################ # Container-sshwifty_docker_container: "{{ sshwifty_name }}"+sshwifty_role_docker_container: "{{ sshwifty_name }}" # Image-sshwifty_docker_image_pull: true-sshwifty_docker_image_tag: "latest"-sshwifty_docker_image: "niruix/sshwifty:{{ sshwifty_docker_image_tag }}"--# Ports-sshwifty_docker_ports_defaults: []-sshwifty_docker_ports_custom: []-sshwifty_docker_ports: "{{ sshwifty_docker_ports_defaults- + sshwifty_docker_ports_custom }}"+sshwifty_role_docker_image_pull: true+sshwifty_role_docker_image_repo: "niruix/sshwifty"+sshwifty_role_docker_image_tag: "latest"+sshwifty_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='sshwifty') }}:{{ lookup('role_var', '_docker_image_tag', role='sshwifty') }}" # Envs-sshwifty_docker_envs_default:+sshwifty_role_docker_envs_default: SSHWIFTY_CONFIG: "/config/sshwifty.conf.json"-sshwifty_docker_envs_custom: {}-sshwifty_docker_envs: "{{ sshwifty_docker_envs_default- | combine(sshwifty_docker_envs_custom) }}"--# Commands-sshwifty_docker_commands_default: []-sshwifty_docker_commands_custom: []-sshwifty_docker_commands: "{{ sshwifty_docker_commands_default- + sshwifty_docker_commands_custom }}"+sshwifty_role_docker_envs_custom: {}+sshwifty_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='sshwifty')+ | combine(lookup('role_var', '_docker_envs_custom', role='sshwifty')) }}" # Volumes-sshwifty_docker_volumes_default:- - "{{ sshwifty_paths_location }}/config:/config"-sshwifty_docker_volumes_custom: []-sshwifty_docker_volumes: "{{ sshwifty_docker_volumes_default- + sshwifty_docker_volumes_custom }}"--# Devices-sshwifty_docker_devices_default: []-sshwifty_docker_devices_custom: []-sshwifty_docker_devices: "{{ sshwifty_docker_devices_default- + sshwifty_docker_devices_custom }}"--# Hosts-sshwifty_docker_hosts_default: {}-sshwifty_docker_hosts_custom: {}-sshwifty_docker_hosts: "{{ docker_hosts_common- | combine(sshwifty_docker_hosts_default)- | combine(sshwifty_docker_hosts_custom) }}"--# Labels-sshwifty_docker_labels_default: {}-sshwifty_docker_labels_custom: {}-sshwifty_docker_labels: "{{ docker_labels_common- | combine(sshwifty_docker_labels_default)- | combine(sshwifty_docker_labels_custom) }}"+sshwifty_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='sshwifty') }}/config:/config"+sshwifty_role_docker_volumes_custom: []+sshwifty_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='sshwifty')+ + lookup('role_var', '_docker_volumes_custom', role='sshwifty') }}" # Hostname-sshwifty_docker_hostname: "{{ sshwifty_name }}"+sshwifty_role_docker_hostname: "{{ sshwifty_name }}" # Networks-sshwifty_docker_networks_alias: "{{ sshwifty_name }}"-sshwifty_docker_networks_default: []-sshwifty_docker_networks_custom: []-sshwifty_docker_networks: "{{ docker_networks_common- + sshwifty_docker_networks_default- + sshwifty_docker_networks_custom }}"--# Capabilities-sshwifty_docker_capabilities_default: []-sshwifty_docker_capabilities_custom: []-sshwifty_docker_capabilities: "{{ sshwifty_docker_capabilities_default- + sshwifty_docker_capabilities_custom }}"--# Security Opts-sshwifty_docker_security_opts_default: []-sshwifty_docker_security_opts_custom: []-sshwifty_docker_security_opts: "{{ sshwifty_docker_security_opts_default- + sshwifty_docker_security_opts_custom }}"+sshwifty_role_docker_networks_alias: "{{ sshwifty_name }}"+sshwifty_role_docker_networks_default: []+sshwifty_role_docker_networks_custom: []+sshwifty_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='sshwifty')+ + lookup('role_var', '_docker_networks_custom', role='sshwifty') }}" # Restart Policy-sshwifty_docker_restart_policy: unless-stopped+sshwifty_role_docker_restart_policy: unless-stopped # State-sshwifty_docker_state: started+sshwifty_role_docker_state: started # User-sshwifty_docker_user: "{{ uid }}:{{ gid }}"+sshwifty_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/sshwifty/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/sshwifty/tasks/subtasks/settings.yml
@@ -7,18 +7,18 @@ # GNU General Public License v3.0 # ######################################################################### ----- name: Settings | Check if `{{ sshwifty_paths_config_location | basename }}` exists+- name: Settings | Check if `{{ sshwifty_role_paths_config_location | basename }}` exists ansible.builtin.stat:- path: "{{ sshwifty_paths_config_location }}"+ path: "{{ sshwifty_role_paths_config_location }}" register: sshwifty_config -- name: Settings | New `{{ sshwifty_paths_config_location | basename }}` tasks+- name: Settings | New `{{ sshwifty_role_paths_config_location | basename }}` tasks when: not sshwifty_config.stat.exists block:- - name: Settings | Import default `{{ sshwifty_paths_config_location | basename }}`+ - name: Settings | Import default `{{ sshwifty_role_paths_config_location | basename }}` ansible.builtin.template: src: sshwifty.conf.json.j2- dest: "{{ sshwifty_paths_config_location }}"+ dest: "{{ sshwifty_role_paths_config_location }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"
modified
roles/stash/defaults/main.yml
@@ -17,136 +17,93 @@ # Paths ################################ -stash_paths_folder: "{{ stash_name }}"-stash_paths_location: "{{ server_appdata_path }}/{{ stash_paths_folder }}"-stash_paths_folders_list:- - "{{ stash_paths_location }}"- - "{{ stash_paths_location }}/config"- - "{{ stash_paths_location }}/metadata"- - "{{ stash_paths_location }}/cache"- - "{{ stash_paths_location }}/generated"+stash_role_paths_folder: "{{ stash_name }}"+stash_role_paths_location: "{{ server_appdata_path }}/{{ stash_role_paths_folder }}"+stash_role_paths_folders_list:+ - "{{ stash_role_paths_location }}"+ - "{{ stash_role_paths_location }}/config"+ - "{{ stash_role_paths_location }}/metadata"+ - "{{ stash_role_paths_location }}/cache"+ - "{{ stash_role_paths_location }}/generated" - "/mnt/unionfs/Media/Adult" ################################ # Web ################################ -stash_web_subdomain: "{{ stash_name }}"-stash_web_domain: "{{ user.domain }}"-stash_web_port: "9999"-stash_web_url: "{{ 'https://' + (stash_web_subdomain + '.' + stash_web_domain- if (stash_web_subdomain | length > 0)- else stash_web_domain) }}"+stash_role_web_subdomain: "{{ stash_name }}"+stash_role_web_domain: "{{ user.domain }}"+stash_role_web_port: "9999"+stash_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='stash') + '.' + lookup('role_var', '_web_domain', role='stash')+ if (lookup('role_var', '_web_subdomain', role='stash') | length > 0)+ else lookup('role_var', '_web_domain', role='stash')) }}" ################################ # DNS ################################ -stash_dns_record: "{{ stash_web_subdomain }}"-stash_dns_zone: "{{ stash_web_domain }}"-stash_dns_proxy: "{{ dns.proxied }}"+stash_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='stash') }}"+stash_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='stash') }}"+stash_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -stash_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-stash_traefik_middleware_default: "{{ traefik_default_middleware }}"-stash_traefik_middleware_custom: ""-stash_traefik_certresolver: "{{ traefik_default_certresolver }}"-stash_traefik_enabled: true-stash_traefik_api_enabled: false-stash_traefik_api_endpoint: ""+stash_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+stash_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+stash_role_traefik_middleware_custom: ""+stash_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+stash_role_traefik_enabled: true+stash_role_traefik_api_enabled: false+stash_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-stash_docker_container: "{{ stash_name }}"+stash_role_docker_container: "{{ stash_name }}" # Image-stash_docker_image_pull: true-stash_docker_image_tag: "latest"-stash_docker_image: "ghcr.io/hotio/stash:{{ stash_docker_image_tag }}"--# Ports-stash_docker_ports_defaults: []-stash_docker_ports_custom: []-stash_docker_ports: "{{ stash_docker_ports_defaults- + stash_docker_ports_custom }}"+stash_role_docker_image_pull: true+stash_role_docker_image_repo: "ghcr.io/hotio/stash"+stash_role_docker_image_tag: "latest"+stash_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='stash') }}:{{ lookup('role_var', '_docker_image_tag', role='stash') }}" # Envs-stash_docker_envs_default:+stash_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"-stash_docker_envs_custom: {}-stash_docker_envs: "{{ stash_docker_envs_default- | combine(stash_docker_envs_custom) }}"--# Commands-stash_docker_commands_default: []-stash_docker_commands_custom: []-stash_docker_commands: "{{ stash_docker_commands_default- + stash_docker_commands_custom }}"+stash_role_docker_envs_custom: {}+stash_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='stash')+ | combine(lookup('role_var', '_docker_envs_custom', role='stash')) }}" # Volumes-stash_docker_volumes_default:- - "{{ stash_paths_location }}/config:/config"- - "{{ stash_paths_location }}/metadata:/metadata"- - "{{ stash_paths_location }}/cache:/cache"- - "{{ stash_paths_location }}/generated:/generated"+stash_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='stash') }}/config:/config"+ - "{{ lookup('role_var', '_paths_location', role='stash') }}/metadata:/metadata"+ - "{{ lookup('role_var', '_paths_location', role='stash') }}/cache:/cache"+ - "{{ lookup('role_var', '_paths_location', role='stash') }}/generated:/generated" - "/mnt/unionfs/Media/Adult:/data"-stash_docker_volumes_custom: []-stash_docker_volumes: "{{ stash_docker_volumes_default- + stash_docker_volumes_custom }}"--# Devices-stash_docker_devices_default: []-stash_docker_devices_custom: []-stash_docker_devices: "{{ stash_docker_devices_default- + stash_docker_devices_custom }}"--# Hosts-stash_docker_hosts_default: {}-stash_docker_hosts_custom: {}-stash_docker_hosts: "{{ docker_hosts_common- | combine(stash_docker_hosts_default)- | combine(stash_docker_hosts_custom) }}"--# Labels-stash_docker_labels_default: {}-stash_docker_labels_custom: {}-stash_docker_labels: "{{ docker_labels_common- | combine(stash_docker_labels_default)- | combine(stash_docker_labels_custom) }}"+stash_role_docker_volumes_custom: []+stash_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='stash')+ + lookup('role_var', '_docker_volumes_custom', role='stash') }}" # Hostname-stash_docker_hostname: "{{ stash_name }}"+stash_role_docker_hostname: "{{ stash_name }}" # Networks-stash_docker_networks_alias: "{{ stash_name }}"-stash_docker_networks_default: []-stash_docker_networks_custom: []-stash_docker_networks: "{{ docker_networks_common- + stash_docker_networks_default- + stash_docker_networks_custom }}"--# Capabilities-stash_docker_capabilities_default: []-stash_docker_capabilities_custom: []-stash_docker_capabilities: "{{ stash_docker_capabilities_default- + stash_docker_capabilities_custom }}"--# Security Opts-stash_docker_security_opts_default: []-stash_docker_security_opts_custom: []-stash_docker_security_opts: "{{ stash_docker_security_opts_default- + stash_docker_security_opts_custom }}"+stash_role_docker_networks_alias: "{{ stash_name }}"+stash_role_docker_networks_default: []+stash_role_docker_networks_custom: []+stash_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='stash')+ + lookup('role_var', '_docker_networks_custom', role='stash') }}" # Restart Policy-stash_docker_restart_policy: unless-stopped+stash_role_docker_restart_policy: unless-stopped # State-stash_docker_state: started+stash_role_docker_state: started
modified
roles/stash/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -22,11 +22,11 @@ - name: Docker Devices Task ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/set_docker_devices_variable.yml"- when: gpu.intel or use_nvidia+ when: use_intel or use_nvidia - name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" - name: "Set auth entries in config" ansible.builtin.import_tasks: "subtasks/auth.yml"- when: (stash_traefik_sso_middleware | length > 0) and (not continuous_integration)+ when: (stash_role_traefik_sso_middleware | length > 0) and (not continuous_integration)
modified
roles/stash/tasks/subtasks/auth.yml
@@ -9,18 +9,18 @@ --- - name: Auth | Check if 'config.yml' exists ansible.builtin.stat:- path: "{{ stash_paths_location }}/config/config.yml"+ path: "{{ stash_role_paths_location }}/config/config.yml" register: stash_config - name: Auth | Print Message ansible.builtin.debug: msg:- - "Please go to {{ stash_web_url }} and complete the initial setup."+ - "Please go to {{ stash_role_web_url }} and complete the initial setup." - "You have 10 minutes to finish." - name: Auth | Wait for 'config.yml' to be created ansible.builtin.wait_for:- path: "{{ stash_paths_location }}/config/config.yml"+ path: "{{ stash_role_paths_location }}/config/config.yml" state: present timeout: 600 @@ -29,13 +29,13 @@ - name: Allow public access without auth ansible.builtin.shell: |- yyq -i '.dangerous_allow_public_without_auth = "true"' {{ stash_paths_location }}/config/config.yml+ yyq -i '.dangerous_allow_public_without_auth = "true"' {{ stash_role_paths_location }}/config/config.yml become: true become_user: "{{ user.name }}" - name: Remove tripwire ansible.builtin.shell: |- yyq -i 'del(.security_tripwire_accessed_from_public_internet)' {{ stash_paths_location }}/config/config.yml+ yyq -i 'del(.security_tripwire_accessed_from_public_internet)' {{ stash_role_paths_location }}/config/config.yml become: true become_user: "{{ user.name }}"
modified
roles/suwayomi/defaults/main.yml
@@ -1,11 +1,11 @@-##########################################################################-# Title: Sandbox: Suwayomi | Default Variables #-# Author(s): JohnClementine #-# URL: https://github.com/saltyorg/Sandbox #-# -- #-##########################################################################-# GNU General Public License v3.0 #-##########################################################################+#########################################################################+# Title: Sandbox: Suwayomi #+# Author(s): JohnClementine #+# URL: https://github.com/saltyorg/Sandbox #+# -- #+#########################################################################+# GNU General Public License v3.0 #+######################################################################### --- ################################ # Basics@@ -17,137 +17,136 @@ # Paths ################################ -suwayomi_paths_folder: "{{ suwayomi_name }}"-suwayomi_paths_location: "{{ server_appdata_path }}/{{ suwayomi_paths_folder }}"-suwayomi_paths_config_location: "{{ suwayomi_paths_location }}/server.conf"-suwayomi_paths_folders_list:- - "{{ suwayomi_paths_location }}"- - "/mnt/local/Media/Comics"+suwayomi_role_paths_folder: "{{ suwayomi_name }}"+suwayomi_role_paths_location: "{{ server_appdata_path }}/{{ suwayomi_role_paths_folder }}"+suwayomi_role_paths_config_location: "{{ suwayomi_role_paths_location }}/server.conf"+suwayomi_role_paths_folders_list:+ - "{{ suwayomi_role_paths_location }}"+ - "{{ server_local_folder_path }}/Media/Comics" ################################ # Web ################################ -suwayomi_web_subdomain: "{{ suwayomi_name }}"-suwayomi_web_domain: "{{ user.domain }}"-suwayomi_web_port: "4567"-suwayomi_web_url: "{{ 'https://' + (suwayomi_web_subdomain + '.' + suwayomi_web_domain- if (suwayomi_web_subdomain | length > 0)- else suwayomi_web_domain) }}"+suwayomi_role_web_subdomain: "{{ suwayomi_name }}"+suwayomi_role_web_domain: "{{ user.domain }}"+suwayomi_role_web_port: "4567"+suwayomi_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain') + '.' + lookup('role_var', '_web_domain')+ if (lookup('role_var', '_web_subdomain') | length > 0)+ else lookup('role_var', '_web_domain')) }}" ################################ # DNS ################################ -suwayomi_dns_record: "{{ suwayomi_web_subdomain }}"-suwayomi_dns_zone: "{{ suwayomi_web_domain }}"-suwayomi_dns_proxy: "{{ dns.proxied }}"+suwayomi_role_dns_record: "{{ lookup('role_var', '_web_subdomain') }}"+suwayomi_role_dns_zone: "{{ lookup('role_var', '_web_domain') }}"+suwayomi_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -suwayomi_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-suwayomi_traefik_middleware_default: "{{ traefik_default_middleware }}"-suwayomi_traefik_middleware_custom: ""-suwayomi_traefik_certresolver: "{{ traefik_default_certresolver }}"-suwayomi_traefik_enabled: true-suwayomi_traefik_api_enabled: false-suwayomi_traefik_api_endpoint: ""+suwayomi_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+suwayomi_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+suwayomi_role_traefik_middleware_custom: ""+suwayomi_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+suwayomi_role_traefik_enabled: true+suwayomi_role_traefik_api_enabled: false+suwayomi_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-suwayomi_docker_container: "{{ suwayomi_name }}"+suwayomi_role_docker_container: "{{ suwayomi_name }}" # Image-suwayomi_docker_image_pull: true-suwayomi_docker_image_repo: "ghcr.io/suwayomi/suwayomi-server"-suwayomi_docker_image_tag: "latest"-suwayomi_docker_image: "{{ suwayomi_docker_image_repo- + ':' + suwayomi_docker_image_tag }}"+suwayomi_role_docker_image_pull: true+suwayomi_role_docker_image_repo: "ghcr.io/suwayomi/suwayomi-server"+suwayomi_role_docker_image_tag: "latest"+suwayomi_role_docker_image: "{{ lookup('role_var', '_docker_image_repo') }}:{{ lookup('role_var', '_docker_image_tag') }}" # Ports-suwayomi_docker_ports_defaults: []-suwayomi_docker_ports_custom: []-suwayomi_docker_ports: "{{ suwayomi_docker_ports_defaults- + suwayomi_docker_ports_custom }}"+suwayomi_role_docker_ports_defaults: []+suwayomi_role_docker_ports_custom: []+suwayomi_role_docker_ports: "{{ lookup('role_var', '_docker_ports_defaults')+ + lookup('role_var', '_docker_ports_custom') }}" # Envs-suwayomi_docker_envs_default:+suwayomi_role_docker_envs_default: TZ: "{{ tz }}"-suwayomi_docker_envs_custom: {}-suwayomi_docker_envs: "{{ suwayomi_docker_envs_default- | combine(suwayomi_docker_envs_custom) }}"+suwayomi_role_docker_envs_custom: {}+suwayomi_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default')+ | combine(lookup('role_var', '_docker_envs_custom')) }}" # Commands-suwayomi_docker_commands_default: []-suwayomi_docker_commands_custom: []-suwayomi_docker_commands: "{{ suwayomi_docker_commands_default- + suwayomi_docker_commands_custom }}"+suwayomi_role_docker_commands_default: []+suwayomi_role_docker_commands_custom: []+suwayomi_role_docker_commands: "{{ lookup('role_var', '_docker_commands_default')+ + lookup('role_var', '_docker_commands_custom') }}" # Volumes-suwayomi_docker_volumes_default:- - "{{ suwayomi_paths_location }}:/home/suwayomi/.local/share/Tachidesk"+suwayomi_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location') }}:/home/suwayomi/.local/share/Tachidesk" - "/mnt/unionfs/Media/Comics:/comics"-suwayomi_docker_volumes_custom: []-suwayomi_docker_volumes: "{{ suwayomi_docker_volumes_default- + suwayomi_docker_volumes_custom }}"+suwayomi_role_docker_volumes_custom: []+suwayomi_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default')+ + lookup('role_var', '_docker_volumes_custom') }}" # Devices-suwayomi_docker_devices_default: []-suwayomi_docker_devices_custom: []-suwayomi_docker_devices: "{{ suwayomi_docker_devices_default- + suwayomi_docker_devices_custom }}"+suwayomi_role_docker_devices_default: []+suwayomi_role_docker_devices_custom: []+suwayomi_role_docker_devices: "{{ lookup('role_var', '_docker_devices_default')+ + lookup('role_var', '_docker_devices_custom') }}" # Hosts-suwayomi_docker_hosts_default: {}-suwayomi_docker_hosts_custom: {}-suwayomi_docker_hosts: "{{ docker_hosts_common- | combine(suwayomi_docker_hosts_default)- | combine(suwayomi_docker_hosts_custom) }}"+suwayomi_role_docker_hosts_default: {}+suwayomi_role_docker_hosts_custom: {}+suwayomi_role_docker_hosts: "{{ docker_hosts_common+ | combine(lookup('role_var', '_docker_hosts_default'))+ | combine(lookup('role_var', '_docker_hosts_custom')) }}" # Labels-suwayomi_docker_labels_default: {}-suwayomi_docker_labels_custom: {}-suwayomi_docker_labels: "{{ docker_labels_common- | combine(suwayomi_docker_labels_default)- | combine(suwayomi_docker_labels_custom) }}"+suwayomi_role_docker_labels_default: {}+suwayomi_role_docker_labels_custom: {}+suwayomi_role_docker_labels: "{{ docker_labels_common+ | combine(lookup('role_var', '_docker_labels_default'))+ | combine(lookup('role_var', '_docker_labels_custom')) }}" # Hostname-suwayomi_docker_hostname: "{{ suwayomi_name }}"+suwayomi_role_docker_hostname: "{{ suwayomi_name }}" # Network Mode-suwayomi_docker_network_mode_default: "{{ docker_networks_name_common }}"-suwayomi_docker_network_mode: "{{ suwayomi_docker_network_mode_default }}"+suwayomi_role_docker_network_mode_default: "{{ docker_networks_name_common }}"+suwayomi_role_docker_network_mode: "{{ lookup('role_var', '_docker_network_mode_default') }}" # Networks-suwayomi_docker_networks_alias: "{{ suwayomi_name }}"-suwayomi_docker_networks_default: []-suwayomi_docker_networks_custom: []-suwayomi_docker_networks: "{{ docker_networks_common- + suwayomi_docker_networks_default- + suwayomi_docker_networks_custom }}"+suwayomi_role_docker_networks_alias: "{{ suwayomi_name }}"+suwayomi_role_docker_networks_default: []+suwayomi_role_docker_networks_custom: []+suwayomi_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default')+ + lookup('role_var', '_docker_networks_custom') }}" # Capabilities-suwayomi_docker_capabilities_default: []-suwayomi_docker_capabilities_custom: []-suwayomi_docker_capabilities: "{{ suwayomi_docker_capabilities_default- + suwayomi_docker_capabilities_custom }}"+suwayomi_role_docker_capabilities_default: []+suwayomi_role_docker_capabilities_custom: []+suwayomi_role_docker_capabilities: "{{ lookup('role_var', '_docker_capabilities_default')+ + lookup('role_var', '_docker_capabilities_custom') }}" # Security Opts-suwayomi_docker_security_opts_default: []-suwayomi_docker_security_opts_custom: []-suwayomi_docker_security_opts: "{{ suwayomi_docker_security_opts_default- + suwayomi_docker_security_opts_custom }}"+suwayomi_role_docker_security_opts_default: []+suwayomi_role_docker_security_opts_custom: []+suwayomi_role_docker_security_opts: "{{ lookup('role_var', '_docker_security_opts_default')+ + lookup('role_var', '_docker_security_opts_custom') }}" # Restart Policy-suwayomi_docker_restart_policy: unless-stopped+suwayomi_role_docker_restart_policy: unless-stopped # State-suwayomi_docker_state: started+suwayomi_role_docker_state: started # User-suwayomi_docker_user: "{{ uid }}:{{ gid }}"+suwayomi_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/suwayomi/tasks/main.yml
@@ -1,6 +1,6 @@ #########################################################################-# Title: Sandbox: Suwayomi | Default Variables #-# Author(s): JohnClementine #+# Title: Sandbox: Suwayomi #+# Author(s): JohnClementine # # URL: https://github.com/saltyorg/Sandbox # # -- # #########################################################################@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ suwayomi_dns_record }}"- dns_zone: "{{ suwayomi_dns_zone }}"- dns_proxy: "{{ suwayomi_dns_proxy }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -20,15 +20,15 @@ - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" -- name: Check if `{{ suwayomi_paths_config_location | basename }}` exists+- name: Check if `{{ lookup('role_var', '_paths_config_location') | basename }}` exists ansible.builtin.stat:- path: "{{ suwayomi_paths_config_location }}"+ path: "{{ lookup('role_var', '_paths_config_location') }}" register: suwayomi_config - name: Import default server.conf ansible.builtin.template: src: server.conf.j2- dest: "{{ suwayomi_paths_config_location }}"+ dest: "{{ lookup('role_var', '_paths_config_location') }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"
modified
roles/syncthing/defaults/main.yml
@@ -17,130 +17,93 @@ # Paths ################################ -syncthing_paths_folder: "{{ syncthing_name }}"-syncthing_paths_location: "{{ server_appdata_path }}/{{ syncthing_paths_folder }}"-syncthing_paths_folders_list:- - "{{ syncthing_paths_location }}"+syncthing_role_paths_folder: "{{ syncthing_name }}"+syncthing_role_paths_location: "{{ server_appdata_path }}/{{ syncthing_role_paths_folder }}"+syncthing_role_paths_folders_list:+ - "{{ syncthing_role_paths_location }}" ################################ # Web ################################ -syncthing_web_subdomain: "{{ syncthing_name }}"-syncthing_web_domain: "{{ user.domain }}"-syncthing_web_port: "8384"-syncthing_web_url: "{{ 'https://' + (syncthing_web_subdomain + '.' + syncthing_web_domain- if (syncthing_web_subdomain | length > 0)- else syncthing_web_domain) }}"+syncthing_role_web_subdomain: "{{ syncthing_name }}"+syncthing_role_web_domain: "{{ user.domain }}"+syncthing_role_web_port: "8384"+syncthing_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='syncthing') + '.' + lookup('role_var', '_web_domain', role='syncthing')+ if (lookup('role_var', '_web_subdomain', role='syncthing') | length > 0)+ else lookup('role_var', '_web_domain', role='syncthing')) }}" ################################ # DNS ################################ -syncthing_dns_record: "{{ syncthing_web_subdomain }}"-syncthing_dns_zone: "{{ syncthing_web_domain }}"-syncthing_dns_proxy: "{{ dns.proxied }}"+syncthing_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='syncthing') }}"+syncthing_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='syncthing') }}"+syncthing_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -syncthing_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-syncthing_traefik_middleware_default: "{{ traefik_default_middleware }}"-syncthing_traefik_middleware_custom: ""-syncthing_traefik_certresolver: "{{ traefik_default_certresolver }}"-syncthing_traefik_enabled: true-syncthing_traefik_api_enabled: false-syncthing_traefik_api_endpoint: ""+syncthing_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+syncthing_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+syncthing_role_traefik_middleware_custom: ""+syncthing_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+syncthing_role_traefik_enabled: true+syncthing_role_traefik_api_enabled: false+syncthing_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-syncthing_docker_container: "{{ syncthing_name }}"+syncthing_role_docker_container: "{{ syncthing_name }}" # Image-syncthing_docker_image_pull: true-syncthing_docker_image_tag: "latest"-syncthing_docker_image: "lscr.io/linuxserver/syncthing:{{ syncthing_docker_image_tag }}"+syncthing_role_docker_image_pull: true+syncthing_role_docker_image_repo: "lscr.io/linuxserver/syncthing"+syncthing_role_docker_image_tag: "latest"+syncthing_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='syncthing') }}:{{ lookup('role_var', '_docker_image_tag', role='syncthing') }}" # Ports-syncthing_docker_ports_defaults:+syncthing_role_docker_ports_default: - "22000:22000/tcp" - "22000:22000/udp" - "21027:21027/udp"-syncthing_docker_ports_custom: []-syncthing_docker_ports: "{{ syncthing_docker_ports_defaults- + syncthing_docker_ports_custom }}"+syncthing_role_docker_ports_custom: []+syncthing_role_docker_ports: "{{ lookup('role_var', '_docker_ports_default', role='syncthing')+ + lookup('role_var', '_docker_ports_custom', role='syncthing') }}" # Envs-syncthing_docker_envs_default:+syncthing_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-syncthing_docker_envs_custom: {}-syncthing_docker_envs: "{{ syncthing_docker_envs_default- | combine(syncthing_docker_envs_custom) }}"--# Commands-syncthing_docker_commands_default: []-syncthing_docker_commands_custom: []-syncthing_docker_commands: "{{ syncthing_docker_commands_default- + syncthing_docker_commands_custom }}"+syncthing_role_docker_envs_custom: {}+syncthing_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='syncthing')+ | combine(lookup('role_var', '_docker_envs_custom', role='syncthing')) }}" # Volumes-syncthing_docker_volumes_default:- - "{{ syncthing_paths_location }}:/config"-syncthing_docker_volumes_custom: []-syncthing_docker_volumes: "{{ syncthing_docker_volumes_default- + syncthing_docker_volumes_custom }}"--# Devices-syncthing_docker_devices_default: []-syncthing_docker_devices_custom: []-syncthing_docker_devices: "{{ syncthing_docker_devices_default- + syncthing_docker_devices_custom }}"--# Hosts-syncthing_docker_hosts_default: {}-syncthing_docker_hosts_custom: {}-syncthing_docker_hosts: "{{ docker_hosts_common- | combine(syncthing_docker_hosts_default)- | combine(syncthing_docker_hosts_custom) }}"--# Labels-syncthing_docker_labels_default: {}-syncthing_docker_labels_custom: {}-syncthing_docker_labels: "{{ docker_labels_common- | combine(syncthing_docker_labels_default)- | combine(syncthing_docker_labels_custom) }}"+syncthing_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='syncthing') }}:/config"+syncthing_role_docker_volumes_custom: []+syncthing_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='syncthing')+ + lookup('role_var', '_docker_volumes_custom', role='syncthing') }}" # Hostname-syncthing_docker_hostname: "{{ syncthing_name }}"+syncthing_role_docker_hostname: "{{ syncthing_name }}" # Networks-syncthing_docker_networks_alias: "{{ syncthing_name }}"-syncthing_docker_networks_default: []-syncthing_docker_networks_custom: []-syncthing_docker_networks: "{{ docker_networks_common- + syncthing_docker_networks_default- + syncthing_docker_networks_custom }}"--# Capabilities-syncthing_docker_capabilities_default: []-syncthing_docker_capabilities_custom: []-syncthing_docker_capabilities: "{{ syncthing_docker_capabilities_default- + syncthing_docker_capabilities_custom }}"--# Security Opts-syncthing_docker_security_opts_default: []-syncthing_docker_security_opts_custom: []-syncthing_docker_security_opts: "{{ syncthing_docker_security_opts_default- + syncthing_docker_security_opts_custom }}"+syncthing_role_docker_networks_alias: "{{ syncthing_name }}"+syncthing_role_docker_networks_default: []+syncthing_role_docker_networks_custom: []+syncthing_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='syncthing')+ + lookup('role_var', '_docker_networks_custom', role='syncthing') }}" # Restart Policy-syncthing_docker_restart_policy: unless-stopped+syncthing_role_docker_restart_policy: unless-stopped # State-syncthing_docker_state: started+syncthing_role_docker_state: started
modified
roles/syncthing/tasks/main.yml
@@ -10,15 +10,12 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container- community.docker.docker_container:- name: "{{ lookup('vars', role_name + '_docker_container') }}"- state: absent- container_default_behavior: compatibility+ ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"
modified
roles/tandoor/defaults/main.yml
@@ -14,146 +14,123 @@ tandoor_name: tandoor ################################+# Settings+################################++tandoor_role_postgres_deploy: true+tandoor_role_postgres_name: "{{ tandoor_name }}-postgres"+tandoor_role_postgres_user: "{{ postgres_role_docker_env_user }}"+tandoor_role_postgres_password: "{{ postgres_role_docker_env_password }}"+tandoor_role_postgres_docker_env_db: "{{ tandoor_name }}"+tandoor_role_postgres_docker_image_tag: "17-alpine"+tandoor_role_postgres_docker_image_repo: "postgres"+tandoor_role_postgres_docker_healthcheck:+ test: ["CMD-SHELL", "pg_isready -d {{ lookup('role_var', '_postgres_docker_env_db', role='tandoor') }} -U {{ postgres_role_docker_env_user }}"]+ start_period: 20s+ interval: 30s+ retries: 5+ timeout: 5s+tandoor_role_postgres_paths_folder: "{{ tandoor_name }}"+tandoor_role_postgres_paths_location: "{{ server_appdata_path }}/{{ tandoor_role_postgres_paths_folder }}/postgres"++################################ # Paths ################################ -tandoor_paths_folder: "{{ tandoor_name }}"-tandoor_paths_location: "{{ server_appdata_path }}/{{ tandoor_paths_folder }}"-tandoor_paths_folders_list:- - "{{ tandoor_paths_location }}"- - "{{ tandoor_paths_location }}/staticfiles"- - "{{ tandoor_paths_location }}/mediafiles"+tandoor_role_paths_folder: "{{ tandoor_name }}"+tandoor_role_paths_location: "{{ server_appdata_path }}/{{ tandoor_role_paths_folder }}"+tandoor_role_paths_folders_list:+ - "{{ tandoor_role_paths_location }}"+ - "{{ tandoor_role_paths_location }}/staticfiles"+ - "{{ tandoor_role_paths_location }}/mediafiles" ################################ # Web ################################ -tandoor_web_subdomain: "{{ tandoor_name }}"-tandoor_web_domain: "{{ user.domain }}"-tandoor_web_port: "80"-tandoor_web_url: "{{ 'https://' + (tandoor_web_subdomain + '.' + tandoor_web_domain- if (tandoor_web_subdomain | length > 0)- else tandoor_web_domain) }}"+tandoor_role_web_subdomain: "{{ tandoor_name }}"+tandoor_role_web_domain: "{{ user.domain }}"+tandoor_role_web_port: "80"+tandoor_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='tandoor') + '.' + lookup('role_var', '_web_domain', role='tandoor')+ if (lookup('role_var', '_web_subdomain', role='tandoor') | length > 0)+ else lookup('role_var', '_web_domain', role='tandoor')) }}" ################################ # DNS ################################ -tandoor_dns_record: "{{ tandoor_web_subdomain }}"-tandoor_dns_zone: "{{ tandoor_web_domain }}"-tandoor_dns_proxy: "{{ dns.proxied }}"+tandoor_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='tandoor') }}"+tandoor_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='tandoor') }}"+tandoor_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -tandoor_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-tandoor_traefik_middleware_default: "{{ traefik_default_middleware }}"-tandoor_traefik_middleware_custom: ""-tandoor_traefik_certresolver: "{{ traefik_default_certresolver }}"-tandoor_traefik_enabled: true-tandoor_traefik_api_enabled: false-tandoor_traefik_api_endpoint: ""+tandoor_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+tandoor_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+tandoor_role_traefik_middleware_custom: ""+tandoor_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+tandoor_role_traefik_enabled: true+tandoor_role_traefik_api_enabled: false+tandoor_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-tandoor_docker_container: "{{ tandoor_name }}"+tandoor_role_docker_container: "{{ tandoor_name }}" # Image-tandoor_docker_image_pull: true-tandoor_docker_image_tag: "latest"-tandoor_docker_image: "vabene1111/recipes:{{ tandoor_docker_image_tag }}"--# Ports-tandoor_docker_ports_defaults: []-tandoor_docker_ports_custom: []-tandoor_docker_ports: "{{ tandoor_docker_ports_defaults- + tandoor_docker_ports_custom }}"+tandoor_role_docker_image_pull: true+tandoor_role_docker_image_tag: "latest"+tandoor_role_docker_image_repo: "vabene1111/recipes"+tandoor_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='tandoor') }}:{{ lookup('role_var', '_docker_image_tag', role='tandoor') }}" # Envs-tandoor_docker_envs_default:+tandoor_role_docker_envs_default: TZ: "{{ tz }}" SECRET_KEY: "{{ tandoor_saltbox_facts.facts.secret_key }}" DB_ENGINE: "django.db.backends.postgresql"- POSTGRES_HOST: "postgres"+ POSTGRES_HOST: "{{ lookup('role_var', '_postgres_name', role='tandoor') }}" POSTGRES_PORT: "5432"- POSTGRES_USER: "{{ postgres_docker_env_user }}"- POSTGRES_PASSWORD: "{{ postgres_docker_env_password }}"- POSTGRES_DB: "{{ postgres_docker_env_db }}"+ POSTGRES_USER: "{{ lookup('role_var', '_postgres_user', role='tandoor') }}"+ POSTGRES_PASSWORD: "{{ lookup('role_var', '_postgres_password', role='tandoor') }}"+ POSTGRES_DB: "{{ lookup('role_var', '_postgres_docker_env_db', role='tandoor') }}" DEBUG: "0" GUNICORN_MEDIA: "1" REMOTE_USER_AUTH: "1"-tandoor_docker_envs_custom: {}-tandoor_docker_envs: "{{ tandoor_docker_envs_default- | combine(tandoor_docker_envs_custom) }}"--# Commands-tandoor_docker_commands_default: []-tandoor_docker_commands_custom: []-tandoor_docker_commands: "{{ tandoor_docker_commands_default- + tandoor_docker_commands_custom }}"+tandoor_role_docker_envs_custom: {}+tandoor_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='tandoor')+ | combine(lookup('role_var', '_docker_envs_custom', role='tandoor')) }}" # Volumes-tandoor_docker_volumes_default:- - "{{ tandoor_paths_location }}/staticfiles:/opt/recipes/staticfiles"- - "{{ tandoor_paths_location }}/mediafiles:/opt/recipes/mediafiles"-tandoor_docker_volumes_custom: []-tandoor_docker_volumes: "{{ tandoor_docker_volumes_default- + tandoor_docker_volumes_custom }}"--# Devices-tandoor_docker_devices_default: []-tandoor_docker_devices_custom: []-tandoor_docker_devices: "{{ tandoor_docker_devices_default- + tandoor_docker_devices_custom }}"--# Hosts-tandoor_docker_hosts_default: {}-tandoor_docker_hosts_custom: {}-tandoor_docker_hosts: "{{ docker_hosts_common- | combine(tandoor_docker_hosts_default)- | combine(tandoor_docker_hosts_custom) }}"--# Labels-tandoor_docker_labels_default: {}-tandoor_docker_labels_custom: {}-tandoor_docker_labels: "{{ docker_labels_common- | combine(tandoor_docker_labels_default)- | combine(tandoor_docker_labels_custom) }}"+tandoor_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='tandoor') }}/staticfiles:/opt/recipes/staticfiles"+ - "{{ lookup('role_var', '_paths_location', role='tandoor') }}/mediafiles:/opt/recipes/mediafiles"+tandoor_role_docker_volumes_custom: []+tandoor_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='tandoor')+ + lookup('role_var', '_docker_volumes_custom', role='tandoor') }}" # Hostname-tandoor_docker_hostname: "{{ tandoor_name }}"+tandoor_role_docker_hostname: "{{ tandoor_name }}" # Networks-tandoor_docker_networks_alias: "{{ tandoor_name }}"-tandoor_docker_networks_default: []-tandoor_docker_networks_custom: []-tandoor_docker_networks: "{{ docker_networks_common- + tandoor_docker_networks_default- + tandoor_docker_networks_custom }}"--# Capabilities-tandoor_docker_capabilities_default: []-tandoor_docker_capabilities_custom: []-tandoor_docker_capabilities: "{{ tandoor_docker_capabilities_default- + tandoor_docker_capabilities_custom }}"--# Security Opts-tandoor_docker_security_opts_default: []-tandoor_docker_security_opts_custom: []-tandoor_docker_security_opts: "{{ tandoor_docker_security_opts_default- + tandoor_docker_security_opts_custom }}"+tandoor_role_docker_networks_alias: "{{ tandoor_name }}"+tandoor_role_docker_networks_default: []+tandoor_role_docker_networks_custom: []+tandoor_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='tandoor')+ + lookup('role_var', '_docker_networks_custom', role='tandoor') }}" # Restart Policy-tandoor_docker_restart_policy: unless-stopped+tandoor_role_docker_restart_policy: unless-stopped # State-tandoor_docker_state: started+tandoor_role_docker_state: started # Dependencies-tandoor_depends_on: "postgres"-tandoor_depends_on_delay: "0"-tandoor_depends_on_healthchecks: "false"+tandoor_role_depends_on: "{{ lookup('role_var', '_postgres_name', role='tandoor') }}"+tandoor_role_depends_on_delay: "0"+tandoor_role_depends_on_healthchecks: "false"
modified
roles/tandoor/tasks/main.yml
@@ -17,22 +17,32 @@ else lookup('ansible.builtin.password', '/dev/null', chars=['ascii_letters', 'digits'], length=50) }}" owner: "{{ user.name }}" group: "{{ user.name }}"+ base_path: "{{ server_appdata_path }}" register: tandoor_saltbox_facts - name: Remove legacy setting ansible.builtin.shell: "yyq -i 'del(.tandoor)' {{ playbook_dir }}/settings.yml" when: tandoor is defined -- name: PostgreSQL Role+- name: "Import Postgres Role" ansible.builtin.include_role: name: postgres+ vars:+ postgres_instances: ["{{ lookup('role_var', '_postgres_name', role='tandoor') }}"]+ postgres_role_docker_image_tag: "{{ lookup('role_var', '_postgres_docker_image_tag', role='tandoor') }}"+ postgres_role_docker_image_repo: "{{ lookup('role_var', '_postgres_docker_image_repo', role='tandoor') }}"+ postgres_role_paths_folder: "{{ lookup('role_var', '_postgres_paths_folder', role='tandoor') }}"+ postgres_role_paths_location: "{{ lookup('role_var', '_postgres_paths_location', role='tandoor') }}"+ postgres_role_docker_env_db: "{{ lookup('role_var', '_postgres_docker_env_db', role='tandoor') }}"+ postgres_role_docker_healthcheck: "{{ lookup('role_var', '_postgres_docker_healthcheck', role='tandoor') }}"+ when: lookup('role_var', '_postgres_deploy', role='tandoor') - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/tauticord/defaults/main.yml
@@ -17,100 +17,57 @@ # Paths ################################ -tauticord_paths_folder: "{{ tauticord_name }}"-tauticord_paths_location: "{{ server_appdata_path }}/{{ tauticord_paths_folder }}"-tauticord_paths_folders_list:- - "{{ tauticord_paths_location }}"- - "{{ tauticord_paths_location }}/config"- - "{{ tauticord_paths_location }}/logs"+tauticord_role_paths_folder: "{{ tauticord_name }}"+tauticord_role_paths_location: "{{ server_appdata_path }}/{{ tauticord_role_paths_folder }}"+tauticord_role_paths_folders_list:+ - "{{ tauticord_role_paths_location }}"+ - "{{ tauticord_role_paths_location }}/config"+ - "{{ tauticord_role_paths_location }}/logs" ################################ # Docker ################################ # Container-tauticord_docker_container: "{{ tauticord_name }}"+tauticord_role_docker_container: "{{ tauticord_name }}" # Image-tauticord_docker_image_pull: true-tauticord_docker_image_tag: "latest"-tauticord_docker_image: "nwithan8/tauticord"--# Ports-tauticord_docker_ports_defaults: []-tauticord_docker_ports_custom: []-tauticord_docker_ports: "{{ tauticord_docker_ports_defaults- + tauticord_docker_ports_custom }}"+tauticord_role_docker_image_pull: true+tauticord_role_docker_image_repo: "nwithan8/tauticord"+tauticord_role_docker_image_tag: "latest"+tauticord_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='tauticord') }}:{{ lookup('role_var', '_docker_image_tag', role='tauticord') }}" # Envs-tauticord_docker_envs_default:+tauticord_role_docker_envs_default: TZ: "{{ tz }}" USER_ID: "{{ uid }}" GROUP_ID: "{{ gid }}" UMASK: "022"-tauticord_docker_envs_custom: {}-tauticord_docker_envs: "{{ tauticord_docker_envs_default- | combine(tauticord_docker_envs_custom) }}"--# Commands-tauticord_docker_commands_default: []-tauticord_docker_commands_custom: []-tauticord_docker_commands: "{{ tauticord_docker_commands_default- + tauticord_docker_commands_custom }}"+tauticord_role_docker_envs_custom: {}+tauticord_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='tauticord')+ | combine(lookup('role_var', '_docker_envs_custom', role='tauticord')) }}" # Volumes-tauticord_docker_volumes_default:- - "{{ tauticord_paths_location }}/config:/config"- - "{{ tauticord_paths_location }}/logs:/logs"-tauticord_docker_volumes_custom: []-tauticord_docker_volumes: "{{ tauticord_docker_volumes_default- + tauticord_docker_volumes_custom }}"--# Devices-tauticord_docker_devices_default: []-tauticord_docker_devices_custom: []-tauticord_docker_devices: "{{ tauticord_docker_devices_default- + tauticord_docker_devices_custom }}"--# Hosts-tauticord_docker_hosts_default: {}-tauticord_docker_hosts_custom: {}-tauticord_docker_hosts: "{{ docker_hosts_common- | combine(tauticord_docker_hosts_default)- | combine(tauticord_docker_hosts_custom) }}"--# Labels-tauticord_docker_labels_default: {}-tauticord_docker_labels_custom: {}-tauticord_docker_labels: "{{ docker_labels_common- | combine(tauticord_docker_labels_default)- | combine(tauticord_docker_labels_custom) }}"+tauticord_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='tauticord') }}/config:/config"+ - "{{ lookup('role_var', '_paths_location', role='tauticord') }}/logs:/logs"+tauticord_role_docker_volumes_custom: []+tauticord_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='tauticord')+ + lookup('role_var', '_docker_volumes_custom', role='tauticord') }}" # Hostname-tauticord_docker_hostname: "{{ tauticord_name }}"+tauticord_role_docker_hostname: "{{ tauticord_name }}" # Networks-tauticord_docker_networks_alias: "{{ tauticord_name }}"-tauticord_docker_networks_default: []-tauticord_docker_networks_custom: []-tauticord_docker_networks: "{{ docker_networks_common- + tauticord_docker_networks_default- + tauticord_docker_networks_custom }}"--# Capabilities-tauticord_docker_capabilities_default: []-tauticord_docker_capabilities_custom: []-tauticord_docker_capabilities: "{{ tauticord_docker_capabilities_default- + tauticord_docker_capabilities_custom }}"--# Security Opts-tauticord_docker_security_opts_default: []-tauticord_docker_security_opts_custom: []-tauticord_docker_security_opts: "{{ tauticord_docker_security_opts_default- + tauticord_docker_security_opts_custom }}"+tauticord_role_docker_networks_alias: "{{ tauticord_name }}"+tauticord_role_docker_networks_default: []+tauticord_role_docker_networks_custom: []+tauticord_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='tauticord')+ + lookup('role_var', '_docker_networks_custom', role='tauticord') }}" # Restart Policy-tauticord_docker_restart_policy: unless-stopped+tauticord_role_docker_restart_policy: unless-stopped # State-tauticord_docker_state: started+tauticord_role_docker_state: started
modified
roles/tauticord/tasks/main.yml
@@ -20,4 +20,4 @@ - name: Alert user to make and verify the config. ansible.builtin.debug: msg:- - "Before using this program, you must configure it. To do this, rename the file config.yaml.example in the {{ tauticord_paths_location }}/config directory to config.yaml and edit the file to your desired settings."+ - "Before using this program, you must configure it. To do this, rename the file config.yaml.example in the {{ tauticord_role_paths_location }}/config directory to config.yaml and edit the file to your desired settings."
modified
roles/tdarr/defaults/main.yml
@@ -17,155 +17,118 @@ # Settings ################################ -tdarr_server_port: "8266"-tdarr_server_external: false+tdarr_role_server_port: "8266"+tdarr_role_server_external: false ################################ # Paths ################################ -tdarr_paths_folder: "{{ tdarr_name }}"-tdarr_paths_location: "{{ server_appdata_path }}/{{ tdarr_paths_folder }}"-tdarr_paths_server_location: "{{ tdarr_paths_location }}/server"-tdarr_paths_configs_location: "{{ tdarr_paths_location }}/configs"-tdarr_paths_logs_location: "{{ tdarr_paths_location }}/logs"-tdarr_paths_transcodes_location: "{{ transcodes_path }}/{{ tdarr_paths_folder }}"-tdarr_paths_folders_list:- - "{{ tdarr_paths_location }}"- - "{{ tdarr_paths_server_location }}"- - "{{ tdarr_paths_configs_location }}"- - "{{ tdarr_paths_logs_location }}"- - "{{ tdarr_paths_transcodes_location }}"+tdarr_role_paths_folder: "{{ tdarr_name }}"+tdarr_role_paths_location: "{{ server_appdata_path }}/{{ tdarr_role_paths_folder }}"+tdarr_role_paths_server_location: "{{ tdarr_role_paths_location }}/server"+tdarr_role_paths_configs_location: "{{ tdarr_role_paths_location }}/configs"+tdarr_role_paths_logs_location: "{{ tdarr_role_paths_location }}/logs"+tdarr_role_paths_transcodes_location: "{{ transcodes_path }}/{{ tdarr_role_paths_folder }}"+tdarr_role_paths_folders_list:+ - "{{ tdarr_role_paths_location }}"+ - "{{ tdarr_role_paths_server_location }}"+ - "{{ tdarr_role_paths_configs_location }}"+ - "{{ tdarr_role_paths_logs_location }}"+ - "{{ tdarr_role_paths_transcodes_location }}" ################################ # Web ################################ -tdarr_web_subdomain: "{{ tdarr_name }}"-tdarr_web_domain: "{{ user.domain }}"-tdarr_web_port: "8265"-tdarr_web_url: "{{ 'https://' + (tdarr_web_subdomain + '.' + tdarr_web_domain- if (tdarr_web_subdomain | length > 0)- else tdarr_web_domain) }}"+tdarr_role_web_subdomain: "{{ tdarr_name }}"+tdarr_role_web_domain: "{{ user.domain }}"+tdarr_role_web_port: "8265"+tdarr_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='tdarr') + '.' + lookup('role_var', '_web_domain', role='tdarr')+ if (lookup('role_var', '_web_subdomain', role='tdarr') | length > 0)+ else lookup('role_var', '_web_domain', role='tdarr')) }}" ################################ # DNS ################################ -tdarr_dns_record: "{{ tdarr_web_subdomain }}"-tdarr_dns_zone: "{{ tdarr_web_domain }}"-tdarr_dns_proxy: "{{ dns.proxied }}"+tdarr_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='tdarr') }}"+tdarr_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='tdarr') }}"+tdarr_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -tdarr_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-tdarr_traefik_middleware_default: "{{ traefik_default_middleware }}"-tdarr_traefik_middleware_custom: ""-tdarr_traefik_certresolver: "{{ traefik_default_certresolver }}"-tdarr_traefik_enabled: true-tdarr_traefik_api_enabled: false-tdarr_traefik_api_endpoint: ""+tdarr_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+tdarr_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+tdarr_role_traefik_middleware_custom: ""+tdarr_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+tdarr_role_traefik_enabled: true+tdarr_role_traefik_api_enabled: false+tdarr_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-tdarr_docker_container: "{{ tdarr_name }}"+tdarr_role_docker_container: "{{ tdarr_name }}" # Image-tdarr_docker_image_pull: true-tdarr_docker_image_tag: "latest"-tdarr_docker_image: "haveagitgat/tdarr:{{ tdarr_docker_image_tag }}"+tdarr_role_docker_image_pull: true+tdarr_role_docker_image_repo: "haveagitgat/tdarr"+tdarr_role_docker_image_tag: "latest"+tdarr_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='tdarr') }}:{{ lookup('role_var', '_docker_image_tag', role='tdarr') }}" # Ports-tdarr_docker_ports_defaults:- - "{{ tdarr_server_port }}:{{ tdarr_server_port }}"-tdarr_docker_ports_custom: []-tdarr_docker_ports: "{{ tdarr_docker_ports_defaults if (tdarr_server_external) else []- + tdarr_docker_ports_custom }}"+tdarr_role_docker_ports_default:+ - "{{ lookup('role_var', '_server_port', role='tdarr') }}:{{ lookup('role_var', '_server_port', role='tdarr') }}"+tdarr_role_docker_ports_custom: []+tdarr_role_docker_ports: "{{ lookup('role_var', '_docker_ports_default', role='tdarr') if (lookup('role_var', '_server_external', role='tdarr')) else []+ + lookup('role_var', '_docker_ports_custom', role='tdarr') }}" # Envs-tdarr_docker_envs_default:+tdarr_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}" serverIP: "0.0.0.0" webUIPort: "8265"- serverPort: "{{ tdarr_server_port }}"+ serverPort: "{{ lookup('role_var', '_server_port', role='tdarr') }}" internalNode: "true" inContainer: "true"-tdarr_docker_envs_custom: {}-tdarr_docker_envs: "{{ tdarr_docker_envs_default- | combine(tdarr_docker_envs_custom) }}"--# Commands-tdarr_docker_commands_default: []-tdarr_docker_commands_custom: []-tdarr_docker_commands: "{{ tdarr_docker_commands_default- + tdarr_docker_commands_custom }}"+tdarr_role_docker_envs_custom: {}+tdarr_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='tdarr')+ | combine(lookup('role_var', '_docker_envs_custom', role='tdarr')) }}" # Volumes-tdarr_docker_volumes_default:- - "{{ tdarr_paths_configs_location }}:/app/configs"- - "{{ tdarr_paths_server_location }}:/app/server"- - "{{ tdarr_paths_logs_location }}:/app/logs"- - "{{ tdarr_paths_transcodes_location }}:/temp"+tdarr_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_configs_location', role='tdarr') }}:/app/configs"+ - "{{ lookup('role_var', '_paths_server_location', role='tdarr') }}:/app/server"+ - "{{ lookup('role_var', '_paths_logs_location', role='tdarr') }}:/app/logs"+ - "{{ lookup('role_var', '_paths_transcodes_location', role='tdarr') }}:/temp" - "/mnt/unionfs/Media:/media" - "/mnt/unionfs/Media/Movies:/movies" - "/mnt/unionfs/Media/TV:/tv" - "/dev/shm:/dev/shm"-tdarr_docker_volumes_custom: []-tdarr_docker_volumes: "{{ tdarr_docker_volumes_default- + tdarr_docker_volumes_custom }}"--# Devices-tdarr_docker_devices_default: []-tdarr_docker_devices_custom: []-tdarr_docker_devices: "{{ tdarr_docker_devices_default- + tdarr_docker_devices_custom }}"--# Hosts-tdarr_docker_hosts_default: {}-tdarr_docker_hosts_custom: {}-tdarr_docker_hosts: "{{ docker_hosts_common- | combine(tdarr_docker_hosts_default)- | combine(tdarr_docker_hosts_custom) }}"--# Labels-tdarr_docker_labels_default: {}-tdarr_docker_labels_custom: {}-tdarr_docker_labels: "{{ docker_labels_common- | combine(tdarr_docker_labels_default)- | combine(tdarr_docker_labels_custom) }}"+tdarr_role_docker_volumes_custom: []+tdarr_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='tdarr')+ + lookup('role_var', '_docker_volumes_custom', role='tdarr') }}" # Hostname-tdarr_docker_hostname: "{{ tdarr_name }}"+tdarr_role_docker_hostname: "{{ tdarr_name }}" # Networks-tdarr_docker_networks_alias: "{{ tdarr_name }}"-tdarr_docker_networks_default: []-tdarr_docker_networks_custom: []-tdarr_docker_networks: "{{ docker_networks_common- + tdarr_docker_networks_default- + tdarr_docker_networks_custom }}"--# Capabilities-tdarr_docker_capabilities_default: []-tdarr_docker_capabilities_custom: []-tdarr_docker_capabilities: "{{ tdarr_docker_capabilities_default- + tdarr_docker_capabilities_custom }}"--# Security Opts-tdarr_docker_security_opts_default: []-tdarr_docker_security_opts_custom: []-tdarr_docker_security_opts: "{{ tdarr_docker_security_opts_default- + tdarr_docker_security_opts_custom }}"+tdarr_role_docker_networks_alias: "{{ tdarr_name }}"+tdarr_role_docker_networks_default: []+tdarr_role_docker_networks_custom: []+tdarr_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='tdarr')+ + lookup('role_var', '_docker_networks_custom', role='tdarr') }}" # Restart Policy-tdarr_docker_restart_policy: unless-stopped+tdarr_role_docker_restart_policy: unless-stopped # State-tdarr_docker_state: started+tdarr_role_docker_state: started
modified
roles/tdarr/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -22,7 +22,7 @@ - name: Docker Devices Task ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/set_docker_devices_variable.yml"- when: gpu.intel or use_nvidia+ when: use_intel or use_nvidia - name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"
modified
roles/tdarr_node/defaults/main.yml
@@ -28,22 +28,23 @@ ################################ # Container-tdarr_node_docker_container: "{{ tdarr_node_name }}"+tdarr_node_role_docker_container: "{{ tdarr_node_name }}" # Image-tdarr_node_docker_image_pull: true-tdarr_node_docker_image_tag: "latest"-tdarr_node_docker_image: "haveagitgat/tdarr_node:{{ tdarr_node_docker_image_tag }}"+tdarr_node_role_docker_image_pull: true+tdarr_node_role_docker_image_repo: "haveagitgat/tdarr_node"+tdarr_node_role_docker_image_tag: "latest"+tdarr_node_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='tdarr_node') }}:{{ lookup('role_var', '_docker_image_tag', role='tdarr_node') }}" # Ports-tdarr_node_docker_ports_defaults:+tdarr_node_role_docker_ports_default: - "{{ tdarr_node_node_port }}:{{ tdarr_node_node_port }}"-tdarr_node_docker_ports_custom: []-tdarr_node_docker_ports: "{{ tdarr_node_docker_ports_defaults if (tdarr_node_external) else []- + tdarr_node_docker_ports_custom }}"+tdarr_node_role_docker_ports_custom: []+tdarr_node_role_docker_ports: "{{ tdarr_node_role_docker_ports_default if (tdarr_node_external) else []+ + tdarr_node_role_docker_ports_custom }}" # Envs-tdarr_node_docker_envs_default:+tdarr_node_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"@@ -51,75 +52,36 @@ serverPort: "{{ tdarr_node_server_port }}" nodeName: "{{ tdarr_node_node_id }}" inContainer: "true"-tdarr_node_docker_envs_custom: {}-tdarr_node_docker_envs: "{{ tdarr_node_docker_envs_default- | combine(tdarr_node_docker_envs_custom) }}"--# Commands-tdarr_node_docker_commands_default: []-tdarr_node_docker_commands_custom: []-tdarr_node_docker_commands: "{{ tdarr_node_docker_commands_default- + tdarr_node_docker_commands_custom }}"+tdarr_node_role_docker_envs_custom: {}+tdarr_node_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='tdarr_node')+ | combine(lookup('role_var', '_docker_envs_custom', role='tdarr_node')) }}" # Volumes-tdarr_node_docker_volumes_default:- - "{{ tdarr_paths_configs_location }}:/app/configs"- - "{{ tdarr_paths_logs_location }}:/app/logs"- - "{{ tdarr_paths_transcodes_location }}:/temp"+tdarr_node_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_configs_location', role='tdarr') }}:/app/configs"+ - "{{ lookup('role_var', '_paths_logs_location', role='tdarr') }}:/app/logs"+ - "{{ lookup('role_var', '_paths_transcodes_location', role='tdarr') }}:/temp" - "/mnt/unionfs/Media:/media" - "/mnt/unionfs/Media/Movies:/movies" - "/mnt/unionfs/Media/TV:/tv" - "/dev/shm:/dev/shm"--tdarr_node_docker_volumes_custom: []-tdarr_node_docker_volumes: "{{ tdarr_node_docker_volumes_default- + tdarr_node_docker_volumes_custom }}"--# Devices-tdarr_node_docker_devices_default: []-tdarr_node_docker_devices_custom: []-tdarr_node_docker_devices: "{{ tdarr_node_docker_devices_default- + tdarr_node_docker_devices_custom }}"--# Hosts-tdarr_node_docker_hosts_default: {}-tdarr_node_docker_hosts_custom: {}-tdarr_node_docker_hosts: "{{ docker_hosts_common- | combine(tdarr_node_docker_hosts_default)- | combine(tdarr_node_docker_hosts_custom) }}"--# Labels-tdarr_node_docker_labels_default: {}-tdarr_node_docker_labels_custom: {}-tdarr_node_docker_labels: "{{ docker_labels_common- | combine(tdarr_node_docker_labels_default)- | combine(tdarr_node_docker_labels_custom) }}"+tdarr_node_role_docker_volumes_custom: []+tdarr_node_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='tdarr_node')+ + lookup('role_var', '_docker_volumes_custom', role='tdarr_node') }}" # Hostname-tdarr_node_docker_hostname: "{{ tdarr_node_name }}"+tdarr_node_role_docker_hostname: "{{ tdarr_node_name }}" # Networks-tdarr_node_docker_networks_alias: "{{ tdarr_node_name }}"-tdarr_node_docker_networks_default: []-tdarr_node_docker_networks_custom: []-tdarr_node_docker_networks: "{{ docker_networks_common- + tdarr_node_docker_networks_default- + tdarr_node_docker_networks_custom }}"--# Capabilities-tdarr_node_docker_capabilities_default: []-tdarr_node_docker_capabilities_custom: []-tdarr_node_docker_capabilities: "{{ tdarr_node_docker_capabilities_default- + tdarr_node_docker_capabilities_custom }}"--# Security Opts-tdarr_node_docker_security_opts_default: []-tdarr_node_docker_security_opts_custom: []-tdarr_node_docker_security_opts: "{{ tdarr_node_docker_security_opts_default- + tdarr_node_docker_security_opts_custom }}"+tdarr_node_role_docker_networks_alias: "{{ tdarr_node_name }}"+tdarr_node_role_docker_networks_default: []+tdarr_node_role_docker_networks_custom: []+tdarr_node_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='tdarr_node')+ + lookup('role_var', '_docker_networks_custom', role='tdarr_node') }}" # Restart Policy-tdarr_node_docker_restart_policy: unless-stopped+tdarr_node_role_docker_restart_policy: unless-stopped # State-tdarr_node_docker_state: started+tdarr_node_role_docker_state: started
modified
roles/tdarr_node/tasks/main.yml
@@ -17,7 +17,7 @@ - name: Docker Devices Task ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/set_docker_devices_variable.yml"- when: gpu.intel or use_nvidia+ when: use_intel or use_nvidia - name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"
modified
roles/telegraf/defaults/main.yml
@@ -16,140 +16,89 @@ # Paths ################################ -telegraf_paths_folder: "telegraf"-telegraf_paths_location: "{{ server_appdata_path }}/{{ telegraf_paths_folder }}"-telegraf_paths_folders_list:- - "{{ telegraf_paths_location }}/"- - "{{ telegraf_paths_location }}/{{ telegraf_name }}"-telegraf_paths_recursive: true+telegraf_role_paths_folder: "telegraf"+telegraf_role_paths_location: "{{ server_appdata_path }}/{{ telegraf_role_paths_folder }}"+telegraf_role_paths_folders_list:+ - "{{ telegraf_role_paths_location }}/"+ - "{{ telegraf_role_paths_location }}/{{ telegraf_name }}"+telegraf_role_paths_recursive: true ################################ # Web ################################ -telegraf_web_subdomain: "{{ telegraf_name }}"-telegraf_web_domain: "{{ user.domain }}"+telegraf_role_web_subdomain: "{{ telegraf_name }}"+telegraf_role_web_domain: "{{ user.domain }}" ################################ # DNS ################################ -telegraf_dns_record: "{{ lookup('vars', telegraf_name + '_web_subdomain', default=telegraf_web_subdomain) }}"-telegraf_dns_zone: "{{ lookup('vars', telegraf_name + '_web_domain', default=telegraf_web_domain) }}"-telegraf_dns_proxy: false+telegraf_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='telegraf') }}"+telegraf_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='telegraf') }}"+telegraf_role_dns_proxy: false ################################ # Traefik ################################ -telegraf_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-telegraf_traefik_middleware_default: "{{ traefik_default_middleware }}"-telegraf_traefik_middleware_custom: ""-telegraf_traefik_certresolver: "{{ traefik_default_certresolver }}"-telegraf_traefik_enabled: true-telegraf_traefik_api_enabled: false-telegraf_traefik_api_endpoint: ""+telegraf_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+telegraf_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+telegraf_role_traefik_middleware_custom: ""+telegraf_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+telegraf_role_traefik_enabled: true+telegraf_role_traefik_api_enabled: false+telegraf_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-telegraf_docker_container: "{{ telegraf_name }}"+telegraf_role_docker_container: "{{ telegraf_name }}" # Image-telegraf_docker_image_pull: true-telegraf_docker_image_repo: "telegraf"-telegraf_docker_image_tag: "latest"-telegraf_docker_image: "{{ lookup('vars', telegraf_name + '_docker_image_repo', default=telegraf_docker_image_repo)- + ':' + lookup('vars', telegraf_name + '_docker_image_tag', default=telegraf_docker_image_tag) }}"--# Ports-telegraf_docker_ports_defaults: []-telegraf_docker_ports_custom: []-telegraf_docker_ports: "{{ lookup('vars', telegraf_name + '_docker_ports_defaults', default=telegraf_docker_ports_defaults)- + lookup('vars', telegraf_name + '_docker_ports_custom', default=telegraf_docker_ports_custom) }}"+telegraf_role_docker_image_pull: true+telegraf_role_docker_image_repo: "telegraf"+telegraf_role_docker_image_tag: "latest"+telegraf_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='telegraf') }}:{{ lookup('role_var', '_docker_image_tag', role='telegraf') }}" # Envs-telegraf_docker_envs_default:+telegraf_role_docker_envs_default: TZ: "{{ tz }}" EULA: "TRUE" UID: "{{ uid }}" GID: "{{ gid }}"-telegraf_docker_envs_custom: {}-telegraf_docker_envs: "{{ lookup('vars', telegraf_name + '_docker_envs_default', default=telegraf_docker_envs_default)- | combine(lookup('vars', telegraf_name + '_docker_envs_custom', default=telegraf_docker_envs_custom)) }}"--# Commands-telegraf_docker_commands_default: []-telegraf_docker_commands_custom: []-telegraf_docker_commands: "{{ lookup('vars', telegraf_name + '_docker_commands_default', default=telegraf_docker_commands_default)- + lookup('vars', telegraf_name + '_docker_commands_custom', default=telegraf_docker_commands_custom) }}"+telegraf_role_docker_envs_custom: {}+telegraf_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='telegraf')+ | combine(lookup('role_var', '_docker_envs_custom', role='telegraf')) }}" # Volumes-telegraf_docker_volumes_default:- - "/opt/telegraf/{{ telegraf_name }}:/etc/telegraf:ro"+telegraf_role_docker_volumes_default:+ - "{{ server_appdata_path }}/telegraf/{{ telegraf_name }}:/etc/telegraf:ro" - "/var/run/docker.sock:/var/run/docker.sock:ro" - "/var/run/utmp:/var/run/utmp" - "/:/host:ro" - "/sys:/host/sys:ro" - "/proc:/host/proc:ro" - "/etc:/host/etc:ro"-telegraf_docker_volumes_custom: []-telegraf_docker_volumes: "{{ lookup('vars', telegraf_name + '_docker_volumes_default', default=telegraf_docker_volumes_default)- + lookup('vars', telegraf_name + '_docker_volumes_custom', default=telegraf_docker_volumes_custom) }}"--# Devices-telegraf_docker_devices_default: []-telegraf_docker_devices_custom: []-telegraf_docker_devices: "{{ lookup('vars', telegraf_name + '_docker_devices_default', default=telegraf_docker_devices_default)- + lookup('vars', telegraf_name + '_docker_devices_custom', default=telegraf_docker_devices_custom) }}"--# Hosts-telegraf_docker_hosts_default: {}-telegraf_docker_hosts_custom: {}-telegraf_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', telegraf_name + '_docker_hosts_default', default=telegraf_docker_hosts_default))- | combine(lookup('vars', telegraf_name + '_docker_hosts_custom', default=telegraf_docker_hosts_custom)) }}"--# Labels-telegraf_docker_labels_default: {- "com.github.saltbox.saltbox_managed": "true"-}-telegraf_docker_labels_custom: {}-telegraf_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', telegraf_name + '_docker_labels_default', default=telegraf_docker_labels_default))- | combine(lookup('vars', telegraf_name + '_docker_labels_custom', default=telegraf_docker_labels_custom)) }}"+telegraf_role_docker_volumes_custom: []+telegraf_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='telegraf')+ + lookup('role_var', '_docker_volumes_custom', role='telegraf') }}" # Hostname-telegraf_docker_hostname: "{{ telegraf_name }}"--# Network Mode-telegraf_docker_network_mode_default: "{{ docker_networks_name_common }}"-telegraf_docker_network_mode: "{{ lookup('vars', telegraf_name + '_docker_network_mode_default', default=telegraf_docker_network_mode_default) }}"+telegraf_role_docker_hostname: "{{ telegraf_name }}" # Networks-telegraf_docker_networks_alias: "{{ telegraf_name }}"-telegraf_docker_networks_default: []-telegraf_docker_networks_custom: []-telegraf_docker_networks: "{{ docker_networks_common- + lookup('vars', telegraf_name + '_docker_networks_default', default=telegraf_docker_networks_default)- + lookup('vars', telegraf_name + '_docker_networks_custom', default=telegraf_docker_networks_custom) }}"--# Capabilities-telegraf_docker_capabilities_default: []-telegraf_docker_capabilities_custom: []-telegraf_docker_capabilities: "{{ lookup('vars', telegraf_name + '_docker_capabilities_default', default=telegraf_docker_capabilities_default)- + lookup('vars', telegraf_name + '_docker_capabilities_custom', default=telegraf_docker_capabilities_custom) }}"--# Security Opts-telegraf_docker_security_opts_default: []-telegraf_docker_security_opts_custom: []-telegraf_docker_security_opts: "{{ lookup('vars', telegraf_name + '_docker_security_opts_default', default=telegraf_docker_security_opts_default)- + lookup('vars', telegraf_name + '_docker_security_opts_custom', default=telegraf_docker_security_opts_custom) }}"+telegraf_role_docker_networks_alias: "{{ telegraf_name }}"+telegraf_role_docker_networks_default: []+telegraf_role_docker_networks_custom: []+telegraf_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='telegraf')+ + lookup('role_var', '_docker_networks_custom', role='telegraf') }}" # Restart Policy-telegraf_docker_restart_policy: unless-stopped+telegraf_role_docker_restart_policy: unless-stopped # State-telegraf_docker_state: started+telegraf_role_docker_state: started
modified
roles/telegraf/tasks/main2.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -22,17 +22,17 @@ - name: Check if config exists ansible.builtin.stat:- path: "{{ telegraf_paths_location }}/{{ telegraf_name }}/telegraf.conf"+ path: "{{ telegraf_role_paths_location }}/{{ telegraf_name }}/telegraf.conf" register: telegraf_conf - name: Import telegraf config if needed ansible.builtin.copy: src: "telegraf.conf"- dest: "{{ telegraf_paths_location }}/{{ telegraf_name }}/telegraf.conf"+ dest: "{{ telegraf_role_paths_location }}/{{ telegraf_name }}/telegraf.conf" owner: "{{ uid }}" group: "{{ gid }}" mode: "0664" when: not telegraf_conf.stat.exists -- name: Create and start telegraf container+- name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"
modified
roles/teslamate/defaults/main.yml
@@ -17,147 +17,112 @@ teslamate_secret_key: "{{ teslamate_saltbox_facts.facts.secret_key }}" -teslamate_postgres_name: "{{ teslamate_name }}-postgres"-teslamate_postgres_docker_env_db: "{{ teslamate_name }}"-teslamate_postgres_docker_env_password: "{{ teslamate_saltbox_facts.facts.postgres_password }}"-teslamate_postgres_docker_image_tag: "16"-teslamate_postgres_docker_image_repo: "postgres"-teslamate_postgres_paths_folder: "{{ teslamate_name }}"-teslamate_postgres_paths_location: "{{ server_appdata_path }}/{{ postgres_paths_folder }}/postgres"+teslamate_role_postgres_deploy: true+teslamate_role_postgres_name: "{{ teslamate_name }}-postgres"+teslamate_role_postgres_user: "{{ postgres_role_docker_env_user }}"+teslamate_role_postgres_password: "{{ teslamate_saltbox_facts.facts.postgres_password }}"+teslamate_role_postgres_docker_env_db: "{{ teslamate_name }}"+teslamate_role_postgres_docker_image_tag: "16"+teslamate_role_postgres_docker_image_repo: "postgres"+teslamate_role_postgres_docker_healthcheck:+ test: ["CMD-SHELL", "pg_isready -d {{ lookup('role_var', '_postgres_docker_env_db', role='teslamate') }} -U {{ postgres_role_docker_env_user }}"]+ start_period: 20s+ interval: 30s+ retries: 5+ timeout: 5s+teslamate_role_postgres_paths_folder: "{{ teslamate_name }}"+teslamate_role_postgres_paths_location: "{{ server_appdata_path }}/{{ teslamate_role_postgres_paths_folder }}/postgres" ################################ # Paths ################################ -teslamate_paths_folder: "{{ teslamate_name }}"-teslamate_paths_location: "{{ server_appdata_path }}/{{ teslamate_paths_folder }}"-teslamate_paths_folders_list:- - "{{ teslamate_paths_location }}"+teslamate_role_paths_folder: "{{ teslamate_name }}"+teslamate_role_paths_location: "{{ server_appdata_path }}/{{ teslamate_role_paths_folder }}"+teslamate_role_paths_folders_list:+ - "{{ teslamate_role_paths_location }}" ################################ # Web ################################ -teslamate_web_subdomain: "{{ teslamate_name }}"-teslamate_web_domain: "{{ user.domain }}"-teslamate_web_port: "4000"-teslamate_web_url: "{{ 'https://' + (teslamate_web_subdomain + '.' + teslamate_web_domain- if (teslamate_web_subdomain | length > 0)- else teslamate_web_domain) }}"+teslamate_role_web_subdomain: "{{ teslamate_name }}"+teslamate_role_web_domain: "{{ user.domain }}"+teslamate_role_web_port: "4000"+teslamate_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='teslamate') + '.' + lookup('role_var', '_web_domain', role='teslamate')+ if (lookup('role_var', '_web_subdomain', role='teslamate') | length > 0)+ else lookup('role_var', '_web_domain', role='teslamate')) }}" ################################ # DNS ################################ -teslamate_dns_record: "{{ teslamate_web_subdomain }}"-teslamate_dns_zone: "{{ teslamate_web_domain }}"-teslamate_dns_proxy: "{{ dns.proxied }}"+teslamate_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='teslamate') }}"+teslamate_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='teslamate') }}"+teslamate_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -teslamate_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-teslamate_traefik_middleware_default: "{{ traefik_default_middleware }}"-teslamate_traefik_middleware_custom: ""-teslamate_traefik_certresolver: "{{ traefik_default_certresolver }}"-teslamate_traefik_enabled: true-teslamate_traefik_api_enabled: false-teslamate_traefik_api_endpoint: ""+teslamate_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+teslamate_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+teslamate_role_traefik_middleware_custom: ""+teslamate_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+teslamate_role_traefik_enabled: true+teslamate_role_traefik_api_enabled: false+teslamate_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-teslamate_docker_container: "{{ teslamate_name }}"+teslamate_role_docker_container: "{{ teslamate_name }}" # Image-teslamate_docker_image_pull: true-teslamate_docker_image_tag: "latest"-teslamate_docker_image: "teslamate/teslamate:{{ teslamate_docker_image_tag }}"--# Ports-teslamate_docker_ports_defaults: []-teslamate_docker_ports_custom: []-teslamate_docker_ports: "{{ teslamate_docker_ports_defaults- + teslamate_docker_ports_custom }}"+teslamate_role_docker_image_pull: true+teslamate_role_docker_image_tag: "latest"+teslamate_role_docker_image_repo: "teslamate/teslamate"+teslamate_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='teslamate') }}:{{ lookup('role_var', '_docker_image_tag', role='teslamate') }}" # Envs-teslamate_docker_envs_default:- DATABASE_USER: "{{ postgres_docker_env_user }}"- DATABASE_PASS: "{{ teslamate_postgres_docker_env_password }}"- DATABASE_NAME: "{{ teslamate_postgres_docker_env_db }}"+teslamate_role_docker_envs_default:+ DATABASE_USER: "{{ lookup('role_var', '_postgres_user', role='teslamate') }}"+ DATABASE_PASS: "{{ lookup('role_var', '_postgres_password', role='teslamate') }}"+ DATABASE_NAME: "{{ lookup('role_var', '_postgres_docker_env_db', role='teslamate') }}" ENCRYPTION_KEY: "{{ teslamate_secret_key }}"- DATABASE_HOST: "{{ teslamate_postgres_name }}"+ DATABASE_HOST: "{{ lookup('role_var', '_postgres_name', role='teslamate') }}" DATABASE_PORT: "5432" MQTT_HOST: "mqtt" CHECK_ORIGIN: "false" PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-teslamate_docker_envs_custom: {}-teslamate_docker_envs: "{{ teslamate_docker_envs_default- | combine(teslamate_docker_envs_custom) }}"--# Commands-teslamate_docker_commands_default: []-teslamate_docker_commands_custom: []-teslamate_docker_commands: "{{ teslamate_docker_commands_default- + teslamate_docker_commands_custom }}"+teslamate_role_docker_envs_custom: {}+teslamate_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='teslamate')+ | combine(lookup('role_var', '_docker_envs_custom', role='teslamate')) }}" # Volumes-teslamate_docker_volumes_default:- - "{{ teslamate_paths_location }}:/opt/app/import"-teslamate_docker_volumes_custom: []-teslamate_docker_volumes: "{{ teslamate_docker_volumes_default- + teslamate_docker_volumes_custom }}"--# Devices-teslamate_docker_devices_default: []-teslamate_docker_devices_custom: []-teslamate_docker_devices: "{{ teslamate_docker_devices_default- + teslamate_docker_devices_custom }}"--# Hosts-teslamate_docker_hosts_default: {}-teslamate_docker_hosts_custom: {}-teslamate_docker_hosts: "{{ docker_hosts_common- | combine(teslamate_docker_hosts_default)- | combine(teslamate_docker_hosts_custom) }}"--# Labels-teslamate_docker_labels_default: {}-teslamate_docker_labels_custom: {}-teslamate_docker_labels: "{{ docker_labels_common- | combine(teslamate_docker_labels_default)- | combine(teslamate_docker_labels_custom) }}"+teslamate_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='teslamate') }}:/opt/app/import"+teslamate_role_docker_volumes_custom: []+teslamate_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='teslamate')+ + lookup('role_var', '_docker_volumes_custom', role='teslamate') }}" # Hostname-teslamate_docker_hostname: "{{ teslamate_name }}"+teslamate_role_docker_hostname: "{{ teslamate_name }}" # Networks-teslamate_docker_networks_alias: "{{ teslamate_name }}"-teslamate_docker_networks_default: []-teslamate_docker_networks_custom: []-teslamate_docker_networks: "{{ docker_networks_common- + teslamate_docker_networks_default- + teslamate_docker_networks_custom }}"--# Capabilities-teslamate_docker_capabilities_default: []-teslamate_docker_capabilities_custom: []-teslamate_docker_capabilities: "{{ teslamate_docker_capabilities_default- + teslamate_docker_capabilities_custom }}"--# Security Opts-teslamate_docker_security_opts_default: []-teslamate_docker_security_opts_custom: []-teslamate_docker_security_opts: "{{ teslamate_docker_security_opts_default- + teslamate_docker_security_opts_custom }}"+teslamate_role_docker_networks_alias: "{{ teslamate_name }}"+teslamate_role_docker_networks_default: []+teslamate_role_docker_networks_custom: []+teslamate_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='teslamate')+ + lookup('role_var', '_docker_networks_custom', role='teslamate') }}" # Restart Policy-teslamate_docker_restart_policy: unless-stopped+teslamate_role_docker_restart_policy: unless-stopped # State-teslamate_docker_state: started+teslamate_role_docker_state: started
modified
roles/teslamate/tasks/main.yml
@@ -10,16 +10,16 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" -- name: Check if '/opt/saltbox/teslamate_db.ini' folder exists+- name: Check if '{{ server_appdata_path }}/saltbox/teslamate_db.ini' folder exists ansible.builtin.stat:- path: "/opt/saltbox/teslamate_db.ini"+ path: "{{ server_appdata_path }}/saltbox/teslamate_db.ini" register: teslamate_db_stat - name: Migration Block@@ -33,6 +33,7 @@ secret_key: "" owner: "{{ user.name }}" group: "{{ user.name }}"+ base_path: "{{ server_appdata_path }}" register: teslamate_db_saltbox_facts - name: "Save Teslamate Saltbox facts"@@ -44,6 +45,7 @@ postgres_password: "{{ teslamate_db_saltbox_facts.facts.secret_key }}" owner: "{{ user.name }}" group: "{{ user.name }}"+ base_path: "{{ server_appdata_path }}" - name: "Delete legacy Teslamate Postgres Saltbox facts" saltbox_facts:@@ -51,6 +53,7 @@ instance: "teslamate" delete_type: "role" method: "delete"+ base_path: "{{ server_appdata_path }}" - name: "Save Teslamate Saltbox facts" saltbox_facts:@@ -61,26 +64,29 @@ postgres_password: "{{ lookup('ansible.builtin.password', '/dev/null', chars=['ascii_letters', 'digits'], length=50) }}" owner: "{{ user.name }}" group: "{{ user.name }}"+ base_path: "{{ server_appdata_path }}" register: teslamate_saltbox_facts tags: - teslamate - teslamate-postgres-password -- name: Postgres Role+- name: "Import Postgres Role" ansible.builtin.include_role: name: postgres vars:- postgres_instances: ["{{ teslamate_postgres_name }}"]- postgres_paths_folder: "{{ teslamate_postgres_paths_folder }}"- postgres_paths_location: "{{ teslamate_postgres_paths_location }}"- postgres_docker_image_repo: "{{ teslamate_postgres_docker_image_repo }}"- postgres_docker_image_tag: "{{ teslamate_postgres_docker_image_tag }}"- postgres_docker_env_db: "{{ teslamate_postgres_docker_env_db }}"- postgres_docker_env_password: "{{ teslamate_postgres_docker_env_password }}"+ postgres_instances: ["{{ lookup('role_var', '_postgres_name', role='teslamate') }}"]+ postgres_role_docker_image_tag: "{{ lookup('role_var', '_postgres_docker_image_tag', role='teslamate') }}"+ postgres_role_docker_image_repo: "{{ lookup('role_var', '_postgres_docker_image_repo', role='teslamate') }}"+ postgres_role_paths_folder: "{{ lookup('role_var', '_postgres_paths_folder', role='teslamate') }}"+ postgres_role_paths_location: "{{ lookup('role_var', '_postgres_paths_location', role='teslamate') }}"+ postgres_role_docker_env_db: "{{ lookup('role_var', '_postgres_docker_env_db', role='teslamate') }}"+ postgres_role_docker_healthcheck: "{{ lookup('role_var', '_postgres_docker_healthcheck', role='teslamate') }}"+ postgres_role_docker_env_password: "{{ lookup('role_var', '_postgres_password', role='teslamate') }}"+ when: lookup('role_var', '_postgres_deploy', role='teslamate') - name: Print Teslamate DB Password ansible.builtin.debug:- msg: "{{ teslamate_postgres_docker_env_password }}"+ msg: "{{ lookup('role_var', '_postgres_password', role='teslamate') }}" tags: - teslamate-postgres-password
modified
roles/thelounge/defaults/main.yml
@@ -17,41 +17,41 @@ # Paths ################################ -thelounge_paths_folder: "{{ thelounge_name }}"-thelounge_paths_location: "{{ server_appdata_path }}/{{ thelounge_paths_folder }}"-thelounge_paths_folders_list:- - "{{ thelounge_paths_location }}"+thelounge_role_paths_folder: "{{ thelounge_name }}"+thelounge_role_paths_location: "{{ server_appdata_path }}/{{ thelounge_role_paths_folder }}"+thelounge_role_paths_folders_list:+ - "{{ thelounge_role_paths_location }}" ################################ # Web ################################ -thelounge_web_subdomain: "{{ thelounge_name }}"-thelounge_web_domain: "{{ user.domain }}"-thelounge_web_port: "9000"-thelounge_web_url: "{{ 'https://' + (thelounge_web_subdomain + '.' + thelounge_web_domain- if (thelounge_web_subdomain | length > 0)- else thelounge_web_domain) }}"+thelounge_role_web_subdomain: "{{ thelounge_name }}"+thelounge_role_web_domain: "{{ user.domain }}"+thelounge_role_web_port: "9000"+thelounge_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='thelounge') + '.' + lookup('role_var', '_web_domain', role='thelounge')+ if (lookup('role_var', '_web_subdomain', role='thelounge') | length > 0)+ else lookup('role_var', '_web_domain', role='thelounge')) }}" ################################ # DNS ################################ -thelounge_dns_record: "{{ thelounge_web_subdomain }}"-thelounge_dns_zone: "{{ thelounge_web_domain }}"-thelounge_dns_proxy: "{{ dns.proxied }}"+thelounge_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='thelounge') }}"+thelounge_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='thelounge') }}"+thelounge_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -thelounge_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-thelounge_traefik_middleware_default: "{{ traefik_default_middleware }}"-thelounge_traefik_middleware_custom: ""-thelounge_traefik_certresolver: "{{ traefik_default_certresolver }}"-thelounge_traefik_enabled: true-thelounge_traefik_api_enabled: true-thelounge_traefik_api_endpoint: "PathPrefix(`/uploads`)"+thelounge_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+thelounge_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+thelounge_role_traefik_middleware_custom: ""+thelounge_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+thelounge_role_traefik_enabled: true+thelounge_role_traefik_api_enabled: true+thelounge_role_traefik_api_endpoint: "PathPrefix(`/uploads`)" ################################@@ -59,86 +59,43 @@ ################################ # Container-thelounge_docker_container: "{{ thelounge_name }}"+thelounge_role_docker_container: "{{ thelounge_name }}" # Image-thelounge_docker_image_pull: true-thelounge_docker_image_tag: "latest"-thelounge_docker_image: "lscr.io/linuxserver/thelounge:{{ thelounge_docker_image_tag }}"--# Ports-thelounge_docker_ports_defaults: []-thelounge_docker_ports_custom: []-thelounge_docker_ports: "{{ thelounge_docker_ports_defaults- + thelounge_docker_ports_custom }}"+thelounge_role_docker_image_pull: true+thelounge_role_docker_image_repo: "lscr.io/linuxserver/thelounge"+thelounge_role_docker_image_tag: "latest"+thelounge_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='thelounge') }}:{{ lookup('role_var', '_docker_image_tag', role='thelounge') }}" # Envs-thelounge_docker_envs_default:+thelounge_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-thelounge_docker_envs_custom: {}-thelounge_docker_envs: "{{ thelounge_docker_envs_default- | combine(thelounge_docker_envs_custom) }}"--# Commands-thelounge_docker_commands_default: []-thelounge_docker_commands_custom: []-thelounge_docker_commands: "{{ thelounge_docker_commands_default- + thelounge_docker_commands_custom }}"+thelounge_role_docker_envs_custom: {}+thelounge_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='thelounge')+ | combine(lookup('role_var', '_docker_envs_custom', role='thelounge')) }}" # Volumes-thelounge_docker_volumes_default:- - "{{ thelounge_paths_location }}:/config"-thelounge_docker_volumes_custom: []-thelounge_docker_volumes: "{{ thelounge_docker_volumes_default- + thelounge_docker_volumes_custom }}"--# Devices-thelounge_docker_devices_default: []-thelounge_docker_devices_custom: []-thelounge_docker_devices: "{{ thelounge_docker_devices_default- + thelounge_docker_devices_custom }}"--# Hosts-thelounge_docker_hosts_default: {}-thelounge_docker_hosts_custom: {}-thelounge_docker_hosts: "{{ docker_hosts_common- | combine(thelounge_docker_hosts_default)- | combine(thelounge_docker_hosts_custom) }}"--# Labels-thelounge_docker_labels_default: {}-thelounge_docker_labels_custom: {}-thelounge_docker_labels: "{{ docker_labels_common- | combine(thelounge_docker_labels_default)- | combine(thelounge_docker_labels_custom) }}"+thelounge_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='thelounge') }}:/config"+thelounge_role_docker_volumes_custom: []+thelounge_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='thelounge')+ + lookup('role_var', '_docker_volumes_custom', role='thelounge') }}" # Hostname-thelounge_docker_hostname: "{{ thelounge_name }}"+thelounge_role_docker_hostname: "{{ thelounge_name }}" # Networks-thelounge_docker_networks_alias: "{{ thelounge_name }}"-thelounge_docker_networks_default: []-thelounge_docker_networks_custom: []-thelounge_docker_networks: "{{ docker_networks_common- + thelounge_docker_networks_default- + thelounge_docker_networks_custom }}"--# Capabilities-thelounge_docker_capabilities_default: []-thelounge_docker_capabilities_custom: []-thelounge_docker_capabilities: "{{ thelounge_docker_capabilities_default- + thelounge_docker_capabilities_custom }}"--# Security Opts-thelounge_docker_security_opts_default: []-thelounge_docker_security_opts_custom: []-thelounge_docker_security_opts: "{{ thelounge_docker_security_opts_default- + thelounge_docker_security_opts_custom }}"+thelounge_role_docker_networks_alias: "{{ thelounge_name }}"+thelounge_role_docker_networks_default: []+thelounge_role_docker_networks_custom: []+thelounge_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='thelounge')+ + lookup('role_var', '_docker_networks_custom', role='thelounge') }}" # Restart Policy-thelounge_docker_restart_policy: unless-stopped+thelounge_role_docker_restart_policy: unless-stopped # State-thelounge_docker_state: started+thelounge_role_docker_state: started
modified
roles/thelounge/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/threadfin/defaults/main.yml
@@ -17,129 +17,86 @@ # Paths ################################ -threadfin_paths_folder: "{{ threadfin_name }}"-threadfin_paths_location: "{{ server_appdata_path }}/{{ threadfin_paths_folder }}"-threadfin_paths_folders_list:- - "{{ threadfin_paths_location }}"+threadfin_role_paths_folder: "{{ threadfin_name }}"+threadfin_role_paths_location: "{{ server_appdata_path }}/{{ threadfin_role_paths_folder }}"+threadfin_role_paths_folders_list:+ - "{{ threadfin_role_paths_location }}" ################################ # Web ################################ -threadfin_web_subdomain: "{{ threadfin_name }}"-threadfin_web_domain: "{{ user.domain }}"-threadfin_web_port: "34400"-threadfin_web_url: "{{ 'https://' + (threadfin_web_subdomain + '.' + threadfin_web_domain- if (threadfin_web_subdomain | length > 0)- else threadfin_web_domain) }}"+threadfin_role_web_subdomain: "{{ threadfin_name }}"+threadfin_role_web_domain: "{{ user.domain }}"+threadfin_role_web_port: "34400"+threadfin_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='threadfin') + '.' + lookup('role_var', '_web_domain', role='threadfin')+ if (lookup('role_var', '_web_subdomain', role='threadfin') | length > 0)+ else lookup('role_var', '_web_domain', role='threadfin')) }}" ################################ # DNS ################################ -threadfin_dns_record: "{{ threadfin_web_subdomain }}"-threadfin_dns_zone: "{{ threadfin_web_domain }}"-threadfin_dns_proxy: "{{ dns.proxied }}"+threadfin_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='threadfin') }}"+threadfin_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='threadfin') }}"+threadfin_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -threadfin_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-threadfin_traefik_middleware_default: "{{ traefik_default_middleware }}"-threadfin_traefik_certresolver: "{{ traefik_default_certresolver }}"-threadfin_traefik_enabled: true-threadfin_traefik_api_enabled: true-threadfin_traefik_api_endpoint: "PathPrefix(`/api`) || PathPrefix(`/images`) || PathPrefix(`/data_images`)"+threadfin_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+threadfin_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+threadfin_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+threadfin_role_traefik_enabled: true+threadfin_role_traefik_api_enabled: true+threadfin_role_traefik_api_endpoint: "PathPrefix(`/api`) || PathPrefix(`/images`) || PathPrefix(`/data_images`)" ################################ # Docker ################################ # Container-threadfin_docker_container: "{{ threadfin_name }}"+threadfin_role_docker_container: "{{ threadfin_name }}" # Image-threadfin_docker_image_pull: true-threadfin_docker_image_tag: "latest"-threadfin_docker_image: "fyb3roptik/threadfin:{{ threadfin_docker_image_tag }}"--# Ports-threadfin_docker_ports_defaults: []-threadfin_docker_ports_custom: []-threadfin_docker_ports: "{{ threadfin_docker_ports_defaults- + threadfin_docker_ports_custom }}"+threadfin_role_docker_image_pull: true+threadfin_role_docker_image_repo: "fyb3roptik/threadfin"+threadfin_role_docker_image_tag: "latest"+threadfin_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='threadfin') }}:{{ lookup('role_var', '_docker_image_tag', role='threadfin') }}" # Envs-threadfin_docker_envs_default:- - TZ: "{{ tz }}"- - THREADFIN_BRANCH: "main"- - THREADFIN_DEBUG: "0"-threadfin_docker_envs_custom: {}-threadfin_docker_envs: "{{ threadfin_docker_envs_default- | combine(threadfin_docker_envs_custom) }}"--# Commands-threadfin_docker_commands_default: []-threadfin_docker_commands_custom: []-threadfin_docker_commands: "{{ threadfin_docker_commands_default- + threadfin_docker_commands_custom }}"+threadfin_role_docker_envs_default:+ TZ: "{{ tz }}"+ THREADFIN_BRANCH: "main"+ THREADFIN_DEBUG: "0"+threadfin_role_docker_envs_custom: {}+threadfin_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='threadfin')+ | combine(lookup('role_var', '_docker_envs_custom', role='threadfin')) }}" # Volumes-threadfin_docker_volumes_default:- - "{{ threadfin_paths_location }}:/home/threadfin/conf:rw"-threadfin_docker_volumes_custom: []-threadfin_docker_volumes: "{{ threadfin_docker_volumes_default- + threadfin_docker_volumes_custom }}"--# Devices-threadfin_docker_devices_default: []-threadfin_docker_devices_custom: []-threadfin_docker_devices: "{{ threadfin_docker_devices_default- + threadfin_docker_devices_custom }}"--# Hosts-threadfin_docker_hosts_default: {}-threadfin_docker_hosts_custom: {}-threadfin_docker_hosts: "{{ docker_hosts_common- | combine(threadfin_docker_hosts_default)- | combine(threadfin_docker_hosts_custom) }}"--# Labels-threadfin_docker_labels_default: {}-threadfin_docker_labels_custom: {}-threadfin_docker_labels: "{{ docker_labels_common- | combine(threadfin_docker_labels_default)- | combine(threadfin_docker_labels_custom) }}"+threadfin_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='threadfin') }}:/home/threadfin/conf"+threadfin_role_docker_volumes_custom: []+threadfin_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='threadfin')+ + lookup('role_var', '_docker_volumes_custom', role='threadfin') }}" # Hostname-threadfin_docker_hostname: "{{ threadfin_name }}"+threadfin_role_docker_hostname: "{{ threadfin_name }}" # Networks-threadfin_docker_networks_alias: "{{ threadfin_name }}"-threadfin_docker_networks_default: []-threadfin_docker_networks_custom: []-threadfin_docker_networks: "{{ docker_networks_common- + threadfin_docker_networks_default- + threadfin_docker_networks_custom }}"--# Capabilities-threadfin_docker_capabilities_default: []-threadfin_docker_capabilities_custom: []-threadfin_docker_capabilities: "{{ threadfin_docker_capabilities_default- + threadfin_docker_capabilities_custom }}"--# Security Opts-threadfin_docker_security_opts_default: []-threadfin_docker_security_opts_custom: []-threadfin_docker_security_opts: "{{ threadfin_docker_security_opts_default- + threadfin_docker_security_opts_custom }}"+threadfin_role_docker_networks_alias: "{{ threadfin_name }}"+threadfin_role_docker_networks_default: []+threadfin_role_docker_networks_custom: []+threadfin_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='threadfin')+ + lookup('role_var', '_docker_networks_custom', role='threadfin') }}" # Restart Policy-threadfin_docker_restart_policy: unless-stopped+threadfin_role_docker_restart_policy: unless-stopped # State-threadfin_docker_state: started+threadfin_role_docker_state: started # User-threadfin_docker_user: "{{ uid }}:{{ gid }}"+threadfin_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/threadfin/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/tika/defaults/main.yml
@@ -18,83 +18,34 @@ ################################ # Container-tika_docker_container: "{{ tika_name }}"+tika_role_docker_container: "{{ tika_name }}" # Image-tika_docker_image_pull: true-tika_docker_image_tag: "latest"-tika_docker_image: "apache/tika:{{ tika_docker_image_tag }}"--# Ports-tika_docker_ports_defaults: []-tika_docker_ports_custom: []-tika_docker_ports: "{{ tika_docker_ports_defaults- + tika_docker_ports_custom }}"+tika_role_docker_image_pull: true+tika_role_docker_image_repo: "apache/tika"+tika_role_docker_image_tag: "latest"+tika_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='tika') }}:{{ lookup('role_var', '_docker_image_tag', role='tika') }}" # Envs-tika_docker_envs_default:+tika_role_docker_envs_default: TZ: "{{ tz }}"-tika_docker_envs_custom: {}-tika_docker_envs: "{{ tika_docker_envs_default- | combine(tika_docker_envs_custom) }}"--# Commands-tika_docker_commands_default: []-tika_docker_commands_custom: []-tika_docker_commands: "{{ tika_docker_commands_default- + tika_docker_commands_custom }}"--# Volumes-tika_docker_volumes_default: []-tika_docker_volumes_custom: []-tika_docker_volumes: "{{ tika_docker_volumes_default- + tika_docker_volumes_custom }}"--# Devices-tika_docker_devices_default: []-tika_docker_devices_custom: []-tika_docker_devices: "{{ tika_docker_devices_default- + tika_docker_devices_custom }}"--# Hosts-tika_docker_hosts_default: {}-tika_docker_hosts_custom: {}-tika_docker_hosts: "{{ docker_hosts_common- | combine(tika_docker_hosts_default)- | combine(tika_docker_hosts_custom) }}"--# Labels-tika_docker_labels_default: {}-tika_docker_labels_custom: {}-tika_docker_labels: "{{ docker_labels_common- | combine(tika_docker_labels_default)- | combine(tika_docker_labels_custom) }}"+tika_role_docker_envs_custom: {}+tika_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='tika')+ | combine(lookup('role_var', '_docker_envs_custom', role='tika')) }}" # Hostname-tika_docker_hostname: "{{ tika_name }}"+tika_role_docker_hostname: "{{ tika_name }}" # Networks-tika_docker_networks_alias: "{{ tika_name }}"-tika_docker_networks_default: []-tika_docker_networks_custom: []-tika_docker_networks: "{{ docker_networks_common- + tika_docker_networks_default- + tika_docker_networks_custom }}"--# Capabilities-tika_docker_capabilities_default: []-tika_docker_capabilities_custom: []-tika_docker_capabilities: "{{ tika_docker_capabilities_default- + tika_docker_capabilities_custom }}"--# Security Opts-tika_docker_security_opts_default: []-tika_docker_security_opts_custom: []-tika_docker_security_opts: "{{ tika_docker_security_opts_default- + tika_docker_security_opts_custom }}"+tika_role_docker_networks_alias: "{{ tika_name }}"+tika_role_docker_networks_default: []+tika_role_docker_networks_custom: []+tika_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='tika')+ + lookup('role_var', '_docker_networks_custom', role='tika') }}" # Restart Policy-tika_docker_restart_policy: always+tika_role_docker_restart_policy: unless-stopped # State-tika_docker_state: started+tika_role_docker_state: started
modified
roles/tqm/defaults/main.yml
@@ -7,7 +7,6 @@ # GNU General Public License v3.0 # ######################################################################### ---- ################################ # Basics ################################@@ -18,10 +17,10 @@ # Paths ################################ -tqm_paths_folder: "{{ tqm_name }}"-tqm_paths_location: "{{ server_appdata_path }}/{{ tqm_paths_folder }}"-tqm_paths_config_location: "{{ tqm_paths_location }}/config.yaml"-tqm_paths_service_location: "/etc/systemd/system/tqm.service"-tqm_paths_timer_location: "/etc/systemd/system/tqm.timer"-tqm_paths_folders_list:- - "{{ tqm_paths_location }}"+tqm_role_paths_folder: "{{ tqm_name }}"+tqm_role_paths_location: "{{ server_appdata_path }}/{{ tqm_role_paths_folder }}"+tqm_role_paths_config_location: "{{ tqm_role_paths_location }}/config.yaml"+tqm_role_paths_service_location: "/etc/systemd/system/tqm.service"+tqm_role_paths_timer_location: "/etc/systemd/system/tqm.timer"+tqm_role_paths_folders_list:+ - "{{ tqm_role_paths_location }}"
modified
roles/tqm/tasks/main.yml
@@ -9,7 +9,7 @@ --- - name: Check if 'tqm_service' exists ansible.builtin.stat:- path: "{{ tqm_paths_service_location }}"+ path: "{{ tqm_role_paths_service_location }}" register: tqm_service - name: Stop existing 'tqm_service'@@ -20,7 +20,7 @@ - name: Check if 'tqm_timer' exists ansible.builtin.stat:- path: "{{ tqm_paths_timer_location }}"+ path: "{{ tqm_role_paths_timer_location }}" register: tqm_timer - name: Stop existing 'tqm_timer'@@ -63,25 +63,25 @@ ansible.builtin.unarchive: src: "/tmp/tqm_extract/tqm_archive.tar.gz" dest: "/tmp/tqm_extract/"- remote_src: yes+ remote_src: true - name: Copy tqm binary to destination ansible.builtin.copy: src: "/tmp/tqm_extract/tqm"- dest: "{{ tqm_paths_location }}/tqm"+ dest: "{{ tqm_role_paths_location }}/tqm" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0775"- remote_src: yes+ remote_src: true - name: Clean up temporary files ansible.builtin.file: path: "/tmp/tqm_extract" state: absent -- name: Check if `{{ tqm_paths_config_location | basename }}` exists+- name: Check if `{{ tqm_role_paths_config_location | basename }}` exists ansible.builtin.stat:- path: "{{ tqm_paths_config_location }}"+ path: "{{ tqm_role_paths_config_location }}" register: tqm_config - name: "Fail when 'config.yml' is not present"@@ -97,7 +97,7 @@ - name: Import 'tqm_service' ansible.builtin.template: src: tqm.service.j2- dest: "{{ tqm_paths_service_location }}"+ dest: "{{ tqm_role_paths_service_location }}" mode: "0664" force: true @@ -105,14 +105,14 @@ ansible.builtin.systemd_service: name: tqm.service state: started- enabled: yes+ enabled: true daemon_reload: true when: not continuous_integration - name: Import 'tqm_timer' ansible.builtin.template: src: tqm.timer.j2- dest: "{{ tqm_paths_timer_location }}"+ dest: "{{ tqm_role_paths_timer_location }}" mode: "0664" force: true @@ -120,6 +120,6 @@ ansible.builtin.systemd_service: name: tqm.timer state: started- enabled: yes+ enabled: true daemon_reload: true when: not continuous_integration
modified
roles/tqm/templates/tqm.service.j2
@@ -5,9 +5,9 @@ User={{ user.name }} Group={{ user.name }} Type=oneshot-WorkingDirectory={{ tqm_paths_location }}+WorkingDirectory={{ lookup('role_var', '_paths_location', role='tqm') }} ExecStartPre=/bin/sleep 30-ExecStart={{ tqm_paths_location}}/tqm \+ExecStart={{ lookup('role_var', '_paths_location', role='tqm') }}/tqm \ clean {{ tqm.download_client | default('qbt', true) }} [Install]
modified
roles/trackarr/defaults/main.yml
@@ -17,137 +17,94 @@ # Paths ################################ -trackarr_paths_folder: "{{ trackarr_name }}"-trackarr_paths_location: "{{ server_appdata_path }}/{{ trackarr_paths_folder }}"-trackarr_paths_folders_list:- - "{{ trackarr_paths_location }}"-trackarr_paths_config_location: "{{ trackarr_paths_location }}/config.yaml"+trackarr_role_paths_folder: "{{ trackarr_name }}"+trackarr_role_paths_location: "{{ server_appdata_path }}/{{ trackarr_role_paths_folder }}"+trackarr_role_paths_config_location: "{{ trackarr_role_paths_location }}/config.yaml"+trackarr_role_paths_folders_list:+ - "{{ trackarr_role_paths_location }}" ################################ # Web ################################ -trackarr_web_subdomain: "{{ trackarr_name }}"-trackarr_web_domain: "{{ user.domain }}"-trackarr_web_port: "7337"-trackarr_web_url: "{{ 'https://' + (trackarr_web_subdomain + '.' + trackarr_web_domain- if (trackarr_web_subdomain | length > 0)- else trackarr_web_domain) }}"+trackarr_role_web_subdomain: "{{ trackarr_name }}"+trackarr_role_web_domain: "{{ user.domain }}"+trackarr_role_web_port: "7337"+trackarr_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='trackarr') + '.' + lookup('role_var', '_web_domain', role='trackarr')+ if (lookup('role_var', '_web_subdomain', role='trackarr') | length > 0)+ else lookup('role_var', '_web_domain', role='trackarr')) }}" ################################ # DNS ################################ -trackarr_dns_record: "{{ trackarr_web_subdomain }}"-trackarr_dns_zone: "{{ trackarr_web_domain }}"-trackarr_dns_proxy: "{{ dns.proxied }}"+trackarr_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='trackarr') }}"+trackarr_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='trackarr') }}"+trackarr_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -trackarr_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-trackarr_traefik_middleware_default: "{{ traefik_default_middleware }}"-trackarr_traefik_middleware_custom: ""-trackarr_traefik_certresolver: "{{ traefik_default_certresolver }}"-trackarr_traefik_enabled: true-trackarr_traefik_api_enabled: false-trackarr_traefik_api_endpoint: ""+trackarr_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+trackarr_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+trackarr_role_traefik_middleware_custom: ""+trackarr_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+trackarr_role_traefik_enabled: true+trackarr_role_traefik_api_enabled: false+trackarr_role_traefik_api_endpoint: "" ################################ # API ################################ # default to blank-trackarr_server_apikey:+trackarr_server_apikey: "" ################################ # Docker ################################ # Container-trackarr_docker_container: "{{ trackarr_name }}"+trackarr_role_docker_container: "{{ trackarr_name }}" # Image-trackarr_docker_image_pull: true-trackarr_docker_image_tag: "latest"-trackarr_docker_image: "cloudb0x/trackarr:{{ trackarr_docker_image_tag }}"--# Ports-trackarr_docker_ports_defaults: []-trackarr_docker_ports_custom: []-trackarr_docker_ports: "{{ trackarr_docker_ports_defaults- + trackarr_docker_ports_custom }}"+trackarr_role_docker_image_pull: true+trackarr_role_docker_image_repo: "cloudb0x/trackarr"+trackarr_role_docker_image_tag: "latest"+trackarr_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='trackarr') }}:{{ lookup('role_var', '_docker_image_tag', role='trackarr') }}" # Envs-trackarr_docker_envs_log_level: "1"-trackarr_docker_envs_default:+trackarr_role_docker_envs_log_level: "1"+trackarr_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"- VERBOSE: "{{ trackarr_docker_envs_log_level }}"-trackarr_docker_envs_custom: {}-trackarr_docker_envs: "{{ trackarr_docker_envs_default- | combine(trackarr_docker_envs_custom) }}"--# Commands-trackarr_docker_commands_default: []-trackarr_docker_commands_custom: []-trackarr_docker_commands: "{{ trackarr_docker_commands_default- + trackarr_docker_commands_custom }}"+ VERBOSE: "{{ lookup('role_var', '_docker_envs_log_level', role='trackarr') }}"+trackarr_role_docker_envs_custom: {}+trackarr_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='trackarr')+ | combine(lookup('role_var', '_docker_envs_custom', role='trackarr')) }}" # Volumes-trackarr_docker_volumes_default:- - "{{ trackarr_paths_location }}:/config"-trackarr_docker_volumes_custom: []-trackarr_docker_volumes: "{{ trackarr_docker_volumes_default- + trackarr_docker_volumes_custom }}"--# Devices-trackarr_docker_devices_default: []-trackarr_docker_devices_custom: []-trackarr_docker_devices: "{{ trackarr_docker_devices_default- + trackarr_docker_devices_custom }}"--# Hosts-trackarr_docker_hosts_default: {}-trackarr_docker_hosts_custom: {}-trackarr_docker_hosts: "{{ docker_hosts_common- | combine(trackarr_docker_hosts_default)- | combine(trackarr_docker_hosts_custom) }}"--# Labels-trackarr_docker_labels_default: {}-trackarr_docker_labels_custom: {}-trackarr_docker_labels: "{{ docker_labels_common- | combine(trackarr_docker_labels_default)- | combine(trackarr_docker_labels_custom) }}"+trackarr_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='trackarr') }}:/config"+trackarr_role_docker_volumes_custom: []+trackarr_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='trackarr')+ + lookup('role_var', '_docker_volumes_custom', role='trackarr') }}" # Hostname-trackarr_docker_hostname: "{{ trackarr_name }}"+trackarr_role_docker_hostname: "{{ trackarr_name }}" # Networks-trackarr_docker_networks_alias: "{{ trackarr_name }}"-trackarr_docker_networks_default: []-trackarr_docker_networks_custom: []-trackarr_docker_networks: "{{ docker_networks_common- + trackarr_docker_networks_default- + trackarr_docker_networks_custom }}"--# Capabilities-trackarr_docker_capabilities_default: []-trackarr_docker_capabilities_custom: []-trackarr_docker_capabilities: "{{ trackarr_docker_capabilities_default- + trackarr_docker_capabilities_custom }}"--# Security Opts-trackarr_docker_security_opts_default: []-trackarr_docker_security_opts_custom: []-trackarr_docker_security_opts: "{{ trackarr_docker_security_opts_default- + trackarr_docker_security_opts_custom }}"+trackarr_role_docker_networks_alias: "{{ trackarr_name }}"+trackarr_role_docker_networks_default: []+trackarr_role_docker_networks_custom: []+trackarr_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='trackarr')+ + lookup('role_var', '_docker_networks_custom', role='trackarr') }}" # Restart Policy-trackarr_docker_restart_policy: unless-stopped+trackarr_role_docker_restart_policy: unless-stopped # State-trackarr_docker_state: started+trackarr_role_docker_state: started
modified
roles/trackarr/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/trackarr/tasks/subtasks/pre-install.yml
@@ -9,11 +9,11 @@ --- - name: Pre-Install | Check if Trackarr config exists ansible.builtin.stat:- path: "{{ trackarr_paths_config_location }}"- register: trackarr_paths_config_location_stat+ path: "{{ trackarr_role_paths_config_location }}"+ register: trackarr_role_paths_config_location_stat - name: Pre-Install | New Trackarr config tasks- when: not trackarr_paths_config_location_stat.stat.exists+ when: not trackarr_role_paths_config_location_stat.stat.exists block: - name: Pre-Install | Get Instance Info ansible.builtin.include_tasks: "{{ resources_tasks_path }}/instances/get_info.yml"@@ -29,12 +29,12 @@ - name: Pre-Install | Import default Trackarr config ansible.builtin.template: src: "config.yaml.j2"- dest: "{{ trackarr_paths_config_location }}"+ dest: "{{ trackarr_role_paths_config_location }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664" force: false - - name: Pre-Install | Set 'trackarr_docker_state' variable+ - name: Pre-Install | Set 'trackarr_role_docker_state' variable ansible.builtin.set_fact:- trackarr_docker_state: "stopped"+ trackarr_role_docker_state: "stopped"
modified
roles/trackarr/templates/config.yaml.j2
@@ -40,8 +40,8 @@ apikey: "{{ trackarr_server_apikey }}" host: 0.0.0.0 pass: "{{ user.pass }}"- port: "{{ trackarr_web_port }}"- publicurl: "{{ trackarr_web_url }}"+ port: "{{ lookup('role_var', '_web_port', role='trackarr') }}"+ publicurl: "{{ lookup('role_var', '_web_url', role='trackarr') }}" user: {{ user.name }} trackers: iptorrents:
modified
roles/traefik_robotstxt/defaults/main.yml
@@ -10,6 +10,7 @@ ################################ # Basics ################################+ traefik_robotstxt_name: traefik-robotstxt ################################@@ -17,82 +18,39 @@ ################################ # Container-traefik_robotstxt_docker_container: "{{ traefik_robotstxt_name }}"+traefik_robotstxt_role_docker_container: "{{ traefik_robotstxt_name }}" # Image-traefik_robotstxt_docker_image_pull: true-traefik_robotstxt_docker_image_tag: "latest"-traefik_robotstxt_docker_image: "mstroecker/zig-robotstxt:{{ traefik_robotstxt_docker_image_tag }}"--# Envs-traefik_robotstxt_docker_envs_default: {}-traefik_robotstxt_docker_envs_custom: {}-traefik_robotstxt_docker_envs: "{{ traefik_robotstxt_docker_envs_default- | combine(traefik_robotstxt_docker_envs_custom) }}"--# Commands-traefik_robotstxt_docker_commands_default: []-traefik_robotstxt_docker_commands_custom: []-traefik_robotstxt_docker_commands: "{{ traefik_robotstxt_docker_commands_default- + traefik_robotstxt_docker_commands_custom }}"--# Volumes-traefik_robotstxt_docker_volumes_default: []-traefik_robotstxt_docker_volumes_custom: []-traefik_robotstxt_docker_volumes: "{{ traefik_robotstxt_docker_volumes_default- + traefik_robotstxt_docker_volumes_custom }}"--# Devices-traefik_robotstxt_docker_devices_default: []-traefik_robotstxt_docker_devices_custom: []-traefik_robotstxt_docker_devices: "{{ traefik_robotstxt_docker_devices_default- + traefik_robotstxt_docker_devices_custom }}"--# Hosts-traefik_robotstxt_docker_hosts_default: {}-traefik_robotstxt_docker_hosts_custom: {}-traefik_robotstxt_docker_hosts: "{{ docker_hosts_common- | combine(traefik_robotstxt_docker_hosts_default)- | combine(traefik_robotstxt_docker_hosts_custom) }}"+traefik_robotstxt_role_docker_image_pull: true+traefik_robotstxt_role_docker_image_repo: "mstroecker/zig-robotstxt"+traefik_robotstxt_role_docker_image_tag: "latest"+traefik_robotstxt_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='traefik_robotstxt') }}:{{ lookup('role_var', '_docker_image_tag', role='traefik_robotstxt') }}" # Labels-traefik_robotstxt_docker_labels_default:+traefik_robotstxt_role_docker_labels_default: traefik.enable: "true" traefik.http.routers.robotstxt.entrypoints: "web,websecure" traefik.http.routers.robotstxt.rule: "Path(`/robots.txt`)" traefik.http.routers.robotstxt.service: "robotstxt" traefik.http.services.robotstxt.loadbalancer.server.port: "8080" traefik.http.routers.robotstxt.priority: "99"-traefik_robotstxt_docker_labels_custom: {}-traefik_robotstxt_docker_labels: "{{ docker_labels_common- | combine(traefik_robotstxt_docker_labels_default)- | combine(traefik_robotstxt_docker_labels_custom) }}"+traefik_robotstxt_role_docker_labels_custom: {}+traefik_robotstxt_role_docker_labels: "{{ lookup('role_var', '_docker_labels_default', role='traefik_robotstxt')+ | combine(lookup('role_var', '_docker_labels_custom', role='traefik_robotstxt')) }}" # Hostname-traefik_robotstxt_docker_hostname: "{{ traefik_robotstxt_name }}"+traefik_robotstxt_role_docker_hostname: "{{ traefik_robotstxt_name }}" # Networks-traefik_robotstxt_docker_networks_alias: "{{ traefik_robotstxt_name }}"-traefik_robotstxt_docker_networks_default: []-traefik_robotstxt_docker_networks_custom: []-traefik_robotstxt_docker_networks: "{{ docker_networks_common- + traefik_robotstxt_docker_networks_default- + traefik_robotstxt_docker_networks_custom }}"--# Capabilities-traefik_robotstxt_docker_capabilities_default: []-traefik_robotstxt_docker_capabilities_custom: []-traefik_robotstxt_docker_capabilities: "{{ traefik_robotstxt_docker_capabilities_default- + traefik_robotstxt_docker_capabilities_custom }}"--# Security Opts-traefik_robotstxt_docker_security_opts_default: []-traefik_robotstxt_docker_security_opts_custom: []-traefik_robotstxt_docker_security_opts: "{{ traefik_robotstxt_docker_security_opts_default- + traefik_robotstxt_docker_security_opts_custom }}"+traefik_robotstxt_role_docker_networks_alias: "{{ traefik_robotstxt_name }}"+traefik_robotstxt_role_docker_networks_default: []+traefik_robotstxt_role_docker_networks_custom: []+traefik_robotstxt_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='traefik_robotstxt')+ + lookup('role_var', '_docker_networks_custom', role='traefik_robotstxt') }}" # Restart Policy-traefik_robotstxt_docker_restart_policy: unless-stopped+traefik_robotstxt_role_docker_restart_policy: unless-stopped # State-traefik_robotstxt_docker_state: started+traefik_robotstxt_role_docker_state: started
modified
roles/transmission/defaults/main.yml
@@ -17,154 +17,112 @@ # Paths ################################ -transmission_paths_folder: "{{ transmission_name }}"-transmission_paths_location: "{{ server_appdata_path }}/{{ transmission_paths_folder }}"-transmission_paths_downloads_location: "{{ downloads_torrents_path }}/{{ transmission_paths_folder }}"-transmission_paths_folders_list:- - "{{ transmission_paths_location }}"- - "{{ transmission_paths_downloads_location }}"- - "{{ transmission_paths_downloads_location }}/completed"- - "{{ transmission_paths_downloads_location }}/incoming"- - "{{ transmission_paths_downloads_location }}/watched"- - "{{ transmission_paths_downloads_location }}/torrents"-transmission_paths_setttings_location: "{{ transmission_paths_location }}/settings.json"+transmission_role_paths_folder: "{{ transmission_name }}"+transmission_role_paths_location: "{{ server_appdata_path }}/{{ transmission_role_paths_folder }}"+transmission_role_paths_downloads_location: "{{ downloads_torrents_path }}/{{ transmission_role_paths_folder }}"+transmission_role_paths_folders_list:+ - "{{ transmission_role_paths_location }}"+ - "{{ transmission_role_paths_downloads_location }}"+ - "{{ transmission_role_paths_downloads_location }}/completed"+ - "{{ transmission_role_paths_downloads_location }}/incoming"+ - "{{ transmission_role_paths_downloads_location }}/watched"+ - "{{ transmission_role_paths_downloads_location }}/torrents"+transmission_role_paths_setttings_location: "{{ transmission_role_paths_location }}/settings.json" ################################ # Web ################################ -transmission_web_subdomain: "{{ transmission_name }}"-transmission_web_domain: "{{ user.domain }}"-transmission_web_port: "9091"-transmission_web_url: "{{ 'https://' + (lookup('vars', transmission_name + '_web_subdomain', default=transmission_web_subdomain) + '.' + lookup('vars', transmission_name + '_web_domain', default=transmission_web_domain)- if (lookup('vars', transmission_name + '_web_subdomain', default=transmission_web_subdomain) | length > 0)- else lookup('vars', transmission_name + '_web_domain', default=transmission_web_domain)) }}"+transmission_role_web_subdomain: "{{ transmission_name }}"+transmission_role_web_domain: "{{ user.domain }}"+transmission_role_web_port: "9091"+transmission_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='transmission') + '.' + lookup('role_var', '_web_domain', role='transmission')+ if (lookup('role_var', '_web_subdomain', role='transmission') | length > 0)+ else lookup('role_var', '_web_domain', role='transmission')) }}" ################################ # DNS ################################ -transmission_dns_record: "{{ lookup('vars', transmission_name + '_web_subdomain', default=transmission_web_subdomain) }}"-transmission_dns_zone: "{{ lookup('vars', transmission_name + '_web_domain', default=transmission_web_domain) }}"-transmission_dns_proxy: "{{ dns.proxied }}"+transmission_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='transmission') }}"+transmission_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='transmission') }}"+transmission_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -transmission_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-transmission_traefik_middleware_default: "{{ traefik_default_middleware }}"-transmission_traefik_middleware_custom: ""-transmission_traefik_certresolver: "{{ traefik_default_certresolver }}"-transmission_traefik_enabled: true-transmission_traefik_api_enabled: true-transmission_traefik_api_endpoint: "PathPrefix(`/rpc`)"+transmission_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+transmission_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+transmission_role_traefik_middleware_custom: ""+transmission_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+transmission_role_traefik_enabled: true+transmission_role_traefik_api_enabled: true+transmission_role_traefik_api_endpoint: "PathPrefix(`/rpc`)" ################################ # Docker ################################ # Container-transmission_docker_container: "{{ transmission_name }}"+transmission_role_docker_container: "{{ transmission_name }}" # Image-transmission_docker_image_pull: true-transmission_docker_image_repo: "lscr.io/linuxserver/transmission"-transmission_docker_image_tag: "latest"-transmission_docker_image: "{{ lookup('vars', transmission_name + '_docker_image_repo', default=transmission_docker_image_repo)- + ':' + lookup('vars', transmission_name + '_docker_image_tag', default=transmission_docker_image_tag) }}"+transmission_role_docker_image_pull: true+transmission_role_docker_image_repo: "lscr.io/linuxserver/transmission"+transmission_role_docker_image_tag: "latest"+transmission_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='transmission') }}:{{ lookup('role_var', '_docker_image_tag', role='transmission') }}" # Ports # - Internal and External ports need to match for the next set of ports # - Lookup available ports and set docker ports accordingly-transmission_docker_ports_51413: "{{ port_lookup_51413.meta.port- if (port_lookup_51413.meta.port is defined) and (port_lookup_51413.meta.port | trim | length > 0)- else '51413' }}"-transmission_docker_ports_defaults:- - "{{ transmission_docker_ports_51413 }}:{{ transmission_docker_ports_51413 }}"- - "{{ transmission_docker_ports_51413 }}:{{ transmission_docker_ports_51413 }}/udp"-transmission_docker_ports_custom: []-transmission_docker_ports: "{{ lookup('vars', transmission_name + '_docker_ports_defaults', default=transmission_docker_ports_defaults)- + lookup('vars', transmission_name + '_docker_ports_custom', default=transmission_docker_ports_custom) }}"+transmission_role_docker_ports_51413: "{{ port_lookup_51413.meta.port+ if (port_lookup_51413.meta.port is defined) and (port_lookup_51413.meta.port | trim | length > 0)+ else '51413' }}"+transmission_role_docker_ports_default:+ - "{{ lookup('role_var', '_docker_ports_51413', role='transmission') }}:{{ lookup('role_var', '_docker_ports_51413', role='transmission') }}"+ - "{{ lookup('role_var', '_docker_ports_51413', role='transmission') }}:{{ lookup('role_var', '_docker_ports_51413', role='transmission') }}/udp"+transmission_role_docker_ports_custom: []+transmission_role_docker_ports: "{{ lookup('role_var', '_docker_ports_default', role='transmission')+ + lookup('role_var', '_docker_ports_custom', role='transmission') }}" # Envs-transmission_docker_envs_default:+transmission_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}" UMASK: "002" USER: "{{ user.name }}" PASS: "{{ user.pass }}"-transmission_docker_envs_custom: {}-transmission_docker_envs: "{{ lookup('vars', transmission_name + '_docker_envs_default', default=transmission_docker_envs_default)- | combine(lookup('vars', transmission_name + '_docker_envs_custom', default=transmission_docker_envs_custom)) }}"--# Commands-transmission_docker_commands_default: []-transmission_docker_commands_custom: []-transmission_docker_commands: "{{ lookup('vars', transmission_name + '_docker_commands_default', default=transmission_docker_commands_default)- + lookup('vars', transmission_name + '_docker_commands_custom', default=transmission_docker_commands_custom) }}"+transmission_role_docker_envs_custom: {}+transmission_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='transmission')+ | combine(lookup('role_var', '_docker_envs_custom', role='transmission')) }}" # Volumes-transmission_docker_volumes_default:- - "{{ transmission_paths_location }}:/config"+transmission_role_docker_volumes_default:+ - "{{ transmission_role_paths_location }}:/config" - "{{ server_appdata_path }}/scripts:/scripts"- - "{{ transmission_paths_downloads_location }}/watched:/watch"-transmission_docker_volumes_custom: []-transmission_docker_volumes: "{{ lookup('vars', transmission_name + '_docker_volumes_default', default=transmission_docker_volumes_default)- + lookup('vars', transmission_name + '_docker_volumes_custom', default=transmission_docker_volumes_custom) }}"--# Devices-transmission_docker_devices_default: []-transmission_docker_devices_custom: []-transmission_docker_devices: "{{ lookup('vars', transmission_name + '_docker_devices_default', default=transmission_docker_devices_default)- + lookup('vars', transmission_name + '_docker_devices_custom', default=transmission_docker_devices_custom) }}"--# Hosts-transmission_docker_hosts_default: {}-transmission_docker_hosts_custom: {}-transmission_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', transmission_name + '_docker_hosts_default', default=transmission_docker_hosts_default))- | combine(lookup('vars', transmission_name + '_docker_hosts_custom', default=transmission_docker_hosts_custom)) }}"--# Labels-transmission_docker_labels_default: {}-transmission_docker_labels_custom: {}-transmission_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', transmission_name + '_docker_labels_default', default=transmission_docker_labels_default))- | combine(lookup('vars', transmission_name + '_docker_labels_custom', default=transmission_docker_labels_custom)) }}"+ - "{{ transmission_role_paths_downloads_location }}/watched:/watch"+transmission_role_docker_volumes_custom: []+transmission_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='transmission')+ + lookup('role_var', '_docker_volumes_custom', role='transmission') }}" # Hostname-transmission_docker_hostname: "{{ transmission_name }}"--# Network Mode-transmission_docker_network_mode_default: "{{ docker_networks_name_common }}"-transmission_docker_network_mode: "{{ lookup('vars', transmission_name + '_docker_network_mode_default', default=transmission_docker_network_mode_default) }}"+transmission_role_docker_hostname: "{{ transmission_name }}" # Networks-transmission_docker_networks_alias: "{{ transmission_name }}"-transmission_docker_networks_default: []-transmission_docker_networks_custom: []-transmission_docker_networks: "{{ docker_networks_common- + lookup('vars', transmission_name + '_docker_networks_default', default=transmission_docker_networks_default)- + lookup('vars', transmission_name + '_docker_networks_custom', default=transmission_docker_networks_custom) }}"-# Capabilities-transmission_docker_capabilities_default: []-transmission_docker_capabilities_custom: []-transmission_docker_capabilities: "{{ lookup('vars', transmission_name + '_docker_capabilities_default', default=transmission_docker_capabilities_default)- + lookup('vars', transmission_name + '_docker_capabilities_custom', default=transmission_docker_capabilities_custom) }}"--# Security Opts-transmission_docker_security_opts_default: []-transmission_docker_security_opts_custom: []-transmission_docker_security_opts: "{{ lookup('vars', transmission_name + '_docker_security_opts_default', default=transmission_docker_security_opts_default)- + lookup('vars', transmission_name + '_docker_security_opts_custom', default=transmission_docker_security_opts_custom) }}"+transmission_role_docker_networks_alias: "{{ transmission_name }}"+transmission_role_docker_networks_default: []+transmission_role_docker_networks_custom: []+transmission_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='transmission')+ + lookup('role_var', '_docker_networks_custom', role='transmission') }}" # Restart Policy-transmission_docker_restart_policy: unless-stopped+transmission_role_docker_restart_policy: unless-stopped # Stop Timeout-transmission_docker_stop_timeout: 900+transmission_role_docker_stop_timeout: 900 # State-transmission_docker_state: started+transmission_role_docker_state: started
modified
roles/transmission/tasks/main2.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/transmission/tasks/subtasks/post-install/main.yml
@@ -9,10 +9,8 @@ --- - name: Post-Install | Wait for config files to be created ansible.builtin.wait_for:- path: "{{ item }}"+ path: "{{ transmission_role_paths_setttings_location }}" state: present- loop:- - "{{ transmission_paths_setttings_location }}" - name: Post-Install | Wait for 10 seconds ansible.builtin.wait_for:
modified
roles/transmission/tasks/subtasks/post-install/settings/main.yml
@@ -8,11 +8,11 @@ ###################################################################################### --- - name: Post-Install | Settings | Update 'settings.json' config settings- ansible.builtin.shell: jq '."peer-port"={{ transmission_docker_ports_51413 }}' "{{ transmission_paths_setttings_location }}" | sponge "{{ transmission_paths_setttings_location }}" # noqa 204+ ansible.builtin.shell: jq '."peer-port"={{ transmission_role_docker_ports_51413 }}' "{{ transmission_role_paths_setttings_location }}" | sponge "{{ transmission_role_paths_setttings_location }}" # noqa 204 -- name: Post-Install | Settings | Set '{{ transmission_paths_location }}' ownership recursively+- name: Post-Install | Settings | Set '{{ transmission_role_paths_location }}' ownership recursively ansible.builtin.file:- path: "{{ transmission_paths_location }}"+ path: "{{ transmission_role_paths_location }}" state: directory recurse: true owner: "{{ user.name }}"
modified
roles/transmissionvpn/defaults/main.yml
@@ -25,69 +25,63 @@ # Paths ################################ -transmissionvpn_paths_folder: "{{ transmissionvpn_name }}"-transmissionvpn_paths_location: "{{ server_appdata_path }}/{{ transmissionvpn_paths_folder }}"-transmissionvpn_paths_downloads_location: "{{ downloads_torrents_path }}/{{ transmissionvpn_paths_folder }}"--transmissionvpn_paths_folders_list:- - "{{ transmissionvpn_paths_location }}"- - "{{ transmissionvpn_paths_downloads_location }}"- - "{{ transmissionvpn_paths_downloads_location }}/completed"- - "{{ transmissionvpn_paths_downloads_location }}/incoming"- - "{{ transmissionvpn_paths_downloads_location }}/watched"- - "{{ transmissionvpn_paths_downloads_location }}/torrents"+transmissionvpn_role_paths_folder: "{{ transmissionvpn_name }}"+transmissionvpn_role_paths_location: "{{ server_appdata_path }}/{{ transmissionvpn_role_paths_folder }}"+transmissionvpn_role_paths_downloads_location: "{{ downloads_torrents_path }}/{{ transmissionvpn_role_paths_folder }}"+transmissionvpn_role_paths_folders_list:+ - "{{ transmissionvpn_role_paths_location }}"+ - "{{ transmissionvpn_role_paths_downloads_location }}"+ - "{{ transmissionvpn_role_paths_downloads_location }}/completed"+ - "{{ transmissionvpn_role_paths_downloads_location }}/incoming"+ - "{{ transmissionvpn_role_paths_downloads_location }}/watched"+ - "{{ transmissionvpn_role_paths_downloads_location }}/torrents" ################################ # Web ################################ -transmissionvpn_web_subdomain: "{{ transmissionvpn_name }}"-transmissionvpn_web_domain: "{{ user.domain }}"-transmissionvpn_web_port: "9091"-transmissionvpn_web_url: "{{ 'https://' + (transmissionvpn_web_subdomain + '.' + transmissionvpn_web_domain- if (transmissionvpn_web_subdomain | length > 0)- else transmissionvpn_web_domain) }}"+transmissionvpn_role_web_subdomain: "{{ transmissionvpn_name }}"+transmissionvpn_role_web_domain: "{{ user.domain }}"+transmissionvpn_role_web_port: "9091"+transmissionvpn_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='transmissionvpn') + '.' + lookup('role_var', '_web_domain', role='transmissionvpn')+ if (lookup('role_var', '_web_subdomain', role='transmissionvpn') | length > 0)+ else lookup('role_var', '_web_domain', role='transmissionvpn')) }}" ################################ # DNS ################################ -transmissionvpn_dns_record: "{{ transmissionvpn_web_subdomain }}"-transmissionvpn_dns_zone: "{{ transmissionvpn_web_domain }}"-transmissionvpn_dns_proxy: "{{ dns.proxied }}"+transmissionvpn_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='transmissionvpn') }}"+transmissionvpn_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='transmissionvpn') }}"+transmissionvpn_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -transmissionvpn_traefik_sso_middleware: ""-transmissionvpn_traefik_middleware_default: "{{ traefik_default_middleware }}"-transmissionvpn_traefik_middleware_custom: ""-transmissionvpn_traefik_certresolver: "{{ traefik_default_certresolver }}"-transmissionvpn_traefik_enabled: true-transmissionvpn_traefik_api_enabled: false-transmissionvpn_traefik_api_endpoint: ""+transmissionvpn_role_traefik_sso_middleware: ""+transmissionvpn_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+transmissionvpn_role_traefik_middleware_custom: ""+transmissionvpn_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+transmissionvpn_role_traefik_enabled: true+transmissionvpn_role_traefik_api_enabled: false+transmissionvpn_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-transmissionvpn_docker_container: "{{ transmissionvpn_name }}"+transmissionvpn_role_docker_container: "{{ transmissionvpn_name }}" # Image-transmissionvpn_docker_image_pull: true-transmissionvpn_docker_image_tag: "latest"-transmissionvpn_docker_image: "haugene/transmission-openvpn:{{ transmissionvpn_docker_image_tag }}"--# Ports-transmissionvpn_docker_ports_defaults: []-transmissionvpn_docker_ports_custom: []-transmissionvpn_docker_ports: "{{ transmissionvpn_docker_ports_defaults- + transmissionvpn_docker_ports_custom }}"+transmissionvpn_role_docker_image_pull: true+transmissionvpn_role_docker_image_repo: "haugene/transmission-openvpn"+transmissionvpn_role_docker_image_tag: "latest"+transmissionvpn_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='transmissionvpn') }}:{{ lookup('role_var', '_docker_image_tag', role='transmissionvpn') }}" # Envs-transmissionvpn_docker_envs_default:+transmissionvpn_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"@@ -97,81 +91,48 @@ UMASK_SET: "{{ transmissionvpn_umask_set }}" CREATE_TUN_DEVICE: "{{ transmissionvpn_create_tun_device }}" TRANSMISSION_HOME: "{{ transmissionvpn_transmission_home }}"--transmissionvpn_docker_envs_custom: {}-transmissionvpn_docker_envs: "{{ transmissionvpn_docker_envs_default- | combine(transmissionvpn_docker_envs_custom) }}"--# Commands-transmissionvpn_docker_commands_default: []-transmissionvpn_docker_commands_custom: []-transmissionvpn_docker_commands: "{{ transmissionvpn_docker_commands_default- + transmissionvpn_docker_commands_custom }}"+transmissionvpn_role_docker_envs_custom: {}+transmissionvpn_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='transmissionvpn')+ | combine(lookup('role_var', '_docker_envs_custom', role='transmissionvpn')) }}" # Volumes-transmissionvpn_docker_volumes_default:- - "{{ transmissionvpn_paths_location }}:/config"- - "{{ transmissionvpn_paths_location }}/data:/opt/transmissionvpn"+transmissionvpn_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='transmissionvpn') }}:/config"+ - "{{ lookup('role_var', '_paths_location', role='transmissionvpn') }}/data:/opt/transmissionvpn" - "{{ server_appdata_path }}/scripts:/scripts"- - "{{ transmissionvpn_paths_location }}/vpn:/etc/openvpn/custom"- - "{{ transmissionvpn_paths_downloads_location }}:/data"-transmissionvpn_docker_volumes_custom: []-transmissionvpn_docker_volumes: "{{ transmissionvpn_docker_volumes_default- + transmissionvpn_docker_volumes_custom }}"--# Devices-transmissionvpn_docker_devices_default: []-transmissionvpn_docker_devices_custom: []-transmissionvpn_docker_devices: "{{ transmissionvpn_docker_devices_default- + transmissionvpn_docker_devices_custom }}"--# Hosts-transmissionvpn_docker_hosts_default: {}-transmissionvpn_docker_hosts_custom: {}-transmissionvpn_docker_hosts: "{{ docker_hosts_common- | combine(transmissionvpn_docker_hosts_default)- | combine(transmissionvpn_docker_hosts_custom) }}"--# Labels-transmissionvpn_docker_labels_default: {}-transmissionvpn_docker_labels_custom: {}-transmissionvpn_docker_labels: "{{ docker_labels_common- | combine(transmissionvpn_docker_labels_default)- | combine(transmissionvpn_docker_labels_custom) }}"+ - "{{ lookup('role_var', '_paths_location', role='transmissionvpn') }}/vpn:/etc/openvpn/custom"+ - "{{ lookup('role_var', '_paths_downloads_location', role='transmissionvpn') }}:/data"+transmissionvpn_role_docker_volumes_custom: []+transmissionvpn_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='transmissionvpn')+ + lookup('role_var', '_docker_volumes_custom', role='transmissionvpn') }}" # Hostname-transmissionvpn_docker_hostname: "{{ transmissionvpn_name }}"+transmissionvpn_role_docker_hostname: "{{ transmissionvpn_name }}" # Networks-transmissionvpn_docker_networks_alias: "{{ transmissionvpn_name }}"-transmissionvpn_docker_networks_default: []-transmissionvpn_docker_networks_custom: []-transmissionvpn_docker_networks: "{{ docker_networks_common- + transmissionvpn_docker_networks_default- + transmissionvpn_docker_networks_custom }}"+transmissionvpn_role_docker_networks_alias: "{{ transmissionvpn_name }}"+transmissionvpn_role_docker_networks_default: []+transmissionvpn_role_docker_networks_custom: []+transmissionvpn_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='transmissionvpn')+ + lookup('role_var', '_docker_networks_custom', role='transmissionvpn') }}" # Capabilities-transmissionvpn_docker_capabilities_default:+transmissionvpn_role_docker_capabilities_default: - NET_ADMIN-transmissionvpn_docker_capabilities_custom: []-transmissionvpn_docker_capabilities: "{{ transmissionvpn_docker_capabilities_default- + transmissionvpn_docker_capabilities_custom }}"--# Security Opts-transmissionvpn_docker_security_opts_default: []-transmissionvpn_docker_security_opts_custom: []-transmissionvpn_docker_security_opts: "{{ transmissionvpn_docker_security_opts_default- + transmissionvpn_docker_security_opts_custom }}"+transmissionvpn_role_docker_capabilities_custom: []+transmissionvpn_role_docker_capabilities: "{{ transmissionvpn_role_docker_capabilities_default+ + transmissionvpn_role_docker_capabilities_custom }}" # Restart Policy-transmissionvpn_docker_restart_policy: unless-stopped+transmissionvpn_role_docker_restart_policy: unless-stopped # State-transmissionvpn_docker_state: started+transmissionvpn_role_docker_state: started # Sysctls-transmissionvpn_docker_sysctls:+transmissionvpn_role_docker_sysctls: net.ipv4.conf.all.src_valid_mark: "1" # Privileged-transmissionvpn_docker_privileged: "yes"+transmissionvpn_role_docker_privileged: true
modified
roles/transmissionvpn/tasks/main.yml
@@ -11,9 +11,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/trilium/defaults/main.yml
@@ -17,128 +17,85 @@ # Paths ################################ -trilium_paths_folder: "{{ trilium_name }}"-trilium_paths_location: "{{ server_appdata_path }}/{{ trilium_paths_folder }}"-trilium_paths_folders_list:- - "{{ trilium_paths_location }}"+trilium_role_paths_folder: "{{ trilium_name }}"+trilium_role_paths_location: "{{ server_appdata_path }}/{{ trilium_role_paths_folder }}"+trilium_role_paths_folders_list:+ - "{{ trilium_role_paths_location }}" ################################ # Web ################################ -trilium_web_subdomain: "{{ trilium_name }}"-trilium_web_domain: "{{ user.domain }}"-trilium_web_port: "8080"-trilium_web_url: "{{ 'https://' + (trilium_web_subdomain + '.' + trilium_web_domain- if (trilium_web_subdomain | length > 0)- else trilium_web_domain) }}"+trilium_role_web_subdomain: "{{ trilium_name }}"+trilium_role_web_domain: "{{ user.domain }}"+trilium_role_web_port: "8080"+trilium_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='trilium') + '.' + lookup('role_var', '_web_domain', role='trilium')+ if (lookup('role_var', '_web_subdomain', role='trilium') | length > 0)+ else lookup('role_var', '_web_domain', role='trilium')) }}" ################################ # DNS ################################ -trilium_dns_record: "{{ trilium_web_subdomain }}"-trilium_dns_zone: "{{ trilium_web_domain }}"-trilium_dns_proxy: "{{ dns.proxied }}"+trilium_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='trilium') }}"+trilium_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='trilium') }}"+trilium_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -trilium_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-trilium_traefik_middleware_default: "{{ traefik_default_middleware }}"-trilium_traefik_middleware_custom: ""-trilium_traefik_certresolver: "{{ traefik_default_certresolver }}"-trilium_traefik_enabled: true-trilium_traefik_api_enabled: false-trilium_traefik_api_endpoint: ""+trilium_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+trilium_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+trilium_role_traefik_middleware_custom: ""+trilium_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+trilium_role_traefik_enabled: true+trilium_role_traefik_api_enabled: false+trilium_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-trilium_docker_container: "{{ trilium_name }}"+trilium_role_docker_container: "{{ trilium_name }}" # Image-trilium_docker_image_pull: true-trilium_docker_image_tag: "latest"-trilium_docker_image: "triliumnext/notes:{{ trilium_docker_image_tag }}"--# Ports-trilium_docker_ports_defaults: []-trilium_docker_ports_custom: []-trilium_docker_ports: "{{ trilium_docker_ports_defaults- + trilium_docker_ports_custom }}"+trilium_role_docker_image_pull: true+trilium_role_docker_image_repo: "triliumnext/notes"+trilium_role_docker_image_tag: "latest"+trilium_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='trilium') }}:{{ lookup('role_var', '_docker_image_tag', role='trilium') }}" # Envs-trilium_docker_envs_default:+trilium_role_docker_envs_default: USER_UID: "{{ uid }}" USER_GID: "{{ gid }}" TZ: "{{ tz }}" TRILIUM_DATA_DIR: "/home/node/trilium-data"-trilium_docker_envs_custom: {}-trilium_docker_envs: "{{ trilium_docker_envs_default- | combine(trilium_docker_envs_custom) }}"--# Commands-trilium_docker_commands_default: []-trilium_docker_commands_custom: []-trilium_docker_commands: "{{ trilium_docker_commands_default- + trilium_docker_commands_custom }}"+trilium_role_docker_envs_custom: {}+trilium_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='trilium')+ | combine(lookup('role_var', '_docker_envs_custom', role='trilium')) }}" # Volumes-trilium_docker_volumes_default:- - "{{ trilium_paths_location }}:/home/node/trilium-data"-trilium_docker_volumes_custom: []-trilium_docker_volumes: "{{ trilium_docker_volumes_default- + trilium_docker_volumes_custom }}"--# Devices-trilium_docker_devices_default: []-trilium_docker_devices_custom: []-trilium_docker_devices: "{{ trilium_docker_devices_default- + trilium_docker_devices_custom }}"--# Hosts-trilium_docker_hosts_default: {}-trilium_docker_hosts_custom: {}-trilium_docker_hosts: "{{ docker_hosts_common- | combine(trilium_docker_hosts_default)- | combine(trilium_docker_hosts_custom) }}"--# Labels-trilium_docker_labels_default: {}-trilium_docker_labels_custom: {}-trilium_docker_labels: "{{ docker_labels_common- | combine(trilium_docker_labels_default)- | combine(trilium_docker_labels_custom) }}"+trilium_role_docker_volumes_default:+ - "{{ trilium_role_paths_location }}:/home/node/trilium-data"+trilium_role_docker_volumes_custom: []+trilium_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='trilium')+ + lookup('role_var', '_docker_volumes_custom', role='trilium') }}" # Hostname-trilium_docker_hostname: "{{ trilium_name }}"+trilium_role_docker_hostname: "{{ trilium_name }}" # Networks-trilium_docker_networks_alias: "{{ trilium_name }}"-trilium_docker_networks_default: []-trilium_docker_networks_custom: []-trilium_docker_networks: "{{ docker_networks_common- + trilium_docker_networks_default- + trilium_docker_networks_custom }}"--# Capabilities-trilium_docker_capabilities_default: []-trilium_docker_capabilities_custom: []-trilium_docker_capabilities: "{{ trilium_docker_capabilities_default- + trilium_docker_capabilities_custom }}"--# Security Opts-trilium_docker_security_opts_default: []-trilium_docker_security_opts_custom: []-trilium_docker_security_opts: "{{ trilium_docker_security_opts_default- + trilium_docker_security_opts_custom }}"+trilium_role_docker_networks_alias: "{{ trilium_name }}"+trilium_role_docker_networks_default: []+trilium_role_docker_networks_custom: []+trilium_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='trilium')+ + lookup('role_var', '_docker_networks_custom', role='trilium') }}" # Restart Policy-trilium_docker_restart_policy: unless-stopped+trilium_role_docker_restart_policy: unless-stopped # State-trilium_docker_state: started+trilium_role_docker_state: started
modified
roles/trilium/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/tubearchivist/defaults/main.yml
@@ -18,156 +18,113 @@ # Settings ################################ -tubearchivist_enable_cast: "false"+tubearchivist_role_enable_cast: "false" ################################ # Paths ################################ -tubearchivist_paths_folder: "{{ tubearchivist_name }}"-tubearchivist_paths_location: "{{ server_appdata_path }}/{{ tubearchivist_paths_folder }}/app"-tubearchivist_paths_downloads_location: "{{ downloads_root_path }}/{{ tubearchivist_paths_folder }}"-tubearchivist_paths_folders_list:- - "{{ tubearchivist_paths_location }}"- - "{{ tubearchivist_paths_downloads_location }}"- - "{{ tubearchivist_paths_location }}/cache"+tubearchivist_role_paths_folder: "{{ tubearchivist_name }}"+tubearchivist_role_paths_location: "{{ server_appdata_path }}/{{ tubearchivist_role_paths_folder }}/app"+tubearchivist_role_paths_downloads_location: "{{ downloads_root_path }}/{{ tubearchivist_role_paths_folder }}"+tubearchivist_role_paths_folders_list:+ - "{{ tubearchivist_role_paths_location }}"+ - "{{ tubearchivist_role_paths_downloads_location }}"+ - "{{ tubearchivist_role_paths_location }}/cache" ################################ # Web ################################ -tubearchivist_web_subdomain: "{{ tubearchivist_name }}"-tubearchivist_web_domain: "{{ user.domain }}"-tubearchivist_web_port: "8000"-tubearchivist_web_url: "{{ 'https://' + (tubearchivist_web_subdomain + '.' + tubearchivist_web_domain- if (tubearchivist_web_subdomain | length > 0)- else tubearchivist_web_domain) }}"+tubearchivist_role_web_subdomain: "{{ tubearchivist_name }}"+tubearchivist_role_web_domain: "{{ user.domain }}"+tubearchivist_role_web_port: "8000"+tubearchivist_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='tubearchivist') + '.' + lookup('role_var', '_web_domain', role='tubearchivist')+ if (lookup('role_var', '_web_subdomain', role='tubearchivist') | length > 0)+ else lookup('role_var', '_web_domain', role='tubearchivist')) }}" ################################ # DNS ################################ -tubearchivist_dns_record: "{{ tubearchivist_web_subdomain }}"-tubearchivist_dns_zone: "{{ tubearchivist_web_domain }}"-tubearchivist_dns_proxy: "{{ dns.proxied }}"+tubearchivist_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='tubearchivist') }}"+tubearchivist_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='tubearchivist') }}"+tubearchivist_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -tubearchivist_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-tubearchivist_traefik_middleware_default: "{{ traefik_default_middleware }}"-tubearchivist_traefik_middleware_custom: ""-tubearchivist_traefik_certresolver: "{{ traefik_default_certresolver }}"-tubearchivist_traefik_enabled: true-tubearchivist_traefik_api_enabled: true-tubearchivist_traefik_api_endpoint: "PathPrefix(`/api`)"+tubearchivist_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+tubearchivist_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+tubearchivist_role_traefik_middleware_custom: ""+tubearchivist_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+tubearchivist_role_traefik_enabled: true+tubearchivist_role_traefik_api_enabled: true+tubearchivist_role_traefik_api_endpoint: "PathPrefix(`/api`)" ################################ # Docker ################################ # Container-tubearchivist_docker_container: "{{ tubearchivist_name }}"+tubearchivist_role_docker_container: "{{ tubearchivist_name }}" # Image-tubearchivist_docker_image_pull: true-tubearchivist_docker_image_tag: "v0.4.13"-tubearchivist_docker_image: "bbilly1/tubearchivist:{{ tubearchivist_docker_image_tag }}"--# Ports-tubearchivist_docker_ports_defaults: []-tubearchivist_docker_ports_custom: []-tubearchivist_docker_ports: "{{ tubearchivist_docker_ports_defaults- + tubearchivist_docker_ports_custom }}"+tubearchivist_role_docker_image_pull: true+tubearchivist_role_docker_image_tag: "v0.4.13"+tubearchivist_role_docker_image_repo: "bbilly1/tubearchivist"+tubearchivist_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='tubearchivist') }}:{{ lookup('role_var', '_docker_image_tag', role='tubearchivist') }}" # Envs-tubearchivist_docker_envs_http_header: "{{ 'HTTP_REMOTE_USER'- if ('authelia' in tubearchivist_traefik_sso_middleware)- else ('HTTP_X_AUTHENTIK_USERNAME'- if ('authentik' in tubearchivist_traefik_sso_middleware)- else '') }}"-tubearchivist_docker_envs_default:+tubearchivist_role_docker_envs_http_header: "{{ 'HTTP_REMOTE_USER'+ if ('authelia' in lookup('role_var', '_traefik_sso_middleware', role='tubearchivist'))+ else ('HTTP_X_AUTHENTIK_USERNAME'+ if ('authentik' in lookup('role_var', '_traefik_sso_middleware', role='tubearchivist'))+ else '') }}"+tubearchivist_role_docker_envs_default: TZ: "{{ tz }}" ES_URL: "http://{{ tubearchivist_name }}-elasticsearch:9200" REDIS_HOST: "{{ tubearchivist_name }}-redis" HOST_UID: "{{ uid }}" HOST_GID: "{{ gid }}"- TA_HOST: "localhost 127.0.0.1 {{ tubearchivist_name }} {{ tubearchivist_web_subdomain + '.' + tubearchivist_web_domain }} {{ tubearchivist_web_url }}"- TA_ENABLE_AUTH_PROXY: "{{ 'true' if (tubearchivist_traefik_sso_middleware | length > 0) else omit }}"- TA_AUTH_PROXY_USERNAME_HEADER: "{{ tubearchivist_docker_envs_http_header if (tubearchivist_traefik_sso_middleware | length > 0) else omit }}"+ TA_HOST: "localhost 127.0.0.1 {{ tubearchivist_name }} {{ lookup('role_var', '_web_subdomain', role='tubearchivist') + '.' + lookup('role_var', '_web_domain', role='tubearchivist') }} {{ lookup('role_var', '_web_url', role='tubearchivist') }}"+ TA_ENABLE_AUTH_PROXY: "{{ 'true' if (lookup('role_var', '_traefik_sso_middleware', role='tubearchivist') | length > 0) else omit }}"+ TA_AUTH_PROXY_USERNAME_HEADER: "{{ lookup('role_var', '_docker_envs_http_header', role='tubearchivist') if (lookup('role_var', '_traefik_sso_middleware', role='tubearchivist') | length > 0) else omit }}" TA_USERNAME: "{{ user.name }}" TA_PASSWORD: "{{ user.pass }}"- ELASTIC_PASSWORD: "{{ elasticsearch_docker_env_password }}"- ENABLE_CAST: "{{ tubearchivist_enable_cast }}"-tubearchivist_docker_envs_custom: {}-tubearchivist_docker_envs: "{{ tubearchivist_docker_envs_default- | combine(tubearchivist_docker_envs_custom) }}"--# Commands-tubearchivist_docker_commands_default: []-tubearchivist_docker_commands_custom: []-tubearchivist_docker_commands: "{{ tubearchivist_docker_commands_default- + tubearchivist_docker_commands_custom }}"+ ELASTIC_PASSWORD: "{{ lookup('role_var', '_docker_env_password', role='elasticsearch') }}"+ ENABLE_CAST: "{{ lookup('role_var', '_enable_cast', role='tubearchivist') }}"+tubearchivist_role_docker_envs_custom: {}+tubearchivist_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='tubearchivist')+ | combine(lookup('role_var', '_docker_envs_custom', role='tubearchivist')) }}" # Volumes-tubearchivist_docker_volumes_default:- - "{{ tubearchivist_paths_downloads_location }}/:/youtube"- - "{{ tubearchivist_paths_location }}/cache:/cache"-tubearchivist_docker_volumes_custom: []-tubearchivist_docker_volumes: "{{ tubearchivist_docker_volumes_default- + tubearchivist_docker_volumes_custom }}"--# Devices-tubearchivist_docker_devices_default: []-tubearchivist_docker_devices_custom: []-tubearchivist_docker_devices: "{{ tubearchivist_docker_devices_default- + tubearchivist_docker_devices_custom }}"--# Hosts-tubearchivist_docker_hosts_default: {}-tubearchivist_docker_hosts_custom: {}-tubearchivist_docker_hosts: "{{ docker_hosts_common- | combine(tubearchivist_docker_hosts_default)- | combine(tubearchivist_docker_hosts_custom) }}"--# Labels-tubearchivist_docker_labels_default: {}-tubearchivist_docker_labels_custom: {}-tubearchivist_docker_labels: "{{ docker_labels_common- | combine(tubearchivist_docker_labels_default)- | combine(tubearchivist_docker_labels_custom) }}"+tubearchivist_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_downloads_location', role='tubearchivist') }}/:/youtube"+ - "{{ lookup('role_var', '_paths_location', role='tubearchivist') }}/cache:/cache"+tubearchivist_role_docker_volumes_custom: []+tubearchivist_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='tubearchivist')+ + lookup('role_var', '_docker_volumes_custom', role='tubearchivist') }}" # Hostname-tubearchivist_docker_hostname: "{{ tubearchivist_name }}"+tubearchivist_role_docker_hostname: "{{ tubearchivist_name }}" # Networks-tubearchivist_docker_networks_alias: "{{ tubearchivist_name }}"-tubearchivist_docker_networks_default: []-tubearchivist_docker_networks_custom: []-tubearchivist_docker_networks: "{{ docker_networks_common- + tubearchivist_docker_networks_default- + tubearchivist_docker_networks_custom }}"--# Capabilities-tubearchivist_docker_capabilities_default: []-tubearchivist_docker_capabilities_custom: []-tubearchivist_docker_capabilities: "{{ tubearchivist_docker_capabilities_default- + tubearchivist_docker_capabilities_custom }}"--# Security Opts-tubearchivist_docker_security_opts_default: []-tubearchivist_docker_security_opts_custom: []-tubearchivist_docker_security_opts: "{{ tubearchivist_docker_security_opts_default- + tubearchivist_docker_security_opts_custom }}"+tubearchivist_role_docker_networks_alias: "{{ tubearchivist_name }}"+tubearchivist_role_docker_networks_default: []+tubearchivist_role_docker_networks_custom: []+tubearchivist_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='tubearchivist')+ + lookup('role_var', '_docker_networks_custom', role='tubearchivist') }}" # Restart Policy-tubearchivist_docker_restart_policy: unless-stopped+tubearchivist_role_docker_restart_policy: unless-stopped # State-tubearchivist_docker_state: started+tubearchivist_role_docker_state: started # Dependencies-tubearchivist_depends_on: "{{ tubearchivist_name }}-elasticsearch,{{ tubearchivist_name }}-redis"-tubearchivist_depends_on_delay: "0"-tubearchivist_depends_on_healthchecks: "false"+tubearchivist_role_depends_on: "{{ tubearchivist_name }}-elasticsearch,{{ tubearchivist_name }}-redis"+tubearchivist_role_depends_on_delay: "0"+tubearchivist_role_depends_on_healthchecks: "false"
modified
roles/tubearchivist/tasks/main.yml
@@ -18,9 +18,9 @@ name: redis vars: redis_instances: ["{{ tubearchivist_name }}-redis"]- redis_docker_image_tag: "8-alpine"- redis_paths_folder: "{{ tubearchivist_name }}"- redis_paths_location: "{{ server_appdata_path }}/{{ redis_paths_folder }}/redis"+ redis_role_docker_image_tag: "8-alpine"+ redis_role_paths_folder: "{{ tubearchivist_name }}"+ redis_role_paths_location: "{{ server_appdata_path }}/{{ redis_role_paths_folder }}/redis" - name: Remove legacy Elasticsearch Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -32,10 +32,10 @@ name: elasticsearch vars: elasticsearch_name: "{{ tubearchivist_name }}-elasticsearch"- elasticsearch_docker_image: "bbilly1/tubearchivist-es"- elasticsearch_paths_folder: "{{ tubearchivist_name }}"- elasticsearch_paths_location: "{{ server_appdata_path }}/{{ elasticsearch_paths_folder }}/elastiscsearch"- elasticsearch_docker_envs_custom:+ elasticsearch_role_docker_image: "bbilly1/tubearchivist-es"+ elasticsearch_role_paths_folder: "{{ tubearchivist_name }}"+ elasticsearch_role_paths_location: "{{ server_appdata_path }}/{{ elasticsearch_role_paths_folder }}/elastiscsearch"+ elasticsearch_role_docker_envs_custom: path.repo: "/usr/share/elasticsearch/data/snapshot" ES_JAVA_OPTS: "-Xms512m -Xmx512m" xpack.security.enabled: "true"@@ -43,9 +43,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/tvheadend/defaults/main.yml
@@ -17,131 +17,88 @@ # Paths ################################ -tvheadend_paths_folder: "{{ tvheadend_name }}"-tvheadend_paths_location: "{{ server_appdata_path }}/{{ tvheadend_paths_folder }}"-tvheadend_paths_downloads_location: "{{ downloads_root_path }}/{{ tvheadend_paths_folder }}"-tvheadend_paths_folders_list:- - "{{ tvheadend_paths_location }}"- - "{{ tvheadend_paths_downloads_location }}"+tvheadend_role_paths_folder: "{{ tvheadend_name }}"+tvheadend_role_paths_location: "{{ server_appdata_path }}/{{ tvheadend_role_paths_folder }}"+tvheadend_role_paths_downloads_location: "{{ downloads_root_path }}/{{ tvheadend_role_paths_folder }}"+tvheadend_role_paths_folders_list:+ - "{{ tvheadend_role_paths_location }}"+ - "{{ tvheadend_role_paths_downloads_location }}" ################################ # Web ################################ -tvheadend_web_subdomain: "{{ tvheadend_name }}"-tvheadend_web_domain: "{{ user.domain }}"-tvheadend_web_port: "9981"-tvheadend_web_url: "{{ 'https://' + (tvheadend_web_subdomain + '.' + tvheadend_web_domain- if (tvheadend_web_subdomain | length > 0)- else tvheadend_web_domain) }}"+tvheadend_role_web_subdomain: "{{ tvheadend_name }}"+tvheadend_role_web_domain: "{{ user.domain }}"+tvheadend_role_web_port: "9981"+tvheadend_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='tvheadend') + '.' + lookup('role_var', '_web_domain', role='tvheadend')+ if (lookup('role_var', '_web_subdomain', role='tvheadend') | length > 0)+ else lookup('role_var', '_web_domain', role='tvheadend')) }}" ################################ # DNS ################################ -tvheadend_dns_record: "{{ tvheadend_web_subdomain }}"-tvheadend_dns_zone: "{{ tvheadend_web_domain }}"-tvheadend_dns_proxy: "{{ dns.proxied }}"+tvheadend_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='tvheadend') }}"+tvheadend_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='tvheadend') }}"+tvheadend_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -tvheadend_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-tvheadend_traefik_middleware_default: "{{ traefik_default_middleware }}"-tvheadend_traefik_middleware_custom: ""-tvheadend_traefik_certresolver: "{{ traefik_default_certresolver }}"-tvheadend_traefik_enabled: true-tvheadend_traefik_api_enabled: false-tvheadend_traefik_api_endpoint: ""+tvheadend_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+tvheadend_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+tvheadend_role_traefik_middleware_custom: ""+tvheadend_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+tvheadend_role_traefik_enabled: true+tvheadend_role_traefik_api_enabled: false+tvheadend_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-tvheadend_docker_container: "{{ tvheadend_name }}"+tvheadend_role_docker_container: "{{ tvheadend_name }}" # Image-tvheadend_docker_image_pull: true-tvheadend_docker_image_tag: "latest"-tvheadend_docker_image: "lscr.io/linuxserver/tvheadend:{{ tvheadend_docker_image_tag }}"--# Ports-tvheadend_docker_ports_defaults: []-tvheadend_docker_ports_custom: []-tvheadend_docker_ports: "{{ tvheadend_docker_ports_defaults- + tvheadend_docker_ports_custom }}"+tvheadend_role_docker_image_pull: true+tvheadend_role_docker_image_repo: "lscr.io/linuxserver/tvheadend"+tvheadend_role_docker_image_tag: "latest"+tvheadend_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='tvheadend') }}:{{ lookup('role_var', '_docker_image_tag', role='tvheadend') }}" # Envs-tvheadend_docker_envs_default:+tvheadend_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"-tvheadend_docker_envs_custom: {}-tvheadend_docker_envs: "{{ tvheadend_docker_envs_default- | combine(tvheadend_docker_envs_custom) }}"--# Commands-tvheadend_docker_commands_default: []-tvheadend_docker_commands_custom: []-tvheadend_docker_commands: "{{ tvheadend_docker_commands_default- + tvheadend_docker_commands_custom }}"+tvheadend_role_docker_envs_custom: {}+tvheadend_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='tvheadend')+ | combine(lookup('role_var', '_docker_envs_custom', role='tvheadend')) }}" # Volumes-tvheadend_docker_volumes_default:- - "{{ tvheadend_paths_location }}:/config"- - "{{ tvheadend_paths_downloads_location }}:/recordings"-tvheadend_docker_volumes_custom: []-tvheadend_docker_volumes: "{{ tvheadend_docker_volumes_default- + tvheadend_docker_volumes_custom }}"--# Devices-tvheadend_docker_devices_default: []-tvheadend_docker_devices_custom: []-tvheadend_docker_devices: "{{ tvheadend_docker_devices_default- + tvheadend_docker_devices_custom }}"--# Hosts-tvheadend_docker_hosts_default: {}-tvheadend_docker_hosts_custom: {}-tvheadend_docker_hosts: "{{ docker_hosts_common- | combine(tvheadend_docker_hosts_default)- | combine(tvheadend_docker_hosts_custom) }}"--# Labels-tvheadend_docker_labels_default: {}-tvheadend_docker_labels_custom: {}-tvheadend_docker_labels: "{{ docker_labels_common- | combine(tvheadend_docker_labels_default)- | combine(tvheadend_docker_labels_custom) }}"+tvheadend_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='tvheadend') }}:/config"+ - "{{ lookup('role_var', '_paths_downloads_location', role='tvheadend') }}:/recordings"+tvheadend_role_docker_volumes_custom: []+tvheadend_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='tvheadend')+ + lookup('role_var', '_docker_volumes_custom', role='tvheadend') }}" # Hostname-tvheadend_docker_hostname: "{{ tvheadend_name }}"+tvheadend_role_docker_hostname: "{{ tvheadend_name }}" # Networks-tvheadend_docker_networks_alias: "{{ tvheadend_name }}"-tvheadend_docker_networks_default: []-tvheadend_docker_networks_custom: []-tvheadend_docker_networks: "{{ docker_networks_common- + tvheadend_docker_networks_default- + tvheadend_docker_networks_custom }}"--# Capabilities-tvheadend_docker_capabilities_default: []-tvheadend_docker_capabilities_custom: []-tvheadend_docker_capabilities: "{{ tvheadend_docker_capabilities_default- + tvheadend_docker_capabilities_custom }}"--# Security Opts-tvheadend_docker_security_opts_default: []-tvheadend_docker_security_opts_custom: []-tvheadend_docker_security_opts: "{{ tvheadend_docker_security_opts_default- + tvheadend_docker_security_opts_custom }}"+tvheadend_role_docker_networks_alias: "{{ tvheadend_name }}"+tvheadend_role_docker_networks_default: []+tvheadend_role_docker_networks_custom: []+tvheadend_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='tvheadend')+ + lookup('role_var', '_docker_networks_custom', role='tvheadend') }}" # Restart Policy-tvheadend_docker_restart_policy: unless-stopped+tvheadend_role_docker_restart_policy: unless-stopped # State-tvheadend_docker_state: started+tvheadend_role_docker_state: started
modified
roles/tvheadend/tasks/main.yml
@@ -11,9 +11,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/unifi/tasks/main.yml
@@ -9,5 +9,5 @@ --- - name: "Fail with deprecation warning" ansible.builtin.fail:- msg: "The 'unifi' role which used the 'unifi-controller' image is deprecated in favor of the 'unifi-network-application' role using the 'unifi-network-application' image. If you are using 'unifi' role, perform a full backup of your Unifi Network Application from the Unifi interface. Then rename your '/opt/unifi' folder to '/opt/unifi-controller' for backup purposes. Then run 'sb install sandbox-unifi-network-application' to deploy the new image and restore the backup when prompted by the setup wizard."+ msg: "The 'unifi' role which used the 'unifi-controller' image is deprecated in favor of the 'unifi-network-application' role using the 'unifi-network-application' image. If you are using 'unifi' role, perform a full backup of your Unifi Network Application from the Unifi interface. Then rename your '{{ server_appdata_path }}/unifi' folder to '{{ server_appdata_path }}/unifi-controller' for backup purposes. Then run 'sb install sandbox-unifi-network-application' to deploy the new image and restore the backup when prompted by the setup wizard." when: not continuous_integration
modified
roles/unifi_network_application/defaults/main.yml
@@ -26,68 +26,68 @@ # Paths ################################ -unifi_network_application_paths_folder: "{{ unifi_network_application_name }}"-unifi_network_application_paths_location: "{{ server_appdata_path }}/{{ unifi_network_application_paths_folder }}"-unifi_network_application_paths_folders_list:- - "{{ unifi_network_application_paths_location }}"+unifi_network_application_role_paths_folder: "{{ unifi_network_application_name }}"+unifi_network_application_role_paths_location: "{{ server_appdata_path }}/{{ unifi_network_application_role_paths_folder }}"+unifi_network_application_role_paths_folders_list:+ - "{{ unifi_network_application_role_paths_location }}" ################################ # Web ################################ -unifi_network_application_web_subdomain: "{{ unifi_network_application_name }}"-unifi_network_application_web_domain: "{{ user.domain }}"-unifi_network_application_web_port: "8443"-unifi_network_application_web_scheme: "https"-unifi_network_application_web_serverstransport: "skipverify@file"-unifi_network_application_web_url: "{{ 'https://' + (unifi_network_application_web_subdomain + '.' + unifi_network_application_web_domain- if (unifi_network_application_web_subdomain | length > 0)- else unifi_network_application_web_domain) }}"+unifi_network_application_role_web_subdomain: "{{ unifi_network_application_name }}"+unifi_network_application_role_web_domain: "{{ user.domain }}"+unifi_network_application_role_web_port: "8443"+unifi_network_application_role_web_scheme: "https"+unifi_network_application_role_web_serverstransport: "skipverify@file"+unifi_network_application_role_web_url: "{{ 'https://' + (unifi_network_application_role_web_subdomain + '.' + unifi_network_application_role_web_domain+ if (unifi_network_application_role_web_subdomain | length > 0)+ else unifi_network_application_role_web_domain) }}" ################################ # DNS ################################ -unifi_network_application_dns_record: "{{ unifi_network_application_web_subdomain }}"-unifi_network_application_dns_zone: "{{ unifi_network_application_web_domain }}"-unifi_network_application_dns_proxy: "{{ dns.proxied }}"+unifi_network_application_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='unifi_network_application') }}"+unifi_network_application_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='unifi_network_application') }}"+unifi_network_application_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -unifi_network_application_traefik_sso_middleware: ""-unifi_network_application_traefik_middleware_default: "{{ traefik_default_middleware }}"-unifi_network_application_traefik_middleware_custom: ""-unifi_network_application_traefik_certresolver: "{{ traefik_default_certresolver }}"-unifi_network_application_traefik_enabled: true-unifi_network_application_traefik_api_enabled: false-unifi_network_application_traefik_api_endpoint: ""+unifi_network_application_role_traefik_sso_middleware: ""+unifi_network_application_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+unifi_network_application_role_traefik_middleware_custom: ""+unifi_network_application_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+unifi_network_application_role_traefik_enabled: true+unifi_network_application_role_traefik_api_enabled: false+unifi_network_application_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-unifi_network_application_docker_container: "{{ unifi_network_application_name }}"+unifi_network_application_role_docker_container: "{{ unifi_network_application_name }}" # Image-unifi_network_application_docker_image_pull: true-unifi_network_application_docker_image_tag: "latest"-unifi_network_application_docker_image_repo: "lscr.io/linuxserver/unifi-network-application"-unifi_network_application_docker_image: "{{ unifi_network_application_docker_image_repo }}:{{ unifi_network_application_docker_image_tag }}"+unifi_network_application_role_docker_image_pull: true+unifi_network_application_role_docker_image_tag: "latest"+unifi_network_application_role_docker_image_repo: "lscr.io/linuxserver/unifi-network-application"+unifi_network_application_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='unifi_network_application') }}:{{ lookup('role_var', '_docker_image_tag', role='unifi_network_application') }}" # Ports-unifi_network_application_docker_ports_defaults:+unifi_network_application_role_docker_ports_default: - "8080:8080/tcp" - "3478:3478/udp" - "10001:10001/udp"-unifi_network_application_docker_ports_custom: []-unifi_network_application_docker_ports: "{{ unifi_network_application_docker_ports_defaults- + unifi_network_application_docker_ports_custom }}"+unifi_network_application_role_docker_ports_custom: []+unifi_network_application_role_docker_ports: "{{ unifi_network_application_role_docker_ports_default+ + unifi_network_application_role_docker_ports_custom }}" # Envs-unifi_network_application_docker_envs_default:+unifi_network_application_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"@@ -96,73 +96,35 @@ MONGO_HOST: "{{ unifi_network_application_name }}-mongo" MONGO_PORT: "{{ unifi_network_application_mongo_port }}" MONGO_DBNAME: "{{ unifi_network_application_mongo_dbname }}"-unifi_network_application_docker_envs_custom: {}-unifi_network_application_docker_envs: "{{ unifi_network_application_docker_envs_default- | combine(unifi_network_application_docker_envs_custom) }}"--# Commands-unifi_network_application_docker_commands_default: []-unifi_network_application_docker_commands_custom: []-unifi_network_application_docker_commands: "{{ unifi_network_application_docker_commands_default- + unifi_network_application_docker_commands_custom }}"+unifi_network_application_role_docker_envs_custom: {}+unifi_network_application_role_docker_envs: "{{ unifi_network_application_role_docker_envs_default+ | combine(unifi_network_application_role_docker_envs_custom) }}" # Volumes-unifi_network_application_docker_volumes_default:- - "{{ unifi_network_application_paths_location }}:/config"-unifi_network_application_docker_volumes_custom: []-unifi_network_application_docker_volumes: "{{ unifi_network_application_docker_volumes_default- + unifi_network_application_docker_volumes_custom }}"--# Devices-unifi_network_application_docker_devices_default: []-unifi_network_application_docker_devices_custom: []-unifi_network_application_docker_devices: "{{ unifi_network_application_docker_devices_default- + unifi_network_application_docker_devices_custom }}"--# Hosts-unifi_network_application_docker_hosts_default: {}-unifi_network_application_docker_hosts_custom: {}-unifi_network_application_docker_hosts: "{{ docker_hosts_common- | combine(unifi_network_application_docker_hosts_default)- | combine(unifi_network_application_docker_hosts_custom) }}"--# Labels-unifi_network_application_docker_labels_default: {}-unifi_network_application_docker_labels_custom: {}-unifi_network_application_docker_labels: "{{ docker_labels_common- | combine(unifi_network_application_docker_labels_default)- | combine(unifi_network_application_docker_labels_custom) }}"+unifi_network_application_role_docker_volumes_default:+ - "{{ unifi_network_application_role_paths_location }}:/config"+unifi_network_application_role_docker_volumes_custom: []+unifi_network_application_role_docker_volumes: "{{ unifi_network_application_role_docker_volumes_default+ + unifi_network_application_role_docker_volumes_custom }}" # Hostname-unifi_network_application_docker_hostname: "{{ unifi_network_application_name }}"+unifi_network_application_role_docker_hostname: "{{ unifi_network_application_name }}" # Networks-unifi_network_application_docker_networks_alias: "{{ unifi_network_application_name }}"-unifi_network_application_docker_networks_default: []-unifi_network_application_docker_networks_custom: []-unifi_network_application_docker_networks: "{{ docker_networks_common- + unifi_network_application_docker_networks_default- + unifi_network_application_docker_networks_custom }}"--# Capabilities-unifi_network_application_docker_capabilities_default: []-unifi_network_application_docker_capabilities_custom: []-unifi_network_application_docker_capabilities: "{{ unifi_network_application_docker_capabilities_default- + unifi_network_application_docker_capabilities_custom }}"--# Security Opts-unifi_network_application_docker_security_opts_default: []-unifi_network_application_docker_security_opts_custom: []-unifi_network_application_docker_security_opts: "{{ unifi_network_application_docker_security_opts_default- + unifi_network_application_docker_security_opts_custom }}"+unifi_network_application_role_docker_networks_alias: "{{ unifi_network_application_name }}"+unifi_network_application_role_docker_networks_default: []+unifi_network_application_role_docker_networks_custom: []+unifi_network_application_role_docker_networks: "{{ docker_networks_common+ + unifi_network_application_role_docker_networks_default+ + unifi_network_application_role_docker_networks_custom }}" # Restart Policy-unifi_network_application_docker_restart_policy: unless-stopped+unifi_network_application_role_docker_restart_policy: unless-stopped # State-unifi_network_application_docker_state: started+unifi_network_application_role_docker_state: started # Dependencies-unifi_network_application_depends_on: "{{ unifi_network_application_name }}-mongo"-unifi_network_application_depends_on_delay: "0"-unifi_network_application_depends_on_healthchecks: "false"+unifi_network_application_role_depends_on: "{{ unifi_network_application_name }}-mongo"+unifi_network_application_role_depends_on_delay: "0"+unifi_network_application_role_depends_on_healthchecks: "false"
modified
roles/unifi_network_application/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing legacy Unifi container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -28,7 +28,7 @@ - name: "Unifi | Import init-mongo.js" ansible.builtin.template: src: init-mongo.js.j2- dest: '{{ unifi_network_application_paths_location }}/init-mongo.js'+ dest: '{{ unifi_network_application_role_paths_location }}/init-mongo.js' owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0775"@@ -43,10 +43,12 @@ ansible.builtin.include_role: name: mongodb vars:- mongodb_instances: ["{{ unifi_network_application_name }}-mongo"]- mongodb_paths_location: "{{ server_appdata_path }}/{{ unifi_network_application_name }}"- mongodb_docker_image_tag: "4.4"- mongodb_docker_volumes_custom: ["{{ unifi_network_application_paths_location }}/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro"]+ mongodb_instances:+ - "{{ unifi_network_application_name }}-mongo"+ mongodb_role_paths_location: "{{ server_appdata_path }}/{{ unifi_network_application_name }}"+ mongodb_role_docker_image_tag: "4.4"+ mongodb_role_docker_volumes_custom:+ - "{{ unifi_network_application_role_paths_location }}/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro" - name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"
modified
roles/unmanic/defaults/main.yml
@@ -17,131 +17,88 @@ # Paths ################################ -unmanic_paths_folder: "{{ unmanic_name }}"-unmanic_paths_location: "{{ server_appdata_path }}/{{ unmanic_paths_folder }}"-unmanic_paths_transcodes_location: "{{ transcodes_path }}/{{ unmanic_paths_folder }}"-unmanic_paths_folders_list:- - "{{ unmanic_paths_location }}"- - "{{ unmanic_paths_transcodes_location }}"+unmanic_role_paths_folder: "{{ unmanic_name }}"+unmanic_role_paths_location: "{{ server_appdata_path }}/{{ unmanic_role_paths_folder }}"+unmanic_role_paths_transcodes_location: "{{ transcodes_path }}/{{ unmanic_role_paths_folder }}"+unmanic_role_paths_folders_list:+ - "{{ unmanic_role_paths_location }}"+ - "{{ unmanic_role_paths_transcodes_location }}" ################################ # Web ################################ -unmanic_web_subdomain: "{{ unmanic_name }}"-unmanic_web_domain: "{{ user.domain }}"-unmanic_web_port: "8888"-unmanic_web_url: "{{ 'https://' + (unmanic_web_subdomain + '.' + unmanic_web_domain- if (unmanic_web_subdomain | length > 0)- else unmanic_web_domain) }}"+unmanic_role_web_subdomain: "{{ unmanic_name }}"+unmanic_role_web_domain: "{{ user.domain }}"+unmanic_role_web_port: "8888"+unmanic_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='unmanic') + '.' + lookup('role_var', '_web_domain', role='unmanic')+ if (lookup('role_var', '_web_subdomain', role='unmanic') | length > 0)+ else lookup('role_var', '_web_domain', role='unmanic')) }}" ################################ # DNS ################################ -unmanic_dns_record: "{{ unmanic_web_subdomain }}"-unmanic_dns_zone: "{{ unmanic_web_domain }}"-unmanic_dns_proxy: "{{ dns.proxied }}"+unmanic_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='unmanic') }}"+unmanic_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='unmanic') }}"+unmanic_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -unmanic_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-unmanic_traefik_middleware_default: "{{ traefik_default_middleware }}"-unmanic_traefik_middleware_custom: ""-unmanic_traefik_certresolver: "{{ traefik_default_certresolver }}"-unmanic_traefik_enabled: true-unmanic_traefik_api_enabled: false-unmanic_traefik_api_endpoint: ""+unmanic_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+unmanic_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+unmanic_role_traefik_middleware_custom: ""+unmanic_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+unmanic_role_traefik_enabled: true+unmanic_role_traefik_api_enabled: false+unmanic_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-unmanic_docker_container: "{{ unmanic_name }}"+unmanic_role_docker_container: "{{ unmanic_name }}" # Image-unmanic_docker_image_pull: true-unmanic_docker_image_tag: "latest"-unmanic_docker_image: "josh5/unmanic:{{ unmanic_docker_image_tag }}"--# Ports-unmanic_docker_ports_defaults: []-unmanic_docker_ports_custom: []-unmanic_docker_ports: "{{ unmanic_docker_ports_defaults- + unmanic_docker_ports_custom }}"+unmanic_role_docker_image_pull: true+unmanic_role_docker_image_repo: "josh5/unmanic"+unmanic_role_docker_image_tag: "latest"+unmanic_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='unmanic') }}:{{ lookup('role_var', '_docker_image_tag', role='unmanic') }}" # Envs-unmanic_docker_envs_default:+unmanic_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-unmanic_docker_envs_custom: {}-unmanic_docker_envs: "{{ unmanic_docker_envs_default- | combine(unmanic_docker_envs_custom) }}"--# Commands-unmanic_docker_commands_default: []-unmanic_docker_commands_custom: []-unmanic_docker_commands: "{{ unmanic_docker_commands_default- + unmanic_docker_commands_custom }}"+unmanic_role_docker_envs_custom: {}+unmanic_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='unmanic')+ | combine(lookup('role_var', '_docker_envs_custom', role='unmanic')) }}" # Volumes-unmanic_docker_volumes_default:- - "{{ unmanic_paths_location }}:/config"- - "{{ unmanic_paths_transcodes_location }}:/tmp/unmanic"+unmanic_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='unmanic') }}:/config"+ - "{{ lookup('role_var', '_paths_transcodes_location', role='unmanic') }}:/tmp/unmanic" - "/mnt/unionfs/Media:/library"-unmanic_docker_volumes_custom: []-unmanic_docker_volumes: "{{ unmanic_docker_volumes_default- + unmanic_docker_volumes_custom }}"--# Devices-unmanic_docker_devices_default: []-unmanic_docker_devices_custom: []-unmanic_docker_devices: "{{ unmanic_docker_devices_default- + unmanic_docker_devices_custom }}"--# Hosts-unmanic_docker_hosts_default: {}-unmanic_docker_hosts_custom: {}-unmanic_docker_hosts: "{{ docker_hosts_common- | combine(unmanic_docker_hosts_default)- | combine(unmanic_docker_hosts_custom) }}"--# Labels-unmanic_docker_labels_default: {}-unmanic_docker_labels_custom: {}-unmanic_docker_labels: "{{ docker_labels_common- | combine(unmanic_docker_labels_default)- | combine(unmanic_docker_labels_custom) }}"+unmanic_role_docker_volumes_custom: []+unmanic_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='unmanic')+ + lookup('role_var', '_docker_volumes_custom', role='unmanic') }}" # Hostname-unmanic_docker_hostname: "{{ unmanic_name }}"+unmanic_role_docker_hostname: "{{ unmanic_name }}" # Networks-unmanic_docker_networks_alias: "{{ unmanic_name }}"-unmanic_docker_networks_default: []-unmanic_docker_networks_custom: []-unmanic_docker_networks: "{{ docker_networks_common- + unmanic_docker_networks_default- + unmanic_docker_networks_custom }}"--# Capabilities-unmanic_docker_capabilities_default: []-unmanic_docker_capabilities_custom: []-unmanic_docker_capabilities: "{{ unmanic_docker_capabilities_default- + unmanic_docker_capabilities_custom }}"--# Security Opts-unmanic_docker_security_opts_default: []-unmanic_docker_security_opts_custom: []-unmanic_docker_security_opts: "{{ unmanic_docker_security_opts_default- + unmanic_docker_security_opts_custom }}"+unmanic_role_docker_networks_alias: "{{ unmanic_name }}"+unmanic_role_docker_networks_default: []+unmanic_role_docker_networks_custom: []+unmanic_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='unmanic')+ + lookup('role_var', '_docker_networks_custom', role='unmanic') }}" # Restart Policy-unmanic_docker_restart_policy: unless-stopped+unmanic_role_docker_restart_policy: unless-stopped # State-unmanic_docker_state: started+unmanic_role_docker_state: started
modified
roles/unmanic/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -22,7 +22,7 @@ - name: Docker Devices Task ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/set_docker_devices_variable.yml"- when: gpu.intel or use_nvidia+ when: use_intel or use_nvidia - name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"
modified
roles/uptime_kuma/defaults/main.yml
@@ -8,150 +8,107 @@ ########################################################################## --- ################################-# Docker Socket Proxy-################################--uptime_kuma_docker_socket_proxy_envs:- CONTAINERS: "1"- IMAGES: "1"--################################ # Basics ################################ uptime_kuma_name: uptime ################################+# Docker Socket Proxy+################################++uptime_kuma_role_docker_socket_proxy_envs:+ CONTAINERS: "1"+ IMAGES: "1"++################################ # Paths ################################ -uptime_kuma_paths_folder: "{{ uptime_kuma_name }}"-uptime_kuma_paths_location: "{{ server_appdata_path }}/{{ uptime_kuma_paths_folder }}"-uptime_kuma_paths_folders_list:- - "{{ uptime_kuma_paths_location }}"-uptime_kuma_paths_recursive: true+uptime_kuma_role_paths_folder: "{{ uptime_kuma_name }}"+uptime_kuma_role_paths_location: "{{ server_appdata_path }}/{{ uptime_kuma_role_paths_folder }}"+uptime_kuma_role_paths_folders_list:+ - "{{ uptime_kuma_role_paths_location }}"+uptime_kuma_role_paths_recursive: true ################################ # Web ################################ -uptime_kuma_web_subdomain: "{{ uptime_kuma_name }}"-uptime_kuma_web_domain: "{{ user.domain }}"-uptime_kuma_web_port: "3001"-uptime_kuma_web_url: "{{ 'https://' + (uptime_kuma_web_subdomain + '.' + uptime_kuma_web_domain- if (uptime_kuma_web_subdomain | length > 0)- else uptime_kuma_web_domain) }}"+uptime_kuma_role_web_subdomain: "{{ uptime_kuma_name }}"+uptime_kuma_role_web_domain: "{{ user.domain }}"+uptime_kuma_role_web_port: "3001"+uptime_kuma_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='uptime_kuma') + '.' + lookup('role_var', '_web_domain', role='uptime_kuma')+ if (lookup('role_var', '_web_subdomain', role='uptime_kuma') | length > 0)+ else lookup('role_var', '_web_domain', role='uptime_kuma')) }}" ################################ # DNS ################################ -uptime_kuma_dns_record: "{{ uptime_kuma_web_subdomain }}"-uptime_kuma_dns_zone: "{{ uptime_kuma_web_domain }}"-uptime_kuma_dns_proxy: "{{ dns.proxied }}"+uptime_kuma_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='uptime_kuma') }}"+uptime_kuma_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='uptime_kuma') }}"+uptime_kuma_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -uptime_kuma_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-uptime_kuma_traefik_middleware_default: "{{ traefik_default_middleware }}"-uptime_kuma_traefik_middleware_custom: ""-uptime_kuma_traefik_certresolver: "{{ traefik_default_certresolver }}"-uptime_kuma_traefik_enabled: true-uptime_kuma_traefik_api_enabled: true-uptime_kuma_traefik_api_endpoint: "PathPrefix(`/icon.svg`) || PathPrefix(`/api`) || PathPrefix(`/assets`) || PathPrefix(`/status`) || PathPrefix(`/metrics`) || PathRegexp(`^/$`) || PathRegexp(`/upload/.*`)"+uptime_kuma_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+uptime_kuma_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+uptime_kuma_role_traefik_middleware_custom: ""+uptime_kuma_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+uptime_kuma_role_traefik_enabled: true+uptime_kuma_role_traefik_api_enabled: true+uptime_kuma_role_traefik_api_endpoint: "PathPrefix(`/icon.svg`) || PathPrefix(`/api`) || PathPrefix(`/assets`) || PathPrefix(`/status`) || PathPrefix(`/metrics`) || PathRegexp(`^/$`) || PathRegexp(`/upload/.*`)" ################################ # Docker ################################ # Container-uptime_kuma_docker_container: "{{ uptime_kuma_name }}"+uptime_kuma_role_docker_container: "{{ uptime_kuma_name }}" # Image-uptime_kuma_docker_image_pull: true-uptime_kuma_docker_image_tag: "1" # Temporary until v2 is released and migration is added-uptime_kuma_docker_image: "louislam/uptime-kuma:{{ uptime_kuma_docker_image_tag }}"--# Ports-uptime_kuma_docker_ports_defaults: []-uptime_kuma_docker_ports_custom: []-uptime_kuma_docker_ports: "{{ uptime_kuma_docker_ports_defaults- + uptime_kuma_docker_ports_custom }}"+uptime_kuma_role_docker_image_pull: true+uptime_kuma_role_docker_image_tag: "2"+uptime_kuma_role_docker_image_repo: "louislam/uptime-kuma"+uptime_kuma_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='uptime_kuma') }}:{{ lookup('role_var', '_docker_image_tag', role='uptime_kuma') }}" # Envs-uptime_kuma_docker_envs_default:+uptime_kuma_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"-uptime_kuma_docker_envs_custom: {}-uptime_kuma_docker_envs: "{{ uptime_kuma_docker_envs_default- | combine(uptime_kuma_docker_envs_custom) }}"--# Commands-uptime_kuma_docker_commands_default: []-uptime_kuma_docker_commands_custom: []-uptime_kuma_docker_commands: "{{ uptime_kuma_docker_commands_default- + uptime_kuma_docker_commands_custom }}"+uptime_kuma_role_docker_envs_custom: {}+uptime_kuma_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='uptime_kuma')+ | combine(lookup('role_var', '_docker_envs_custom', role='uptime_kuma')) }}" # Volumes-uptime_kuma_docker_volumes_default:- - "{{ uptime_kuma_paths_location }}:/app/data"-uptime_kuma_docker_volumes_custom: []-uptime_kuma_docker_volumes: "{{ uptime_kuma_docker_volumes_default- + uptime_kuma_docker_volumes_custom }}"--# Devices-uptime_kuma_docker_devices_default: []-uptime_kuma_docker_devices_custom: []-uptime_kuma_docker_devices: "{{ uptime_kuma_docker_devices_default- + uptime_kuma_docker_devices_custom }}"--# Hosts-uptime_kuma_docker_hosts_default: {}-uptime_kuma_docker_hosts_custom: {}-uptime_kuma_docker_hosts: "{{ docker_hosts_common- | combine(uptime_kuma_docker_hosts_default)- | combine(uptime_kuma_docker_hosts_custom) }}"--# Labels-uptime_kuma_docker_labels_default: {}-uptime_kuma_docker_labels_custom: {}-uptime_kuma_docker_labels: "{{ docker_labels_common- | combine(uptime_kuma_docker_labels_default)- | combine(uptime_kuma_docker_labels_custom) }}"+uptime_kuma_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='uptime_kuma') }}:/app/data"+uptime_kuma_role_docker_volumes_custom: []+uptime_kuma_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='uptime_kuma')+ + lookup('role_var', '_docker_volumes_custom', role='uptime_kuma') }}" # Hostname-uptime_kuma_docker_hostname: "{{ uptime_kuma_name }}"+uptime_kuma_role_docker_hostname: "{{ uptime_kuma_name }}" # Networks-uptime_kuma_docker_networks_alias: "{{ uptime_kuma_name }}"-uptime_kuma_docker_networks_default: []-uptime_kuma_docker_networks_custom: []-uptime_kuma_docker_networks: "{{ docker_networks_common- + uptime_kuma_docker_networks_default- + uptime_kuma_docker_networks_custom }}"--# Capabilities-uptime_kuma_docker_capabilities_default: []-uptime_kuma_docker_capabilities_custom: []-uptime_kuma_docker_capabilities: "{{ uptime_kuma_docker_capabilities_default- + uptime_kuma_docker_capabilities_custom }}"--# Security Opts-uptime_kuma_docker_security_opts_default: []-uptime_kuma_docker_security_opts_custom: []-uptime_kuma_docker_security_opts: "{{ uptime_kuma_docker_security_opts_default- + uptime_kuma_docker_security_opts_custom }}"+uptime_kuma_role_docker_networks_alias: "{{ uptime_kuma_name }}"+uptime_kuma_role_docker_networks_default: []+uptime_kuma_role_docker_networks_custom: []+uptime_kuma_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='uptime_kuma')+ + lookup('role_var', '_docker_networks_custom', role='uptime_kuma') }}" # Restart Policy-uptime_kuma_docker_restart_policy: unless-stopped+uptime_kuma_role_docker_restart_policy: unless-stopped # State-uptime_kuma_docker_state: started+uptime_kuma_role_docker_state: started # Dependencies-uptime_kuma_depends_on: "{{ uptime_kuma_name }}-docker-socket-proxy"-uptime_kuma_depends_on_delay: "0"-uptime_kuma_depends_on_healthchecks: "false"+uptime_kuma_role_depends_on: "{{ uptime_kuma_name }}-docker-socket-proxy"+uptime_kuma_role_depends_on_delay: "0"+uptime_kuma_role_depends_on_healthchecks: "false"
modified
roles/uptime_kuma/tasks/main.yml
@@ -12,20 +12,17 @@ name: docker_socket_proxy vars: docker_socket_proxy_name: "{{ uptime_kuma_name }}-docker-socket-proxy"- docker_socket_proxy_docker_envs_custom: "{{ uptime_kuma_docker_socket_proxy_envs }}"+ docker_socket_proxy_role_docker_envs_custom: "{{ uptime_kuma_role_docker_socket_proxy_envs }}" - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container- community.docker.docker_container:- name: "{{ lookup('vars', role_name + '_docker_container') }}"- state: absent- container_default_behavior: compatibility+ ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"
modified
roles/varken/defaults/main.yml
@@ -7,8 +7,8 @@ # GNU General Public License v3.0 # ######################################################################### ----varken_ombi_db: "{{ ombi_paths_location }}/OmbiSettings.db"-varken_radarr_config: "{{ radarr_paths_location }}/config.xml"-varken_sonarr_config: "{{ sonarr_paths_location }}/config.xml"-varken_tautulli_config: "{{ tautulli_paths_location }}/config.ini"-tautulli_api_key: "{{ (lookup('ini', 'api_key section=General file={{ varken_tautulli_config }}')) if tautulli_config.stat.exists else '' }}"+varken_role_ombi_db: "{{ lookup('role_var', '_paths_location', role='ombi') }}/OmbiSettings.db"+varken_role_radarr_config: "{{ lookup('role_var', '_paths_location', role='radarr') }}/config.xml"+varken_role_sonarr_config: "{{ lookup('role_var', '_paths_location', role='sonarr') }}/config.xml"+varken_role_tautulli_config: "{{ lookup('role_var', '_paths_location', role='tautulli') }}/config.ini"+varken_role_tautulli_api_key: "{{ lookup('ini', 'api_key section=General file=' ~ lookup('role_var', '_tautulli_config', role='varken')) if varken_tautulli_config_stat.stat.exists else '' }}"
modified
roles/varken/tasks/config.yml
@@ -14,64 +14,70 @@ # Tautulli Tasks - name: "Check if tautulli exists" ansible.builtin.stat:- path: "{{ varken_tautulli_config }}"- register: tautulli_config+ path: "{{ lookup('role_var', '_tautulli_config', role='varken') }}"+ register: varken_tautulli_config_stat # Sonarr Tasks - name: "Check if sonarr exists" ansible.builtin.stat:- path: "{{ varken_sonarr_config }}"- register: sonarr_config+ path: "{{ lookup('role_var', '_sonarr_config', role='varken') }}"+ register: varken_sonarr_config_stat - name: Pull sonarr api key community.general.xml:- path: "{{ varken_sonarr_config }}"+ path: "{{ lookup('role_var', '_sonarr_config', role='varken') }}" xpath: /Config/ApiKey content: text register: xmlresp- when: sonarr_config.stat.exists+ when: varken_sonarr_config_stat.stat.exists - name: Set 'sonarr_api_key' ansible.builtin.set_fact:- sonarr_api_key: "{{ xmlresp.matches[0].ApiKey if sonarr_config.stat.exists else '' }}"+ sonarr_api_key: "{{ xmlresp.matches[0].ApiKey+ if varken_sonarr_config_stat.stat.exists+ else '' }}" # Radarr Tasks - name: "Check if radarr exists" ansible.builtin.stat:- path: "{{ varken_radarr_config }}"- register: radarr_config+ path: "{{ lookup('role_var', '_radarr_config', role='varken') }}"+ register: varken_radarr_config_stat - name: Pull radarr api key community.general.xml:- path: "{{ varken_radarr_config }}"+ path: "{{ lookup('role_var', '_radarr_config', role='varken') }}" xpath: /Config/ApiKey content: text register: xmlresp- when: radarr_config.stat.exists+ when: varken_radarr_config_stat.stat.exists - name: Set 'radarr_api_key' ansible.builtin.set_fact:- radarr_api_key: "{{ xmlresp.matches[0].ApiKey if radarr_config.stat.exists else '' }}"+ radarr_api_key: "{{ xmlresp.matches[0].ApiKey+ if varken_radarr_config_stat.stat.exists+ else '' }}" # Ombi Tasks - name: "Check if ombi exists" ansible.builtin.stat:- path: "{{ varken_ombi_db }}"- register: ombi_config+ path: "{{ lookup('role_var', '_ombi_db', role='varken') }}"+ register: varken_ombi_config_stat - name: Get Ombi API key- ansible.builtin.shell: sqlite3 "{{ varken_ombi_db }}" "SELECT Content,SettingsName FROM GlobalSettings WHERE SettingsName = 'OmbiSettings';" | sed 's/|[^|]*$//' | jq -r .ApiKey # noqa 204 jinja[invalid]+ ansible.builtin.shell: sqlite3 "{{ lookup('role_var', '_ombi_db', role='varken') }}" "SELECT Content,SettingsName FROM GlobalSettings WHERE SettingsName = 'OmbiSettings';" | sed 's/|[^|]*$//' | jq -r .ApiKey # noqa 204 jinja[invalid] register: ombi_api_key- when: ombi_config.stat.exists+ when: varken_ombi_config_stat.stat.exists - name: Set 'ombi_api_key' ansible.builtin.set_fact:- ombi_api_key: "{{ ombi_api_key.stdout if ombi_config.stat.exists else '' }}"+ ombi_api_key: "{{ ombi_api_key.stdout+ if varken_ombi_config_stat.stat.exists+ else '' }}" - name: Import 'config.ini' ansible.builtin.template: src: varken.ini.j2- dest: /opt/varken/varken.ini+ dest: "{{ server_appdata_path }}/varken/varken.ini" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"
modified
roles/varken/tasks/main.yml
@@ -10,22 +10,22 @@ - name: Set Default Tautulli instance ansible.builtin.set_fact: tautulli_name: "{{ tautulli_instances[0] }}"- when: not tautulli_name is defined+ when: (not tautulli_name is defined) - name: Set Default Ombi instance ansible.builtin.set_fact: ombi_name: "{{ ombi_instances[0] }}"- when: not ombi_name is defined+ when: (not ombi_name is defined) - name: Set Default Sonarr instance ansible.builtin.set_fact: sonarr_name: "{{ sonarr_instances[0] }}"- when: not sonarr_name is defined+ when: (not sonarr_name is defined) - name: Set Default Radarr instance ansible.builtin.set_fact: radarr_name: "{{ radarr_instances[0] }}"- when: not radarr_name is defined+ when: (not radarr_name is defined) - name: InfluxDB Role ansible.builtin.include_role:@@ -50,7 +50,7 @@ - name: Create required directories ansible.builtin.file:- path: "/opt/varken"+ path: "{{ server_appdata_path }}/varken" state: directory mode: "0775" owner: "{{ user.name }}"@@ -58,12 +58,12 @@ - name: Check if varken config exists ansible.builtin.stat:- path: "/opt/varken/varken.ini"- register: varken_config+ path: "{{ server_appdata_path }}/varken/varken.ini"+ register: varken_config_stat - name: Import config tasks ansible.builtin.import_tasks: config.yml- when: not varken_config.stat.exists+ when: (not varken_config_stat.stat.exists) - name: Create and start varken container community.docker.docker_container:@@ -78,7 +78,7 @@ PGID: "{{ gid }}" TZ: "{{ tz }}" volumes:- - "/opt/varken:/config"+ - "{{ server_appdata_path }}/varken:/config" labels: "com.github.saltbox.saltbox_managed": "true" networks:
modified
roles/varken/templates/varken.ini.j2
@@ -18,9 +18,9 @@ password = [tautulli-1]-url = {{ tautulli_web_subdomain }}.{{ tautulli_web_domain }}+url = {{ lookup('role_var', '_web_subdomain', role='tautulli') }}.{{ lookup('role_var', '_web_domain', role='tautulli') }} fallback_ip = {{ ip }}-apikey = {{ tautulli_api_key }}+apikey = {{ lookup('role_var', '_tautulli_api_key', role='varken') }} ssl = false verify_ssl = false get_activity = true@@ -29,7 +29,7 @@ get_stats_run_seconds = 3600 [sonarr-1]-url = {{ sonarr_web_subdomain }}.{{ sonarr_web_domain }}+url = {{ lookup('role_var', '_web_subdomain', role='sonarr') }}.{{ lookup('role_var', '_web_domain', role='sonarr') }} apikey = {{ sonarr_api_key }} ssl = false verify_ssl = false@@ -41,7 +41,7 @@ queue_run_seconds = 300 [radarr-1]-url = {{ radarr_web_subdomain }}.{{ radarr_web_domain }}+url = {{ lookup('role_var', '_web_subdomain', role='radarr') }}.{{ lookup('role_var', '_web_domain', role='radarr') }} apikey = {{ radarr_api_key }} ssl = false verify_ssl = false@@ -51,7 +51,7 @@ get_missing_run_seconds = 300 [ombi-1]-url = {{ ombi_web_subdomain }}.{{ ombi_web_domain }}+url = {{ lookup('role_var', '_web_subdomain', role='ombi') }}.{{ lookup('role_var', '_web_domain', role='ombi') }} apikey = {{ ombi_api_key }} ssl = false verify_ssl = false
modified
roles/vaultwarden/defaults/main.yml
@@ -17,128 +17,85 @@ # Paths ################################ -vaultwarden_paths_folder: "{{ vaultwarden_name }}"-vaultwarden_paths_location: "{{ server_appdata_path }}/{{ vaultwarden_paths_folder }}"-vaultwarden_paths_folders_list:- - "{{ vaultwarden_paths_location }}"-vaultwarden_paths_config_location: "{{ vaultwarden_paths_location }}/env"+vaultwarden_role_paths_folder: "{{ vaultwarden_name }}"+vaultwarden_role_paths_location: "{{ server_appdata_path }}/{{ vaultwarden_role_paths_folder }}"+vaultwarden_role_paths_folders_list:+ - "{{ vaultwarden_role_paths_location }}"+vaultwarden_role_paths_config_location: "{{ vaultwarden_role_paths_location }}/env" ################################ # Web ################################ -vaultwarden_web_subdomain: "{{ vaultwarden_name }}"-vaultwarden_web_domain: "{{ user.domain }}"-vaultwarden_web_port: "6423"-vaultwarden_web_url: "{{ 'https://' + (vaultwarden_web_subdomain + '.' + vaultwarden_web_domain- if (vaultwarden_web_subdomain | length > 0)- else vaultwarden_web_domain) }}"+vaultwarden_role_web_subdomain: "{{ vaultwarden_name }}"+vaultwarden_role_web_domain: "{{ user.domain }}"+vaultwarden_role_web_port: "6423"+vaultwarden_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='vaultwarden') + '.' + lookup('role_var', '_web_domain', role='vaultwarden')+ if (lookup('role_var', '_web_subdomain', role='vaultwarden') | length > 0)+ else lookup('role_var', '_web_domain', role='vaultwarden')) }}" ################################ # DNS ################################ -vaultwarden_dns_record: "{{ vaultwarden_web_subdomain }}"-vaultwarden_dns_zone: "{{ vaultwarden_web_domain }}"-vaultwarden_dns_proxy: "{{ dns.proxied }}"+vaultwarden_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='vaultwarden') }}"+vaultwarden_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='vaultwarden') }}"+vaultwarden_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -vaultwarden_traefik_sso_middleware: ""-vaultwarden_traefik_middleware_default: "{{ traefik_default_middleware }}"-vaultwarden_traefik_middleware_custom: ""-vaultwarden_traefik_certresolver: "{{ traefik_default_certresolver }}"-vaultwarden_traefik_enabled: true-vaultwarden_traefik_api_enabled: false-vaultwarden_traefik_api_endpoint: ""+vaultwarden_role_traefik_sso_middleware: ""+vaultwarden_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+vaultwarden_role_traefik_middleware_custom: ""+vaultwarden_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+vaultwarden_role_traefik_enabled: true+vaultwarden_role_traefik_api_enabled: false+vaultwarden_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-vaultwarden_docker_container: "{{ vaultwarden_name }}"+vaultwarden_role_docker_container: "{{ vaultwarden_name }}" # Image-vaultwarden_docker_image_pull: true-vaultwarden_docker_image_tag: "latest"-vaultwarden_docker_image: "vaultwarden/server:{{ vaultwarden_docker_image_tag }}"--# Ports-vaultwarden_docker_ports_defaults: []-vaultwarden_docker_ports_custom: []-vaultwarden_docker_ports: "{{ vaultwarden_docker_ports_defaults- + vaultwarden_docker_ports_custom }}"+vaultwarden_role_docker_image_pull: true+vaultwarden_role_docker_image_repo: "vaultwarden/server"+vaultwarden_role_docker_image_tag: "latest"+vaultwarden_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='vaultwarden') }}:{{ lookup('role_var', '_docker_image_tag', role='vaultwarden') }}" # Envs-vaultwarden_docker_envs_default:+vaultwarden_role_docker_envs_default: TZ: "{{ tz }}"- ROCKET_PORT: "{{ vaultwarden_web_port }}"-vaultwarden_docker_envs_custom: {}-vaultwarden_docker_envs: "{{ vaultwarden_docker_envs_default- | combine(vaultwarden_docker_envs_custom) }}"--# Commands-vaultwarden_docker_commands_default: []-vaultwarden_docker_commands_custom: []-vaultwarden_docker_commands: "{{ vaultwarden_docker_commands_default- + vaultwarden_docker_commands_custom }}"+ ROCKET_PORT: "{{ lookup('role_var', '_web_port', role='vaultwarden') }}"+vaultwarden_role_docker_envs_custom: {}+vaultwarden_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='vaultwarden')+ | combine(lookup('role_var', '_docker_envs_custom', role='vaultwarden')) }}" # Volumes-vaultwarden_docker_volumes_default:- - "{{ vaultwarden_paths_location }}:/data"- - "{{ vaultwarden_paths_location }}/env:/.env"-vaultwarden_docker_volumes_custom: []-vaultwarden_docker_volumes: "{{ vaultwarden_docker_volumes_default- + vaultwarden_docker_volumes_custom }}"--# Devices-vaultwarden_docker_devices_default: []-vaultwarden_docker_devices_custom: []-vaultwarden_docker_devices: "{{ vaultwarden_docker_devices_default- + vaultwarden_docker_devices_custom }}"--# Hosts-vaultwarden_docker_hosts_default: {}-vaultwarden_docker_hosts_custom: {}-vaultwarden_docker_hosts: "{{ docker_hosts_common- | combine(vaultwarden_docker_hosts_default)- | combine(vaultwarden_docker_hosts_custom) }}"--# Labels-vaultwarden_docker_labels_default: {}-vaultwarden_docker_labels_custom: {}-vaultwarden_docker_labels: "{{ docker_labels_common- | combine(vaultwarden_docker_labels_default)- | combine(vaultwarden_docker_labels_custom) }}"+vaultwarden_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='vaultwarden') }}:/data"+ - "{{ lookup('role_var', '_paths_location', role='vaultwarden') }}/env:/.env"+vaultwarden_role_docker_volumes_custom: []+vaultwarden_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='vaultwarden')+ + lookup('role_var', '_docker_volumes_custom', role='vaultwarden') }}" # Hostname-vaultwarden_docker_hostname: "{{ vaultwarden_name }}"+vaultwarden_role_docker_hostname: "{{ vaultwarden_name }}" # Networks-vaultwarden_docker_networks_alias: "{{ vaultwarden_name }}"-vaultwarden_docker_networks_default: []-vaultwarden_docker_networks_custom: []-vaultwarden_docker_networks: "{{ docker_networks_common- + vaultwarden_docker_networks_default- + vaultwarden_docker_networks_custom }}"--# Capabilities-vaultwarden_docker_capabilities_default: []-vaultwarden_docker_capabilities_custom: []-vaultwarden_docker_capabilities: "{{ vaultwarden_docker_capabilities_default- + vaultwarden_docker_capabilities_custom }}"--# Security Opts-vaultwarden_docker_security_opts_default: []-vaultwarden_docker_security_opts_custom: []-vaultwarden_docker_security_opts: "{{ vaultwarden_docker_security_opts_default- + vaultwarden_docker_security_opts_custom }}"+vaultwarden_role_docker_networks_alias: "{{ vaultwarden_name }}"+vaultwarden_role_docker_networks_default: []+vaultwarden_role_docker_networks_custom: []+vaultwarden_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='vaultwarden')+ + lookup('role_var', '_docker_networks_custom', role='vaultwarden') }}" # Restart Policy-vaultwarden_docker_restart_policy: unless-stopped+vaultwarden_role_docker_restart_policy: unless-stopped # State-vaultwarden_docker_state: started+vaultwarden_role_docker_state: started
modified
roles/vaultwarden/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -20,28 +20,28 @@ - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" -- name: "Check if '{{ vaultwarden_paths_config_location | basename }}' exists"+- name: "Check if '{{ vaultwarden_role_paths_config_location | basename }}' exists" ansible.builtin.stat:- path: "{{ vaultwarden_paths_config_location }}"+ path: "{{ vaultwarden_role_paths_config_location }}" register: vaultwarden_env - name: Remove env folder if it exists ansible.builtin.file:- path: "{{ vaultwarden_paths_config_location }}"+ path: "{{ vaultwarden_role_paths_config_location }}" state: absent when: (vaultwarden_env.stat.isdir is defined) and vaultwarden_env.stat.isdir -- name: New `{{ vaultwarden_paths_config_location | basename }}` tasks+- name: New `{{ vaultwarden_role_paths_config_location | basename }}` tasks when: not vaultwarden_env.stat.exists or ((vaultwarden_env.stat.isdir is defined) and vaultwarden_env.stat.isdir) block: - name: "Generate Admin token" ansible.builtin.shell: /usr/bin/openssl rand -base64 48 register: admin_token - - name: "Import '{{ vaultwarden_paths_config_location | basename }}' if it doesnt exist"+ - name: "Import '{{ vaultwarden_role_paths_config_location | basename }}' if it doesnt exist" ansible.builtin.template: src: vaultwarden_env.j2- dest: "{{ vaultwarden_paths_config_location }}"+ dest: "{{ vaultwarden_role_paths_config_location }}" owner: "{{ user.name }}" group: "{{ user.name }}" mode: "0664"
modified
roles/vnstat/defaults/main.yml
@@ -24,123 +24,80 @@ # Web ################################ -vnstat_web_subdomain: "{{ vnstat_name }}"-vnstat_web_domain: "{{ user.domain }}"-vnstat_web_port: "8685"-vnstat_web_url: "{{ 'https://' + (vnstat_web_subdomain + '.' + vnstat_web_domain- if (vnstat_web_subdomain | length > 0)- else vnstat_web_domain) }}"+vnstat_role_web_subdomain: "{{ vnstat_name }}"+vnstat_role_web_domain: "{{ user.domain }}"+vnstat_role_web_port: "8685"+vnstat_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='vnstat') + '.' + lookup('role_var', '_web_domain', role='vnstat')+ if (lookup('role_var', '_web_subdomain', role='vnstat') | length > 0)+ else lookup('role_var', '_web_domain', role='vnstat')) }}" ################################ # DNS ################################ -vnstat_dns_record: "{{ vnstat_web_subdomain }}"-vnstat_dns_zone: "{{ vnstat_web_domain }}"-vnstat_dns_proxy: "{{ dns.proxied }}"+vnstat_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='vnstat') }}"+vnstat_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='vnstat') }}"+vnstat_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -vnstat_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-vnstat_traefik_middleware_default: "{{ traefik_default_middleware }}"-vnstat_traefik_middleware_custom: ""-vnstat_traefik_certresolver: "{{ traefik_default_certresolver }}"-vnstat_traefik_enabled: true-vnstat_traefik_api_enabled: false-vnstat_traefik_api_endpoint: ""+vnstat_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+vnstat_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+vnstat_role_traefik_middleware_custom: ""+vnstat_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+vnstat_role_traefik_enabled: true+vnstat_role_traefik_api_enabled: false+vnstat_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-vnstat_docker_container: "{{ vnstat_name }}"+vnstat_role_docker_container: "{{ vnstat_name }}" # Image-vnstat_docker_image_pull: true-vnstat_docker_image_tag: "latest"-vnstat_docker_image: "vergoh/vnstat:{{ vnstat_docker_image_tag }}"--# Ports-vnstat_docker_ports_defaults: []-vnstat_docker_ports_custom: []-vnstat_docker_ports: "{{ vnstat_docker_ports_defaults- + vnstat_docker_ports_custom }}"+vnstat_role_docker_image_pull: true+vnstat_role_docker_image_repo: "vergoh/vnstat"+vnstat_role_docker_image_tag: "latest"+vnstat_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='vnstat') }}:{{ lookup('role_var', '_docker_image_tag', role='vnstat') }}" # Envs-vnstat_docker_envs_default:+vnstat_role_docker_envs_default: TZ: "{{ tz }}" HTTP_PORT: "8685" PAGE_REFRESH: "{{ vnstat_page_refresh }}" RATE_UNIT: "{{ vnstat_rate_unit }}" RUN_VNSTATD: "0"-vnstat_docker_envs_custom: {}-vnstat_docker_envs: "{{ vnstat_docker_envs_default- | combine(vnstat_docker_envs_custom) }}"--# Commands-vnstat_docker_commands_default: []-vnstat_docker_commands_custom: []-vnstat_docker_commands: "{{ vnstat_docker_commands_default- + vnstat_docker_commands_custom }}"+vnstat_role_docker_envs_custom: {}+vnstat_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='vnstat')+ | combine(lookup('role_var', '_docker_envs_custom', role='vnstat')) }}" # Volumes-vnstat_docker_volumes_default:+vnstat_role_docker_volumes_default: - "vnstat:/var/lib/vnstat:ro"-vnstat_docker_volumes_custom: []-vnstat_docker_volumes: "{{ vnstat_docker_volumes_default- + vnstat_docker_volumes_custom }}"--# Devices-vnstat_docker_devices_default: []-vnstat_docker_devices_custom: []-vnstat_docker_devices: "{{ vnstat_docker_devices_default- + vnstat_docker_devices_custom }}"--# Hosts-vnstat_docker_hosts_default: {}-vnstat_docker_hosts_custom: {}-vnstat_docker_hosts: "{{ docker_hosts_common- | combine(vnstat_docker_hosts_default)- | combine(vnstat_docker_hosts_custom) }}"--# Labels-vnstat_docker_labels_default: {}-vnstat_docker_labels_custom: {}-vnstat_docker_labels: "{{ docker_labels_common- | combine(vnstat_docker_labels_default)- | combine(vnstat_docker_labels_custom) }}"+vnstat_role_docker_volumes_custom: []+vnstat_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='vnstat')+ + lookup('role_var', '_docker_volumes_custom', role='vnstat') }}" # Hostname-vnstat_docker_hostname: "{{ vnstat_name }}"+vnstat_role_docker_hostname: "{{ vnstat_name }}" # Networks-vnstat_docker_networks_alias: "{{ vnstat_name }}"-vnstat_docker_networks_default: []-vnstat_docker_networks_custom: []-vnstat_docker_networks: "{{ docker_networks_common- + vnstat_docker_networks_default- + vnstat_docker_networks_custom }}"--# Capabilities-vnstat_docker_capabilities_default: []-vnstat_docker_capabilities_custom: []-vnstat_docker_capabilities: "{{ vnstat_docker_capabilities_default- + vnstat_docker_capabilities_custom }}"--# Security Opts-vnstat_docker_security_opts_default: []-vnstat_docker_security_opts_custom: []-vnstat_docker_security_opts: "{{ vnstat_docker_security_opts_default- + vnstat_docker_security_opts_custom }}"+vnstat_role_docker_networks_alias: "{{ vnstat_name }}"+vnstat_role_docker_networks_default: []+vnstat_role_docker_networks_custom: []+vnstat_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='vnstat')+ + lookup('role_var', '_docker_networks_custom', role='vnstat') }}" # Restart Policy-vnstat_docker_restart_policy: unless-stopped+vnstat_role_docker_restart_policy: unless-stopped # State-vnstat_docker_state: started+vnstat_role_docker_state: started # Force Kill-vnstat_docker_force_kill: yes+vnstat_role_docker_force_kill: true
modified
roles/vnstat/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -20,7 +20,7 @@ - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" vars:- vnstat_docker_container: "{{ vnstat_name }}-host"+ vnstat_role_docker_container: "{{ vnstat_name }}-host" - name: Create a volume community.docker.docker_volume:@@ -29,15 +29,15 @@ - name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" vars:- vnstat_docker_container: "{{ vnstat_name }}-host"- vnstat_docker_envs:+ vnstat_role_docker_container: "{{ vnstat_name }}-host"+ vnstat_role_docker_envs: TZ: "{{ tz }}" HTTP_PORT: "0"- vnstat_docker_network_mode: "host"- vnstat_docker_networks: "{{ omit }}"- vnstat_docker_volumes:+ vnstat_role_docker_network_mode: "host"+ vnstat_role_docker_volumes: - "vnstat:/var/lib/vnstat"- vnstat_docker_labels: "{{ omit }}"+ vnstat_role_docker_labels: {}+ vnstat_docker_labels_use_common: false - name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"
modified
roles/watchstate/defaults/main.yml
@@ -17,146 +17,102 @@ # Settings ################################ -watchstate_api_auto: true-watchstate_trust_proxy: true-watchstate_secure_api_endpoints: true+watchstate_role_api_auto: true+watchstate_role_trust_proxy: true+watchstate_role_secure_api_endpoints: true ################################ # Paths ################################ -watchstate_paths_folder: "{{ watchstate_name }}"-watchstate_paths_location: "{{ server_appdata_path }}/{{ watchstate_paths_folder }}"-watchstate_paths_folders_list:- - "{{ watchstate_paths_location }}"+watchstate_role_paths_folder: "{{ watchstate_name }}"+watchstate_role_paths_location: "{{ server_appdata_path }}/{{ watchstate_role_paths_folder }}"+watchstate_role_paths_folders_list:+ - "{{ watchstate_role_paths_location }}" ################################ # Web ################################ -watchstate_web_subdomain: "{{ watchstate_name }}"-watchstate_web_domain: "{{ user.domain }}"-watchstate_web_port: "8080"-watchstate_web_url: "{{ 'https://' + (lookup('vars', watchstate_name + '_web_subdomain', default=watchstate_web_subdomain)- + '.' + lookup('vars', watchstate_name + '_web_domain', default=watchstate_web_domain)- if (lookup('vars', watchstate_name + '_web_subdomain', default=watchstate_web_subdomain) | length > 0)- else lookup('vars', watchstate_name + '_web_domain', default=watchstate_web_domain)) }}"+watchstate_role_web_subdomain: "{{ watchstate_name }}"+watchstate_role_web_domain: "{{ user.domain }}"+watchstate_role_web_port: "8080"+watchstate_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='watchstate') + '.' + lookup('role_var', '_web_domain', role='watchstate')+ if (lookup('role_var', '_web_subdomain', role='watchstate') | length > 0)+ else lookup('role_var', '_web_domain', role='watchstate')) }}" ################################ # DNS ################################ -watchstate_dns_record: "{{ lookup('vars', watchstate_name + '_web_subdomain', default=watchstate_web_subdomain) }}"-watchstate_dns_zone: "{{ lookup('vars', watchstate_name + '_web_domain', default=watchstate_web_domain) }}"-watchstate_dns_proxy: "{{ dns.proxied }}"+watchstate_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='watchstate') }}"+watchstate_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='watchstate') }}"+watchstate_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -watchstate_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-watchstate_traefik_middleware_default: "{{ traefik_default_middleware }}"-watchstate_traefik_middleware_custom: ""-watchstate_traefik_certresolver: "{{ traefik_default_certresolver }}"-watchstate_traefik_enabled: true-watchstate_traefik_api_enabled: true-watchstate_traefik_api_endpoint: "PathRegexp(`backend/[^/]+/webhook`)"+watchstate_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+watchstate_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+watchstate_role_traefik_middleware_custom: ""+watchstate_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+watchstate_role_traefik_enabled: true+watchstate_role_traefik_api_enabled: true+watchstate_role_traefik_api_endpoint: "PathRegexp(`backend/[^/]+/webhook`)" ################################ # Docker ################################ # Container-watchstate_docker_container: "{{ watchstate_name }}"+watchstate_role_docker_container: "{{ watchstate_name }}" # Image-watchstate_docker_image_pull: true-watchstate_docker_image_repo: "ghcr.io/arabcoders/watchstate"-watchstate_docker_image_tag: "latest"-watchstate_docker_image: "{{ lookup('vars', watchstate_name + '_docker_image_repo', default=watchstate_docker_image_repo)- + ':' + lookup('vars', watchstate_name + '_docker_image_tag', default=watchstate_docker_image_tag) }}"--# Ports-watchstate_docker_ports_defaults: []-watchstate_docker_ports_custom: []-watchstate_docker_ports: "{{ lookup('vars', watchstate_name + '_docker_ports_defaults', default=watchstate_docker_ports_defaults)- + lookup('vars', watchstate_name + '_docker_ports_custom', default=watchstate_docker_ports_custom) }}"+watchstate_role_docker_image_pull: true+watchstate_role_docker_image_repo: "ghcr.io/arabcoders/watchstate"+watchstate_role_docker_image_tag: "latest"+watchstate_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='watchstate') }}:{{ lookup('role_var', '_docker_image_tag', role='watchstate') }}" # Envs-watchstate_docker_envs_default:+watchstate_role_docker_envs_default: WS_TZ: "{{ tz }}"- WS_API_AUTO: "{{ 'true' if watchstate_api_auto else omit }}"- WS_TRUST_PROXY: "{{ 'true' if watchstate_trust_proxy else omit }}"- WS_SECURE_API_ENDPOINTS: "{{ 'true' if watchstate_secure_api_endpoints else omit }}"-watchstate_docker_envs_custom: {}-watchstate_docker_envs: "{{ lookup('vars', watchstate_name + '_docker_envs_default', default=watchstate_docker_envs_default)- | combine(lookup('vars', watchstate_name + '_docker_envs_custom', default=watchstate_docker_envs_custom)) }}"--# Commands-watchstate_docker_commands_default: []-watchstate_docker_commands_custom: []-watchstate_docker_commands: "{{ lookup('vars', watchstate_name + '_docker_commands_default', default=watchstate_docker_commands_default)- + lookup('vars', watchstate_name + '_docker_commands_custom', default=watchstate_docker_commands_custom) }}"+ WS_API_AUTO: "{{ 'true'+ if lookup('role_var', '_api_auto', role='watchstate')+ else omit }}"+ WS_TRUST_PROXY: "{{ 'true'+ if lookup('role_var', '_trust_proxy', role='watchstate')+ else omit }}"+ WS_SECURE_API_ENDPOINTS: "{{ 'true'+ if lookup('role_var', '_secure_api_endpoints', role='watchstate')+ else omit }}"+watchstate_role_docker_envs_custom: {}+watchstate_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='watchstate')+ | combine(lookup('role_var', '_docker_envs_custom', role='watchstate')) }}" # Volumes-watchstate_docker_volumes_default:- - "{{ watchstate_paths_location }}:/config"-watchstate_docker_volumes_custom: []-watchstate_docker_volumes: "{{ lookup('vars', watchstate_name + '_docker_volumes_default', default=watchstate_docker_volumes_default)- + lookup('vars', watchstate_name + '_docker_volumes_custom', default=watchstate_docker_volumes_custom) }}"--# Devices-watchstate_docker_devices_default: []-watchstate_docker_devices_custom: []-watchstate_docker_devices: "{{ lookup('vars', watchstate_name + '_docker_devices_default', default=watchstate_docker_devices_default)- + lookup('vars', watchstate_name + '_docker_devices_custom', default=watchstate_docker_devices_custom) }}"--# Hosts-watchstate_docker_hosts_default: {}-watchstate_docker_hosts_custom: {}-watchstate_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', watchstate_name + '_docker_hosts_default', default=watchstate_docker_hosts_default))- | combine(lookup('vars', watchstate_name + '_docker_hosts_custom', default=watchstate_docker_hosts_custom)) }}"--# Labels-watchstate_docker_labels_default: {}-watchstate_docker_labels_custom: {}-watchstate_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', watchstate_name + '_docker_labels_default', default=watchstate_docker_labels_default))- | combine(lookup('vars', watchstate_name + '_docker_labels_custom', default=watchstate_docker_labels_custom)) }}"+watchstate_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='watchstate') }}:/config"+watchstate_role_docker_volumes_custom: []+watchstate_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='watchstate')+ + lookup('role_var', '_docker_volumes_custom', role='watchstate') }}" # Hostname-watchstate_docker_hostname: "{{ watchstate_name }}"--# Network Mode-watchstate_docker_network_mode_default: "{{ docker_networks_name_common }}"-watchstate_docker_network_mode: "{{ lookup('vars', watchstate_name + '_docker_network_mode_default', default=watchstate_docker_network_mode_default) }}"+watchstate_role_docker_hostname: "{{ watchstate_name }}" # Networks-watchstate_docker_networks_alias: "{{ watchstate_name }}"-watchstate_docker_networks_default: []-watchstate_docker_networks_custom: []-watchstate_docker_networks: "{{ docker_networks_common- + lookup('vars', watchstate_name + '_docker_networks_default', default=watchstate_docker_networks_default)- + lookup('vars', watchstate_name + '_docker_networks_custom', default=watchstate_docker_networks_custom) }}"--# Capabilities-watchstate_docker_capabilities_default: []-watchstate_docker_capabilities_custom: []-watchstate_docker_capabilities: "{{ lookup('vars', watchstate_name + '_docker_capabilities_default', default=watchstate_docker_capabilities_default)- + lookup('vars', watchstate_name + '_docker_capabilities_custom', default=watchstate_docker_capabilities_custom) }}"--# Security Opts-watchstate_docker_security_opts_default: []-watchstate_docker_security_opts_custom: []-watchstate_docker_security_opts: "{{ lookup('vars', watchstate_name + '_docker_security_opts_default', default=watchstate_docker_security_opts_default)- + lookup('vars', watchstate_name + '_docker_security_opts_custom', default=watchstate_docker_security_opts_custom) }}"+watchstate_role_docker_networks_alias: "{{ watchstate_name }}"+watchstate_role_docker_networks_default: []+watchstate_role_docker_networks_custom: []+watchstate_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='watchstate')+ + lookup('role_var', '_docker_networks_custom', role='watchstate') }}" # Restart Policy-watchstate_docker_restart_policy: unless-stopped+watchstate_role_docker_restart_policy: unless-stopped # State-watchstate_docker_state: started+watchstate_role_docker_state: started # User-watchstate_docker_user: "{{ uid }}:{{ gid }}"+watchstate_role_docker_user: "{{ uid }}:{{ gid }}"
modified
roles/watchstate/tasks/main2.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/wikijs/defaults/main.yml
@@ -17,146 +17,106 @@ # Settings ################################ -wikijs_postgres_name: "{{ wikijs_name }}-postgres"-wikijs_postgres_docker_env_db: "{{ wikijs_name }}"-wikijs_postgres_docker_image_tag: "15-alpine"-wikijs_postgres_docker_image_repo: "postgres"-wikijs_postgres_paths_folder: "{{ wikijs_name }}"-wikijs_postgres_paths_location: "{{ server_appdata_path }}/{{ postgres_paths_folder }}/postgres"+wikijs_role_postgres_deploy: true+wikijs_role_postgres_name: "{{ wikijs_name }}-postgres"+wikijs_role_postgres_user: "{{ postgres_role_docker_env_user }}"+wikijs_role_postgres_password: "{{ postgres_role_docker_env_password }}"+wikijs_role_postgres_docker_env_db: "{{ wikijs_name }}"+wikijs_role_postgres_docker_image_tag: "15-alpine"+wikijs_role_postgres_docker_image_repo: "postgres"+wikijs_role_postgres_docker_healthcheck:+ test: ["CMD-SHELL", "pg_isready -d {{ lookup('role_var', '_postgres_docker_env_db', role='wikijs') }} -U {{ postgres_role_docker_env_user }}"]+ start_period: 20s+ interval: 30s+ retries: 5+ timeout: 5s+wikijs_role_postgres_paths_folder: "{{ wikijs_name }}"+wikijs_role_postgres_paths_location: "{{ server_appdata_path }}/{{ wikijs_role_postgres_paths_folder }}/postgres" ################################ # Paths ################################ -wikijs_paths_folder: "{{ wikijs_name }}"-wikijs_paths_location: "{{ server_appdata_path }}/{{ wikijs_paths_folder }}"-wikijs_paths_folders_list:- - "{{ wikijs_paths_location }}"+wikijs_role_paths_folder: "{{ wikijs_name }}"+wikijs_role_paths_location: "{{ server_appdata_path }}/{{ wikijs_role_paths_folder }}"+wikijs_role_paths_folders_list:+ - "{{ wikijs_role_paths_location }}" ################################ # Web ################################ -wikijs_web_subdomain: "{{ wikijs_name }}"-wikijs_web_domain: "{{ user.domain }}"-wikijs_web_port: "3000"-wikijs_web_url: "{{ 'https://' + (wikijs_web_subdomain + '.' + wikijs_web_domain- if (wikijs_web_subdomain | length > 0)- else wikijs_web_domain) }}"+wikijs_role_web_subdomain: "{{ wikijs_name }}"+wikijs_role_web_domain: "{{ user.domain }}"+wikijs_role_web_port: "3000"+wikijs_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='wikijs') + '.' + lookup('role_var', '_web_domain', role='wikijs')+ if (lookup('role_var', '_web_subdomain', role='wikijs') | length > 0)+ else lookup('role_var', '_web_domain', role='wikijs')) }}" ################################ # DNS ################################ -wikijs_dns_record: "{{ wikijs_web_subdomain }}"-wikijs_dns_zone: "{{ wikijs_web_domain }}"-wikijs_dns_proxy: "{{ dns.proxied }}"+wikijs_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='wikijs') }}"+wikijs_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='wikijs') }}"+wikijs_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -wikijs_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-wikijs_traefik_middleware_default: "{{ traefik_default_middleware }}"-wikijs_traefik_middleware_custom: ""-wikijs_traefik_certresolver: "{{ traefik_default_certresolver }}"-wikijs_traefik_enabled: true-wikijs_traefik_api_enabled: true-wikijs_traefik_api_endpoint: "PathPrefix(`/graphql`)"+wikijs_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+wikijs_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+wikijs_role_traefik_middleware_custom: ""+wikijs_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+wikijs_role_traefik_enabled: true+wikijs_role_traefik_api_enabled: true+wikijs_role_traefik_api_endpoint: "PathPrefix(`/graphql`)" ################################ # Docker ################################ # Container-wikijs_docker_container: "{{ wikijs_name }}"+wikijs_role_docker_container: "{{ wikijs_name }}" # Image-wikijs_docker_image_pull: true-wikijs_docker_image_tag: "2"-wikijs_docker_image: "ghcr.io/requarks/wiki:{{ wikijs_docker_image_tag }}"--# Ports-wikijs_docker_ports_defaults: []-wikijs_docker_ports_custom: []-wikijs_docker_ports: "{{ wikijs_docker_ports_defaults- + wikijs_docker_ports_custom }}"+wikijs_role_docker_image_pull: true+wikijs_role_docker_image_repo: "ghcr.io/requarks/wiki"+wikijs_role_docker_image_tag: "2"+wikijs_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='wikijs') }}:{{ lookup('role_var', '_docker_image_tag', role='wikijs') }}" # Envs-wikijs_docker_envs_default:+wikijs_role_docker_envs_default: TZ: "{{ tz }}" DB_TYPE: "postgres"- DB_HOST: "{{ wikijs_postgres_name }}"+ DB_HOST: "{{ lookup('role_var', '_postgres_name', role='wikijs') }}" DB_PORT: "5432"- DB_USER: "{{ postgres_docker_env_user }}"- DB_PASS: "{{ postgres_docker_env_password }}"- DB_NAME: "{{ wikijs_postgres_docker_env_db }}"-wikijs_docker_envs_custom: {}-wikijs_docker_envs: "{{ wikijs_docker_envs_default- | combine(wikijs_docker_envs_custom) }}"--# Commands-wikijs_docker_commands_default: []-wikijs_docker_commands_custom: []-wikijs_docker_commands: "{{ wikijs_docker_commands_default- + wikijs_docker_commands_custom }}"--# Volumes-wikijs_docker_volumes_default: []-wikijs_docker_volumes_custom: []-wikijs_docker_volumes: "{{ wikijs_docker_volumes_default- + wikijs_docker_volumes_custom }}"--# Devices-wikijs_docker_devices_default: []-wikijs_docker_devices_custom: []-wikijs_docker_devices: "{{ wikijs_docker_devices_default- + wikijs_docker_devices_custom }}"--# Hosts-wikijs_docker_hosts_default: {}-wikijs_docker_hosts_custom: {}-wikijs_docker_hosts: "{{ docker_hosts_common- | combine(wikijs_docker_hosts_default)- | combine(wikijs_docker_hosts_custom) }}"--# Labels-wikijs_docker_labels_default: {}-wikijs_docker_labels_custom: {}-wikijs_docker_labels: "{{ docker_labels_common- | combine(wikijs_docker_labels_default)- | combine(wikijs_docker_labels_custom) }}"+ DB_USER: "{{ lookup('role_var', '_postgres_user', role='wikijs') }}"+ DB_PASS: "{{ lookup('role_var', '_postgres_password', role='wikijs') }}"+ DB_NAME: "{{ lookup('role_var', '_postgres_docker_env_db', role='wikijs') }}"+wikijs_role_docker_envs_custom: {}+wikijs_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='wikijs')+ | combine(lookup('role_var', '_docker_envs_custom', role='wikijs')) }}" # Hostname-wikijs_docker_hostname: "{{ wikijs_name }}"+wikijs_role_docker_hostname: "{{ wikijs_name }}" # Networks-wikijs_docker_networks_alias: "{{ wikijs_name }}"-wikijs_docker_networks_default: []-wikijs_docker_networks_custom: []-wikijs_docker_networks: "{{ docker_networks_common- + wikijs_docker_networks_default- + wikijs_docker_networks_custom }}"--# Capabilities-wikijs_docker_capabilities_default: []-wikijs_docker_capabilities_custom: []-wikijs_docker_capabilities: "{{ wikijs_docker_capabilities_default- + wikijs_docker_capabilities_custom }}"--# Security Opts-wikijs_docker_security_opts_default: []-wikijs_docker_security_opts_custom: []-wikijs_docker_security_opts: "{{ wikijs_docker_security_opts_default- + wikijs_docker_security_opts_custom }}"+wikijs_role_docker_networks_alias: "{{ wikijs_name }}"+wikijs_role_docker_networks_default: []+wikijs_role_docker_networks_custom: []+wikijs_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='wikijs')+ + lookup('role_var', '_docker_networks_custom', role='wikijs') }}" # Restart Policy-wikijs_docker_restart_policy: unless-stopped+wikijs_role_docker_restart_policy: unless-stopped # State-wikijs_docker_state: started+wikijs_role_docker_state: started # Dependencies-wikijs_depends_on: "{{ wikijs_postgres_name }}"-wikijs_depends_on_delay: "0"-wikijs_depends_on_healthchecks: "false"+wikijs_role_depends_on: "{{ lookup('role_var', '_postgres_name', role='wikijs') }}"+wikijs_role_depends_on_delay: "0"+wikijs_role_depends_on_healthchecks: "false"
modified
roles/wikijs/tasks/main.yml
@@ -12,23 +12,25 @@ vars: var_prefix: "{{ wikijs_name }}_postgres" -- name: PostgreSQL Role+- name: "Import Postgres Role" ansible.builtin.include_role: name: postgres vars:- postgres_instances: ["{{ wikijs_postgres_name }}"]- postgres_docker_env_db: "{{ wikijs_postgres_docker_env_db }}"- postgres_docker_image_tag: "{{ wikijs_postgres_docker_image_tag }}"- postgres_docker_image_repo: "{{ wikijs_postgres_docker_image_repo }}"- postgres_paths_folder: "{{ wikijs_postgres_paths_folder }}"- postgres_paths_location: "{{ wikijs_postgres_paths_location }}"+ postgres_instances: ["{{ lookup('role_var', '_postgres_name', role='wikijs') }}"]+ postgres_role_docker_image_tag: "{{ lookup('role_var', '_postgres_docker_image_tag', role='wikijs') }}"+ postgres_role_docker_image_repo: "{{ lookup('role_var', '_postgres_docker_image_repo', role='wikijs') }}"+ postgres_role_paths_folder: "{{ lookup('role_var', '_postgres_paths_folder', role='wikijs') }}"+ postgres_role_paths_location: "{{ lookup('role_var', '_postgres_paths_location', role='wikijs') }}"+ postgres_role_docker_env_db: "{{ lookup('role_var', '_postgres_docker_env_db', role='wikijs') }}"+ postgres_role_docker_healthcheck: "{{ lookup('role_var', '_postgres_docker_healthcheck', role='wikijs') }}"+ when: lookup('role_var', '_postgres_deploy', role='wikijs') - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/wireguard/defaults/main.yml
@@ -1,6 +1,6 @@ ########################################################################## # Title: Sandbox: Wireguard | Default Variables #-# Author(s): owine #+# Author(s): owine, salty # # URL: https://github.com/saltyorg/Sandbox # # -- # ##########################################################################@@ -17,142 +17,150 @@ # Settings ################################ -wireguard_listen_port: "51820"+wireguard_role_listen_port: "51820"+wireguard_role_dns: "1.1.1.1,8.8.8.8"++################################+# Lookups+################################++# Do not edit or override using the inventory+wireguard_role_docker_ipam_config:+ - subnet: "10.42.42.0/24"+ - subnet: "{{ 'fdcc:ad94:bacf:61a3::/64' if docker_ipv6 else omit }}" ################################ # Paths ################################ -wireguard_paths_folder: "{{ wireguard_name }}"-wireguard_paths_location: "{{ server_appdata_path }}/{{ wireguard_paths_folder }}"-wireguard_paths_folders_list:- - "{{ wireguard_paths_location }}"+wireguard_role_paths_folder: "{{ wireguard_name }}"+wireguard_role_paths_location: "{{ server_appdata_path }}/{{ wireguard_role_paths_folder }}"+wireguard_role_paths_folders_list:+ - "{{ wireguard_role_paths_location }}" ################################ # Web ################################ -wireguard_web_subdomain: "{{ wireguard_name }}"-wireguard_web_domain: "{{ user.domain }}"-wireguard_web_port: "51821"-wireguard_web_url: "{{ 'https://' + (wireguard_web_subdomain + '.' + wireguard_web_domain- if (wireguard_web_subdomain | length > 0)- else wireguard_web_domain) }}"+wireguard_role_web_subdomain: "{{ wireguard_name }}"+wireguard_role_web_domain: "{{ user.domain }}"+wireguard_role_web_port: "51821"+wireguard_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='wireguard') + '.' + lookup('role_var', '_web_domain', role='wireguard')+ if (lookup('role_var', '_web_subdomain', role='wireguard') | length > 0)+ else lookup('role_var', '_web_domain', role='wireguard')) }}"+wireguard_role_web_host: "{{ (lookup('role_var', '_web_subdomain', role='wireguard') + '.' + lookup('role_var', '_web_domain', role='wireguard')+ if (lookup('role_var', '_web_subdomain', role='wireguard') | length > 0)+ else lookup('role_var', '_web_domain', role='wireguard')) }}" ################################ # DNS ################################ -wireguard_dns_record: "{{ wireguard_web_subdomain }}"-wireguard_dns_zone: "{{ wireguard_web_domain }}"-wireguard_dns_proxy: "{{ dns.proxied }}"+wireguard_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='wireguard') }}"+wireguard_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='wireguard') }}"+wireguard_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -wireguard_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-wireguard_traefik_middleware_default: "{{ traefik_default_middleware }}"-wireguard_traefik_middleware_custom: ""-wireguard_traefik_certresolver: "{{ traefik_default_certresolver }}"-wireguard_traefik_enabled: true-wireguard_traefik_api_enabled: false-wireguard_traefik_api_endpoint: ""+wireguard_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+wireguard_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+wireguard_role_traefik_middleware_custom: ""+wireguard_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+wireguard_role_traefik_enabled: true+wireguard_role_traefik_api_enabled: false+wireguard_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-wireguard_docker_container: "{{ wireguard_name }}"+wireguard_role_docker_container: "{{ wireguard_name }}" # Image-wireguard_docker_image_pull: true-wireguard_docker_image_tag: "14"-wireguard_docker_image: "ghcr.io/wg-easy/wg-easy:{{ wireguard_docker_image_tag }}"+wireguard_role_docker_image_pull: true+wireguard_role_docker_image_repo: "ghcr.io/wg-easy/wg-easy"+wireguard_role_docker_image_tag: "15"+wireguard_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='wireguard') }}:{{ lookup('role_var', '_docker_image_tag', role='wireguard') }}" # Ports-wireguard_docker_ports_defaults:- - "{{ wireguard_listen_port }}:51820/udp"-wireguard_docker_ports_custom: []-wireguard_docker_ports: "{{ wireguard_docker_ports_defaults- + wireguard_docker_ports_custom }}"+wireguard_role_docker_ports_default:+ - "{{ lookup('role_var', '_listen_port', role='wireguard') }}:{{ lookup('role_var', '_listen_port', role='wireguard') }}/udp"+wireguard_role_docker_ports_custom: []+wireguard_role_docker_ports: "{{ lookup('role_var', '_docker_ports_default', role='wireguard')+ + lookup('role_var', '_docker_ports_custom', role='wireguard') }}" # Envs-wireguard_docker_envs_default:+wireguard_role_docker_envs_default: TZ: "{{ tz }}"- WG_HOST: "{{ ip_address_public }}"- PASSWORD_HASH: "{{ user.pass | password_hash('bcrypt') }}"- WG_PORT: "{{ wireguard_listen_port }}"-wireguard_docker_envs_custom: {}-wireguard_docker_envs: "{{ wireguard_docker_envs_default- | combine(wireguard_docker_envs_custom) }}"--# Commands-wireguard_docker_commands_default: []-wireguard_docker_commands_custom: []-wireguard_docker_commands: "{{ wireguard_docker_commands_default- + wireguard_docker_commands_custom }}"+ DISABLE_IPV6: "{{ 'false' if docker_ipv6 else 'true' }}"+ WG_DEVICE: "eth0"+wireguard_role_docker_envs_setup:+ INIT_ENABLED: "true"+ INIT_USERNAME: "{{ user.name }}"+ INIT_PASSWORD: "{{ user.pass }}"+ INIT_HOST: "{{ lookup('role_var', '_web_host', role='wireguard') }}"+ INIT_PORT: "{{ lookup('role_var', '_listen_port', role='wireguard') }}"+ INIT_DNS: "{{ lookup('role_var', '_dns', role='wireguard') }}"+ INIT_IPV4_CIDR: "10.8.0.0/24"+ INIT_IPV6_CIDR: "2001:0DB8::/32"+wireguard_role_docker_envs_custom: {}+wireguard_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='wireguard')+ | combine(lookup('role_var', '_docker_envs_setup', role='wireguard')+ if not (wireguard_db.stat.exists | default(false))+ else {})+ | combine(lookup('role_var', '_docker_envs_custom', role='wireguard')) }}" # Volumes-wireguard_docker_volumes_default:- - "{{ wireguard_paths_location }}:/etc/wireguard"-wireguard_docker_volumes_custom: []-wireguard_docker_volumes: "{{ wireguard_docker_volumes_default- + wireguard_docker_volumes_custom }}"--# Devices-wireguard_docker_devices_default: []-wireguard_docker_devices_custom: []-wireguard_docker_devices: "{{ wireguard_docker_devices_default- + wireguard_docker_devices_custom }}"--# Hosts-wireguard_docker_hosts_default: {}-wireguard_docker_hosts_custom: {}-wireguard_docker_hosts: "{{ docker_hosts_common- | combine(wireguard_docker_hosts_default)- | combine(wireguard_docker_hosts_custom) }}"--# Labels-wireguard_docker_labels_default: {}-wireguard_docker_labels_custom: {}-wireguard_docker_labels: "{{ docker_labels_common- | combine(wireguard_docker_labels_default)- | combine(wireguard_docker_labels_custom) }}"+wireguard_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='wireguard') }}:/etc/wireguard"+ - /lib/modules:/lib/modules:ro+wireguard_role_docker_volumes_custom: []+wireguard_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='wireguard')+ + lookup('role_var', '_docker_volumes_custom', role='wireguard') }}" # Hostname-wireguard_docker_hostname: "{{ wireguard_name }}"+wireguard_role_docker_hostname: "{{ wireguard_name }}" # Networks-wireguard_docker_networks_alias: "{{ wireguard_name }}"-wireguard_docker_networks_default: []-wireguard_docker_networks_custom: []-wireguard_docker_networks: "{{ docker_networks_common- + wireguard_docker_networks_default- + wireguard_docker_networks_custom }}"+wireguard_role_docker_networks_alias: "{{ wireguard_name }}"+wireguard_role_docker_networks_default:+ - name: wg+ ipv4_address: "10.42.42.42"+ ipv6_address: "{{ 'fdcc:ad94:bacf:61a3::2a' if docker_ipv6 else omit }}"+ gw_priority: 1+ driver_opts:+ com.docker.network.endpoint.ifname: eth0+wireguard_role_docker_networks_custom: []+wireguard_role_docker_networks: "{{ (docker_networks_common | map('combine', {'driver_opts': {'com.docker.network.endpoint.ifname': 'eth1'}}) | list)+ + lookup('role_var', '_docker_networks_default', role='wireguard')+ + lookup('role_var', '_docker_networks_custom', role='wireguard') }}" # Capabilities-wireguard_docker_capabilities_default:+wireguard_role_docker_capabilities_default: - NET_ADMIN - SYS_MODULE-wireguard_docker_capabilities_custom: []-wireguard_docker_capabilities: "{{ wireguard_docker_capabilities_default- + wireguard_docker_capabilities_custom }}"--# Security Opts-wireguard_docker_security_opts_default: []-wireguard_docker_security_opts_custom: []-wireguard_docker_security_opts: "{{ wireguard_docker_security_opts_default- + wireguard_docker_security_opts_custom }}"+wireguard_role_docker_capabilities_custom: []+wireguard_role_docker_capabilities: "{{ lookup('role_var', '_docker_capabilities_default', role='wireguard')+ + lookup('role_var', '_docker_capabilities_custom', role='wireguard') }}" # Sysctls-wireguard_docker_sysctls:+wireguard_role_docker_sysctls_ipv4: net.ipv4.conf.all.src_valid_mark: "1" net.ipv4.ip_forward: "1"+wireguard_role_docker_sysctls_ipv6:+ net.ipv6.conf.all.disable_ipv6: "0"+ net.ipv6.conf.all.forwarding: "1"+ net.ipv6.conf.default.forwarding: "1"+wireguard_role_docker_sysctls: "{{ lookup('role_var', '_docker_sysctls_ipv4', role='wireguard')+ + (lookup('role_var', '_docker_sysctls_ipv6', role='wireguard')+ if docker_ipv6+ else []) }}" # Restart Policy-wireguard_docker_restart_policy: unless-stopped+wireguard_role_docker_restart_policy: unless-stopped # State-wireguard_docker_state: started+wireguard_role_docker_state: started
modified
roles/wireguard/tasks/main.yml
@@ -1,6 +1,6 @@ ########################################################################## # Title: Sandbox: Wireguard #-# Author(s): owine #+# Author(s): owine, salty # # URL: https://github.com/saltyorg/Sandbox # # -- # ##########################################################################@@ -10,12 +10,26 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}"++- name: Check if wg-easy database exists+ ansible.builtin.stat:+ path: "{{ wireguard_role_paths_location }}/wg-easy.db"+ register: wireguard_db - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"++- name: Create wg network+ community.docker.docker_network:+ name: wg+ state: present+ enable_ipv6: "{{ true+ if docker_ipv6+ else false }}"+ ipam_config: "{{ lookup('role_var', '_docker_ipam_config', role='wireguard') | selectattr('subnet', 'defined') }}" - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"
modified
roles/wizarr/defaults/main.yml
@@ -17,133 +17,88 @@ # Paths ################################ -wizarr_paths_folder: "{{ wizarr_name }}"-wizarr_paths_location: "{{ server_appdata_path }}/{{ wizarr_paths_folder }}"-wizarr_paths_folders_list:- - "{{ wizarr_paths_location }}"- - "{{ wizarr_paths_location }}/database"- - "{{ wizarr_paths_location }}/wizard"+wizarr_role_paths_folder: "{{ wizarr_name }}"+wizarr_role_paths_location: "{{ server_appdata_path }}/{{ wizarr_role_paths_folder }}"+wizarr_role_paths_folders_list:+ - "{{ wizarr_role_paths_location }}"+ - "{{ wizarr_role_paths_location }}/database"+ - "{{ wizarr_role_paths_location }}/wizard" ################################ # Web ################################ -wizarr_web_subdomain: "{{ wizarr_name }}"-wizarr_web_domain: "{{ user.domain }}"-wizarr_web_port: "5690"-wizarr_web_url: "{{ 'https://' + (lookup('vars', wizarr_name + '_web_subdomain', default=wizarr_web_subdomain) + '.' + lookup('vars', wizarr_name + '_web_domain', default=wizarr_web_domain)- if (lookup('vars', wizarr_name + '_web_subdomain', default=wizarr_web_subdomain) | length > 0)- else lookup('vars', wizarr_name + '_web_domain', default=wizarr_web_domain)) }}"+wizarr_role_web_subdomain: "{{ wizarr_name }}"+wizarr_role_web_domain: "{{ user.domain }}"+wizarr_role_web_port: "5690"+wizarr_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='wizarr') + '.' + lookup('role_var', '_web_domain', role='wizarr')+ if (lookup('role_var', '_web_subdomain', role='wizarr') | length > 0)+ else lookup('role_var', '_web_domain', role='wizarr')) }}" ################################ # DNS ################################ -wizarr_dns_record: "{{ lookup('vars', wizarr_name + '_web_subdomain', default=wizarr_web_subdomain) }}"-wizarr_dns_zone: "{{ lookup('vars', wizarr_name + '_web_domain', default=wizarr_web_domain) }}"-wizarr_dns_proxy: "{{ dns.proxied }}"+wizarr_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='wizarr') }}"+wizarr_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='wizarr') }}"+wizarr_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -wizarr_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-wizarr_traefik_middleware_default: "{{ traefik_default_middleware }}"-wizarr_traefik_middleware_custom: ""-wizarr_traefik_certresolver: "{{ traefik_default_certresolver }}"-wizarr_traefik_enabled: true-wizarr_traefik_api_enabled: true-wizarr_traefik_api_endpoint: "PathPrefix(`/join`) || PathPrefix(`/j`) || PathPrefix(`/static`) || PathPrefix(`/setup`) || PathPrefix(`/wizard`) || PathPrefix(`/image-proxy`) || PathPrefix(`/cinema-posters`) || PathPrefix(`/invitation`)"+wizarr_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+wizarr_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+wizarr_role_traefik_middleware_custom: ""+wizarr_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+wizarr_role_traefik_enabled: true+wizarr_role_traefik_api_enabled: true+wizarr_role_traefik_api_endpoint: "PathPrefix(`/join`) || PathPrefix(`/j`) || PathPrefix(`/static`) || PathPrefix(`/setup`) || PathPrefix(`/wizard`) || PathPrefix(`/image-proxy`) || PathPrefix(`/cinema-posters`) || PathPrefix(`/invitation`)" ################################ # Docker ################################ # Container-wizarr_docker_container: "{{ wizarr_name }}"+wizarr_role_docker_container: "{{ wizarr_name }}" # Image-wizarr_docker_image_pull: true-wizarr_docker_image_repo: "ghcr.io/wizarrrr/wizarr"-wizarr_docker_image_tag: "latest"-wizarr_docker_image: "{{ lookup('vars', wizarr_name + '_docker_image_repo', default=wizarr_docker_image_repo)- + ':' + lookup('vars', wizarr_name + '_docker_image_tag', default=wizarr_docker_image_tag) }}"--# Ports-wizarr_docker_ports_defaults: []-wizarr_docker_ports_custom: []-wizarr_docker_ports: "{{ lookup('vars', wizarr_name + '_docker_ports_defaults', default=wizarr_docker_ports_defaults)- + lookup('vars', wizarr_name + '_docker_ports_custom', default=wizarr_docker_ports_custom) }}"+wizarr_role_docker_image_pull: true+wizarr_role_docker_image_repo: "ghcr.io/wizarrrr/wizarr"+wizarr_role_docker_image_tag: "latest"+wizarr_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='wizarr') }}:{{ lookup('role_var', '_docker_image_tag', role='wizarr') }}" # Envs-wizarr_docker_envs_default:+wizarr_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"- DISABLE_BUILTIN_AUTH: "{{ 'true' if (wizarr_traefik_sso_middleware | length > 0) else 'false' }}"-wizarr_docker_envs_custom: {}-wizarr_docker_envs: "{{ lookup('vars', wizarr_name + '_docker_envs_default', default=wizarr_docker_envs_default)- | combine(lookup('vars', wizarr_name + '_docker_envs_custom', default=wizarr_docker_envs_custom)) }}"--# Commands-wizarr_docker_commands_default: []-wizarr_docker_commands_custom: []-wizarr_docker_commands: "{{ lookup('vars', wizarr_name + '_docker_commands_default', default=wizarr_docker_commands_default)- + lookup('vars', wizarr_name + '_docker_commands_custom', default=wizarr_docker_commands_custom) }}"+ DISABLE_BUILTIN_AUTH: "{{ 'true' if (lookup('role_var', '_traefik_sso_middleware', role='wizarr') | length > 0) else 'false' }}"+wizarr_role_docker_envs_custom: {}+wizarr_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='wizarr')+ | combine(lookup('role_var', '_docker_envs_custom', role='wizarr')) }}" # Volumes-wizarr_docker_volumes_default:- - "{{ wizarr_paths_location }}/database:/data/database"- - "{{ wizarr_paths_location }}/wizard:/data/wizard"-wizarr_docker_volumes_custom: []-wizarr_docker_volumes: "{{ lookup('vars', wizarr_name + '_docker_volumes_default', default=wizarr_docker_volumes_default)- + lookup('vars', wizarr_name + '_docker_volumes_custom', default=wizarr_docker_volumes_custom) }}"--# Devices-wizarr_docker_devices_default: []-wizarr_docker_devices_custom: []-wizarr_docker_devices: "{{ lookup('vars', wizarr_name + '_docker_devices_default', default=wizarr_docker_devices_default)- + lookup('vars', wizarr_name + '_docker_devices_custom', default=wizarr_docker_devices_custom) }}"--# Hosts-wizarr_docker_hosts_default: {}-wizarr_docker_hosts_custom: {}-wizarr_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', wizarr_name + '_docker_hosts_default', default=wizarr_docker_hosts_default))- | combine(lookup('vars', wizarr_name + '_docker_hosts_custom', default=wizarr_docker_hosts_custom)) }}"--# Labels-wizarr_docker_labels_default: {}-wizarr_docker_labels_custom: {}-wizarr_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', wizarr_name + '_docker_labels_default', default=wizarr_docker_labels_default))- | combine(lookup('vars', wizarr_name + '_docker_labels_custom', default=wizarr_docker_labels_custom)) }}"+wizarr_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='wizarr') }}/database:/data/database"+ - "{{ lookup('role_var', '_paths_location', role='wizarr') }}/wizard:/data/wizard"+wizarr_role_docker_volumes_custom: []+wizarr_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='wizarr')+ + lookup('role_var', '_docker_volumes_custom', role='wizarr') }}" # Hostname-wizarr_docker_hostname: "{{ wizarr_name }}"+wizarr_role_docker_hostname: "{{ wizarr_name }}" # Networks-wizarr_docker_networks_alias: "{{ wizarr_name }}"-wizarr_docker_networks_default: []-wizarr_docker_networks_custom: []-wizarr_docker_networks: "{{ docker_networks_common- + lookup('vars', wizarr_name + '_docker_networks_default', default=wizarr_docker_networks_default)- + lookup('vars', wizarr_name + '_docker_networks_custom', default=wizarr_docker_networks_custom) }}"--# Capabilities-wizarr_docker_capabilities_default: []-wizarr_docker_capabilities_custom: []-wizarr_docker_capabilities: "{{ lookup('vars', wizarr_name + '_docker_capabilities_default', default=wizarr_docker_capabilities_default)- + lookup('vars', wizarr_name + '_docker_capabilities_custom', default=wizarr_docker_capabilities_custom) }}"--# Security Opts-wizarr_docker_security_opts_default: []-wizarr_docker_security_opts_custom: []-wizarr_docker_security_opts: "{{ lookup('vars', wizarr_name + '_docker_security_opts_default', default=wizarr_docker_security_opts_default)- + lookup('vars', wizarr_name + '_docker_security_opts_default', default=wizarr_docker_security_opts_default) }}"+wizarr_role_docker_networks_alias: "{{ wizarr_name }}"+wizarr_role_docker_networks_default: []+wizarr_role_docker_networks_custom: []+wizarr_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='wizarr')+ + lookup('role_var', '_docker_networks_custom', role='wizarr') }}" # Restart Policy-wizarr_docker_restart_policy: unless-stopped+wizarr_role_docker_restart_policy: unless-stopped # State-wizarr_docker_state: started+wizarr_role_docker_state: started
modified
roles/wizarr/tasks/main2.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/wizarr/tasks/subtasks/migration.yml
@@ -7,26 +7,26 @@ # GNU General Public License v3.0 # ######################################################################### ----- name: Migration | Check if `{{ wizarr_paths_location }}` exists+- name: Migration | Check if `{{ wizarr_role_paths_location }}` exists ansible.builtin.stat:- path: "{{ wizarr_paths_location }}"+ path: "{{ wizarr_role_paths_location }}" register: wizarr_role_paths_location_stat -- name: Migration | Check if `{{ wizarr_paths_location }}/database` exists+- name: Migration | Check if `{{ wizarr_role_paths_location }}/database` exists ansible.builtin.stat:- path: "{{ wizarr_paths_location }}/database"+ path: "{{ wizarr_role_paths_location }}/database" register: wizarr_role_paths_database_stat -- name: Migration | Check if `{{ wizarr_paths_location }}/database.db` exists+- name: Migration | Check if `{{ wizarr_role_paths_location }}/database.db` exists ansible.builtin.stat:- path: "{{ wizarr_paths_location }}/database"+ path: "{{ wizarr_role_paths_location }}/database" register: wizarr_role_paths_database_file_stat - name: Migration | Backup old database directory when: wizarr_role_paths_location_stat.stat.exists and wizarr_role_paths_database_file_stat.stat.exists and (not wizarr_role_paths_database_stat.stat.exists) block: - name: Migration | Check database version- ansible.builtin.shell: sqlite3 -readonly "{{ wizarr_paths_location }}/database.db" "SELECT value FROM settings WHERE key='version'"+ ansible.builtin.shell: sqlite3 -readonly "{{ wizarr_role_paths_location }}/database.db" "SELECT value FROM settings WHERE key='version'" register: wizarr_role_database_version - name: Migration | Fail if database version is not 4.2.0@@ -36,8 +36,8 @@ - name: Migration | Migrate old user data to temp folder migrate_folder:- legacy_path: "{{ wizarr_paths_location }}"- new_path: "{{ wizarr_paths_location }}_backup"+ legacy_path: "{{ wizarr_role_paths_location }}"+ new_path: "{{ wizarr_role_paths_location }}_backup" owner: "{{ user.name }}" group: "{{ user.name }}" mode: '0775'@@ -45,8 +45,8 @@ - name: Migration | Migrate old user data to new location migrate_folder:- legacy_path: "{{ wizarr_paths_location }}_backup"- new_path: "{{ wizarr_paths_location }}/database"+ legacy_path: "{{ wizarr_role_paths_location }}_backup"+ new_path: "{{ wizarr_role_paths_location }}/database" owner: "{{ user.name }}" group: "{{ user.name }}" mode: '0775'
modified
roles/wordpress/defaults/main.yml
@@ -17,140 +17,95 @@ # Paths ################################ -wordpress_paths_folder: "{{ wordpress_name }}"-wordpress_paths_location: "{{ server_appdata_path }}/{{ wordpress_paths_folder }}"-wordpress_paths_folders_list:- - "{{ wordpress_paths_location }}"-wordpress_paths_recursive: true+wordpress_role_paths_folder: "{{ wordpress_name }}"+wordpress_role_paths_location: "{{ server_appdata_path }}/{{ wordpress_role_paths_folder }}"+wordpress_role_paths_folders_list:+ - "{{ wordpress_role_paths_location }}"+wordpress_role_paths_recursive: true ################################ # Web ################################ -wordpress_web_subdomain: "{{ wordpress_name }}"-wordpress_web_domain: "{{ user.domain }}"-wordpress_web_port: "80"-wordpress_web_url: "{{ 'https://' + (lookup('vars', wordpress_name + '_web_subdomain', default=wordpress_web_subdomain) + '.' + lookup('vars', wordpress_name + '_web_domain', default=wordpress_web_domain)- if (lookup('vars', wordpress_name + '_web_subdomain', default=wordpress_web_subdomain) | length > 0)- else lookup('vars', wordpress_name + '_web_domain', default=wordpress_web_domain)) }}"+wordpress_role_web_subdomain: "{{ wordpress_name }}"+wordpress_role_web_domain: "{{ user.domain }}"+wordpress_role_web_port: "80"+wordpress_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='wordpress') + '.' + lookup('role_var', '_web_domain', role='wordpress')+ if (lookup('role_var', '_web_subdomain', role='wordpress') | length > 0)+ else lookup('role_var', '_web_domain', role='wordpress')) }}" ################################ # DNS ################################ -wordpress_dns_record: "{{ lookup('vars', wordpress_name + '_web_subdomain', default=wordpress_web_subdomain) }}"-wordpress_dns_zone: "{{ lookup('vars', wordpress_name + '_web_domain', default=wordpress_web_domain) }}"-wordpress_dns_proxy: "{{ dns.proxied }}"+wordpress_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='wordpress') }}"+wordpress_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='wordpress') }}"+wordpress_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -wordpress_traefik_sso_middleware: ""-wordpress_traefik_middleware_default: "{{ traefik_default_middleware }}"-wordpress_traefik_middleware_custom: ""-wordpress_traefik_certresolver: "{{ traefik_default_certresolver }}"-wordpress_traefik_enabled: true-wordpress_traefik_api_enabled: false-wordpress_traefik_api_endpoint: ""+wordpress_role_traefik_sso_middleware: ""+wordpress_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+wordpress_role_traefik_middleware_custom: ""+wordpress_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+wordpress_role_traefik_enabled: true+wordpress_role_traefik_api_enabled: false+wordpress_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-wordpress_docker_container: "{{ wordpress_name }}"+wordpress_role_docker_container: "{{ wordpress_name }}" # Image-wordpress_docker_image_pull: true-wordpress_docker_image_repo: "wordpress"-wordpress_docker_image_tag: "latest"-wordpress_docker_image: "{{ lookup('vars', wordpress_name + '_docker_image_repo', default=wordpress_docker_image_repo)- + ':' + lookup('vars', wordpress_name + '_docker_image_tag', default=wordpress_docker_image_tag) }}"--# Ports-wordpress_docker_ports_defaults: []-wordpress_docker_ports_custom: []-wordpress_docker_ports: "{{ lookup('vars', wordpress_name + '_docker_ports_defaults', default=wordpress_docker_ports_defaults)- + lookup('vars', wordpress_name + '_docker_ports_custom', default=wordpress_docker_ports_custom) }}"+wordpress_role_docker_image_pull: true+wordpress_role_docker_image_repo: "wordpress"+wordpress_role_docker_image_tag: "latest"+wordpress_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='wordpress') }}:{{ lookup('role_var', '_docker_image_tag', role='wordpress') }}" # Envs-wordpress_docker_envs_default:+wordpress_role_docker_envs_default: TZ: "{{ tz }}" WORDPRESS_DB_HOST: "mariadb:3306" WORDPRESS_DB_USER: "root" WORDPRESS_DB_PASSWORD: "password321" WORDPRESS_DB_NAME: "{{ wordpress_name }}"-wordpress_docker_envs_custom: {}-wordpress_docker_envs: "{{ lookup('vars', wordpress_name + '_docker_envs_default', default=wordpress_docker_envs_default)- | combine(lookup('vars', wordpress_name + '_docker_envs_custom', default=wordpress_docker_envs_custom)) }}"--# Commands-wordpress_docker_commands_default: []-wordpress_docker_commands_custom: []-wordpress_docker_commands: "{{ lookup('vars', wordpress_name + '_docker_commands_default', default=wordpress_docker_commands_default)- + lookup('vars', wordpress_name + '_docker_commands_custom', default=wordpress_docker_commands_custom) }}"+wordpress_role_docker_envs_custom: {}+wordpress_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='wordpress')+ | combine(lookup('role_var', '_docker_envs_custom', role='wordpress')) }}" # Volumes-wordpress_docker_volumes_default:- - "{{ wordpress_paths_location }}:/var/www/html"-wordpress_docker_volumes_custom: []-wordpress_docker_volumes: "{{ lookup('vars', wordpress_name + '_docker_volumes_default', default=wordpress_docker_volumes_default)- + lookup('vars', wordpress_name + '_docker_volumes_custom', default=wordpress_docker_volumes_custom) }}"--# Devices-wordpress_docker_devices_default: []-wordpress_docker_devices_custom: []-wordpress_docker_devices: "{{ lookup('vars', wordpress_name + '_docker_devices_default', default=wordpress_docker_devices_default)- + lookup('vars', wordpress_name + '_docker_devices_custom', default=wordpress_docker_devices_custom) }}"--# Hosts-wordpress_docker_hosts_default: []-wordpress_docker_hosts_custom: []-wordpress_docker_hosts: "{{ docker_hosts_common- | combine(lookup('vars', wordpress_name + '_docker_hosts_default', default=wordpress_docker_hosts_default))- | combine(lookup('vars', wordpress_name + '_docker_hosts_custom', default=wordpress_docker_hosts_custom)) }}"--# Labels-wordpress_docker_labels_default: {}-wordpress_docker_labels_custom: {}-wordpress_docker_labels: "{{ docker_labels_common- | combine(lookup('vars', wordpress_name + '_docker_labels_default', default=wordpress_docker_labels_default))- | combine(lookup('vars', wordpress_name + '_docker_labels_custom', default=wordpress_docker_labels_custom)) }}"+wordpress_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='wordpress') }}:/var/www/html"+wordpress_role_docker_volumes_custom: []+wordpress_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='wordpress')+ + lookup('role_var', '_docker_volumes_custom', role='wordpress') }}" # Hostname-wordpress_docker_hostname: "{{ wordpress_name }}"+wordpress_role_docker_hostname: "{{ wordpress_name }}" # Networks-wordpress_docker_networks_alias: "{{ wordpress_name }}"-wordpress_docker_networks_default: []-wordpress_docker_networks_custom: []-wordpress_docker_networks: "{{ docker_networks_common- + lookup('vars', wordpress_name + '_docker_networks_default', default=wordpress_docker_networks_default)- + lookup('vars', wordpress_name + '_docker_networks_custom', default=wordpress_docker_networks_custom) }}"--# Capabilities-wordpress_docker_capabilities_default: []-wordpress_docker_capabilities_custom: []-wordpress_docker_capabilities: "{{ lookup('vars', wordpress_name + '_docker_capabilities_default', default=wordpress_docker_capabilities_default)- + lookup('vars', wordpress_name + '_docker_capabilities_custom', default=wordpress_docker_capabilities_custom) }}"--# Security Opts-wordpress_docker_security_opts_default: []-wordpress_docker_security_opts_custom: []-wordpress_docker_security_opts: "{{ lookup('vars', wordpress_name + '_docker_security_opts_default', default=wordpress_docker_security_opts_default)- + lookup('vars', wordpress_name + '_docker_security_opts_custom', default=wordpress_docker_security_opts_custom) }}"+wordpress_role_docker_networks_alias: "{{ wordpress_name }}"+wordpress_role_docker_networks_default: []+wordpress_role_docker_networks_custom: []+wordpress_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='wordpress')+ + lookup('role_var', '_docker_networks_custom', role='wordpress') }}" # Restart Policy-wordpress_docker_restart_policy: unless-stopped+wordpress_role_docker_restart_policy: unless-stopped # State-wordpress_docker_state: started+wordpress_role_docker_state: started # User-wordpress_docker_user: "{{ uid }}:{{ gid }}"+wordpress_role_docker_user: "{{ uid }}:{{ gid }}" # Dependencies-wordpress_depends_on: "mariadb"-wordpress_depends_on_delay: "0"-wordpress_depends_on_healthchecks: "false"+wordpress_role_depends_on: "mariadb"+wordpress_role_depends_on_delay: "0"+wordpress_role_depends_on_healthchecks: "false"
modified
roles/wordpress/tasks/main2.yml
@@ -14,9 +14,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -29,7 +29,7 @@ name: "{{ wordpress_name }}" login_host: "mariadb" login_user: "root"- login_password: "{{ mariadb_docker_env_password }}"+ login_password: "{{ mariadb_role_docker_env_password }}" state: present - name: Create Docker container
modified
roles/wrapperr/defaults/main.yml
@@ -17,124 +17,75 @@ # Paths ################################ -wrapperr_paths_folder: "{{ wrapperr_name }}"-wrapperr_paths_location: "{{ server_appdata_path }}/{{ wrapperr_paths_folder }}"-wrapperr_paths_folders_list:- - "{{ wrapperr_paths_location }}"+wrapperr_role_paths_folder: "{{ wrapperr_name }}"+wrapperr_role_paths_location: "{{ server_appdata_path }}/{{ wrapperr_role_paths_folder }}"+wrapperr_role_paths_folders_list:+ - "{{ wrapperr_role_paths_location }}" ################################ # Web ################################ -wrapperr_web_subdomain: "{{ wrapperr_name }}"-wrapperr_web_domain: "{{ user.domain }}"-wrapperr_web_port: "8282"-wrapperr_web_url: "{{ 'https://' + (wrapperr_web_subdomain + '.' + wrapperr_web_domain- if (wrapperr_web_subdomain | length > 0)- else wrapperr_web_domain) }}"+wrapperr_role_web_subdomain: "{{ wrapperr_name }}"+wrapperr_role_web_domain: "{{ user.domain }}"+wrapperr_role_web_port: "8282"+wrapperr_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='wrapperr') + '.' + lookup('role_var', '_web_domain', role='wrapperr')+ if (lookup('role_var', '_web_subdomain', role='wrapperr') | length > 0)+ else lookup('role_var', '_web_domain', role='wrapperr')) }}" ################################ # DNS ################################ -wrapperr_dns_record: "{{ wrapperr_web_subdomain }}"-wrapperr_dns_zone: "{{ wrapperr_web_domain }}"-wrapperr_dns_proxy: "{{ dns.proxied }}"+wrapperr_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='wrapperr') }}"+wrapperr_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='wrapperr') }}"+wrapperr_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -wrapperr_traefik_sso_middleware: ""-wrapperr_traefik_middleware_default: "{{ traefik_default_middleware }}"-wrapperr_traefik_middleware_custom: ""-wrapperr_traefik_certresolver: "{{ traefik_default_certresolver }}"-wrapperr_traefik_enabled: true-wrapperr_traefik_api_enabled: false-wrapperr_traefik_api_endpoint: ""+wrapperr_role_traefik_sso_middleware: ""+wrapperr_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+wrapperr_role_traefik_middleware_custom: ""+wrapperr_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+wrapperr_role_traefik_enabled: true+wrapperr_role_traefik_api_enabled: false+wrapperr_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-wrapperr_docker_container: "{{ wrapperr_name }}"+wrapperr_role_docker_container: "{{ wrapperr_name }}" # Image-wrapperr_docker_image_pull: true-wrapperr_docker_image_tag: "latest"-wrapperr_docker_image: "aunefyren/wrapperr:{{ wrapperr_docker_image_tag }}"--# Ports-wrapperr_docker_ports_defaults: []-wrapperr_docker_ports_custom: []-wrapperr_docker_ports: "{{ wrapperr_docker_ports_defaults- + wrapperr_docker_ports_custom }}"--# Envs-wrapperr_docker_envs_default: {}-wrapperr_docker_envs_custom: {}-wrapperr_docker_envs: "{{ wrapperr_docker_envs_default- | combine(wrapperr_docker_envs_custom) }}"--# Commands-wrapperr_docker_commands_default: []-wrapperr_docker_commands_custom: []-wrapperr_docker_commands: "{{ wrapperr_docker_commands_default- + wrapperr_docker_commands_custom }}"+wrapperr_role_docker_image_pull: true+wrapperr_role_docker_image_repo: "aunefyren/wrapperr"+wrapperr_role_docker_image_tag: "latest"+wrapperr_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='wrapperr') }}:{{ lookup('role_var', '_docker_image_tag', role='wrapperr') }}" # Volumes-wrapperr_docker_volumes_default:- - "{{ wrapperr_paths_location }}:/app/config"-wrapperr_docker_volumes_custom: []-wrapperr_docker_volumes: "{{ wrapperr_docker_volumes_default- + wrapperr_docker_volumes_custom }}"--# Devices-wrapperr_docker_devices_default: []-wrapperr_docker_devices_custom: []-wrapperr_docker_devices: "{{ wrapperr_docker_devices_default- + wrapperr_docker_devices_custom }}"--# Hosts-wrapperr_docker_hosts_default: {}-wrapperr_docker_hosts_custom: {}-wrapperr_docker_hosts: "{{ docker_hosts_common- | combine(wrapperr_docker_hosts_default)- | combine(wrapperr_docker_hosts_custom) }}"--# Labels-wrapperr_docker_labels_default: {}-wrapperr_docker_labels_custom: {}-wrapperr_docker_labels: "{{ docker_labels_common- | combine(wrapperr_docker_labels_default)- | combine(wrapperr_docker_labels_custom) }}"+wrapperr_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='wrapperr') }}:/app/config"+wrapperr_role_docker_volumes_custom: []+wrapperr_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='wrapperr')+ + lookup('role_var', '_docker_volumes_custom', role='wrapperr') }}" # Hostname-wrapperr_docker_hostname: "{{ wrapperr_name }}"+wrapperr_role_docker_hostname: "{{ wrapperr_name }}" # Networks-wrapperr_docker_networks_alias: "{{ wrapperr_name }}"-wrapperr_docker_networks_default: []-wrapperr_docker_networks_custom: []-wrapperr_docker_networks: "{{ docker_networks_common- + wrapperr_docker_networks_default- + wrapperr_docker_networks_custom }}"--# Capabilities-wrapperr_docker_capabilities_default: []-wrapperr_docker_capabilities_custom: []-wrapperr_docker_capabilities: "{{ wrapperr_docker_capabilities_default- + wrapperr_docker_capabilities_custom }}"--# Security Opts-wrapperr_docker_security_opts_default: []-wrapperr_docker_security_opts_custom: []-wrapperr_docker_security_opts: "{{ wrapperr_docker_security_opts_default- + wrapperr_docker_security_opts_custom }}"+wrapperr_role_docker_networks_alias: "{{ wrapperr_name }}"+wrapperr_role_docker_networks_default: []+wrapperr_role_docker_networks_custom: []+wrapperr_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='wrapperr')+ + lookup('role_var', '_docker_networks_custom', role='wrapperr') }}" # Restart Policy-wrapperr_docker_restart_policy: unless-stopped+wrapperr_role_docker_restart_policy: unless-stopped # State-wrapperr_docker_state: started+wrapperr_role_docker_state: started
modified
roles/wrapperr/tasks/main.yml
@@ -10,21 +10,15 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" - name: Create directories- ansible.builtin.file:- path: "{{ item }}"- state: directory- owner: "{{ user.name }}"- group: "{{ user.name }}"- mode: "0777"- with_items: "{{ lookup('vars', role_name + '_paths_folders_list') }}"+ ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" - name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"
modified
roles/xbackbone/defaults/main.yml
@@ -17,127 +17,84 @@ # Paths ################################ -xbackbone_paths_folder: "{{ xbackbone_name }}"-xbackbone_paths_location: "{{ server_appdata_path }}/{{ xbackbone_paths_folder }}"-xbackbone_paths_folders_list:- - "{{ xbackbone_paths_location }}"+xbackbone_role_paths_folder: "{{ xbackbone_name }}"+xbackbone_role_paths_location: "{{ server_appdata_path }}/{{ xbackbone_role_paths_folder }}"+xbackbone_role_paths_folders_list:+ - "{{ xbackbone_role_paths_location }}" ################################ # Web ################################ -xbackbone_web_subdomain: "{{ xbackbone_name }}"-xbackbone_web_domain: "{{ user.domain }}"-xbackbone_web_port: "80"-xbackbone_web_url: "{{ 'https://' + (xbackbone_web_subdomain + '.' + xbackbone_web_domain- if (xbackbone_web_subdomain | length > 0)- else xbackbone_web_domain) }}"+xbackbone_role_web_subdomain: "{{ xbackbone_name }}"+xbackbone_role_web_domain: "{{ user.domain }}"+xbackbone_role_web_port: "80"+xbackbone_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='xbackbone') + '.' + lookup('role_var', '_web_domain', role='xbackbone')+ if (lookup('role_var', '_web_subdomain', role='xbackbone') | length > 0)+ else lookup('role_var', '_web_domain', role='xbackbone')) }}" ################################ # DNS ################################ -xbackbone_dns_record: "{{ xbackbone_web_subdomain }}"-xbackbone_dns_zone: "{{ xbackbone_web_domain }}"-xbackbone_dns_proxy: "{{ dns.proxied }}"+xbackbone_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='xbackbone') }}"+xbackbone_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='xbackbone') }}"+xbackbone_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -xbackbone_traefik_sso_middleware: ""-xbackbone_traefik_middleware_default: "{{ traefik_default_middleware }}"-xbackbone_traefik_middleware_custom: ""-xbackbone_traefik_certresolver: "{{ traefik_default_certresolver }}"-xbackbone_traefik_enabled: true-xbackbone_traefik_api_enabled: false-xbackbone_traefik_api_endpoint: ""+xbackbone_role_traefik_sso_middleware: ""+xbackbone_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+xbackbone_role_traefik_middleware_custom: ""+xbackbone_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+xbackbone_role_traefik_enabled: true+xbackbone_role_traefik_api_enabled: false+xbackbone_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-xbackbone_docker_container: "{{ xbackbone_name }}"+xbackbone_role_docker_container: "{{ xbackbone_name }}" # Image-xbackbone_docker_image_pull: true-xbackbone_docker_image_tag: "latest"-xbackbone_docker_image: "lscr.io/linuxserver/xbackbone:{{ xbackbone_docker_image_tag }}"--# Ports-xbackbone_docker_ports_defaults: []-xbackbone_docker_ports_custom: []-xbackbone_docker_ports: "{{ xbackbone_docker_ports_defaults- + xbackbone_docker_ports_custom }}"+xbackbone_role_docker_image_pull: true+xbackbone_role_docker_image_repo: "lscr.io/linuxserver/xbackbone"+xbackbone_role_docker_image_tag: "latest"+xbackbone_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='xbackbone') }}:{{ lookup('role_var', '_docker_image_tag', role='xbackbone') }}" # Envs-xbackbone_docker_envs_default:+xbackbone_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-xbackbone_docker_envs_custom: {}-xbackbone_docker_envs: "{{ xbackbone_docker_envs_default- | combine(xbackbone_docker_envs_custom) }}"--# Commands-xbackbone_docker_commands_default: []-xbackbone_docker_commands_custom: []-xbackbone_docker_commands: "{{ xbackbone_docker_commands_default- + xbackbone_docker_commands_custom }}"+xbackbone_role_docker_envs_custom: {}+xbackbone_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='xbackbone')+ | combine(lookup('role_var', '_docker_envs_custom', role='xbackbone')) }}" # Volumes-xbackbone_docker_volumes_default:- - "{{ xbackbone_paths_location }}:/config"-xbackbone_docker_volumes_custom: []-xbackbone_docker_volumes: "{{ xbackbone_docker_volumes_default- + xbackbone_docker_volumes_custom }}"--# Devices-xbackbone_docker_devices_default: []-xbackbone_docker_devices_custom: []-xbackbone_docker_devices: "{{ xbackbone_docker_devices_default- + xbackbone_docker_devices_custom }}"--# Hosts-xbackbone_docker_hosts_default: {}-xbackbone_docker_hosts_custom: {}-xbackbone_docker_hosts: "{{ docker_hosts_common- | combine(xbackbone_docker_hosts_default)- | combine(xbackbone_docker_hosts_custom) }}"--# Labels-xbackbone_docker_labels_default: {}-xbackbone_docker_labels_custom: {}-xbackbone_docker_labels: "{{ docker_labels_common- | combine(xbackbone_docker_labels_default)- | combine(xbackbone_docker_labels_custom) }}"+xbackbone_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='xbackbone') }}:/config"+xbackbone_role_docker_volumes_custom: []+xbackbone_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='xbackbone')+ + lookup('role_var', '_docker_volumes_custom', role='xbackbone') }}" # Hostname-xbackbone_docker_hostname: "{{ xbackbone_name }}"+xbackbone_role_docker_hostname: "{{ xbackbone_name }}" # Networks-xbackbone_docker_networks_alias: "{{ xbackbone_name }}"-xbackbone_docker_networks_default: []-xbackbone_docker_networks_custom: []-xbackbone_docker_networks: "{{ docker_networks_common- + xbackbone_docker_networks_default- + xbackbone_docker_networks_custom }}"--# Capabilities-xbackbone_docker_capabilities_default: []-xbackbone_docker_capabilities_custom: []-xbackbone_docker_capabilities: "{{ xbackbone_docker_capabilities_default- + xbackbone_docker_capabilities_custom }}"--# Security Opts-xbackbone_docker_security_opts_default: []-xbackbone_docker_security_opts_custom: []-xbackbone_docker_security_opts: "{{ xbackbone_docker_security_opts_default- + xbackbone_docker_security_opts_custom }}"+xbackbone_role_docker_networks_alias: "{{ xbackbone_name }}"+xbackbone_role_docker_networks_default: []+xbackbone_role_docker_networks_custom: []+xbackbone_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='xbackbone')+ + lookup('role_var', '_docker_networks_custom', role='xbackbone') }}" # Restart Policy-xbackbone_docker_restart_policy: unless-stopped+xbackbone_role_docker_restart_policy: unless-stopped # State-xbackbone_docker_state: started+xbackbone_role_docker_state: started
modified
roles/xbackbone/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/xteve/defaults/main.yml
@@ -17,131 +17,88 @@ # Paths ################################ -xteve_paths_folder: "{{ xteve_name }}"-xteve_paths_location: "{{ server_appdata_path }}/{{ xteve_paths_folder }}"-xteve_paths_folders_list:- - "{{ xteve_paths_location }}"+xteve_role_paths_folder: "{{ xteve_name }}"+xteve_role_paths_location: "{{ server_appdata_path }}/{{ xteve_role_paths_folder }}"+xteve_role_paths_folders_list:+ - "{{ xteve_role_paths_location }}" ################################ # Web ################################ -xteve_web_subdomain: "{{ xteve_name }}"-xteve_web_domain: "{{ user.domain }}"-xteve_web_port: "34400"-xteve_web_url: "{{ 'https://' + (xteve_web_subdomain + '.' + xteve_web_domain- if (xteve_web_subdomain | length > 0)- else xteve_web_domain) }}"+xteve_role_web_subdomain: "{{ xteve_name }}"+xteve_role_web_domain: "{{ user.domain }}"+xteve_role_web_port: "34400"+xteve_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='xteve') + '.' + lookup('role_var', '_web_domain', role='xteve')+ if (lookup('role_var', '_web_subdomain', role='xteve') | length > 0)+ else lookup('role_var', '_web_domain', role='xteve')) }}" ################################ # DNS ################################ -xteve_dns_record: "{{ xteve_web_subdomain }}"-xteve_dns_zone: "{{ xteve_web_domain }}"-xteve_dns_proxy: "{{ dns.proxied }}"+xteve_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='xteve') }}"+xteve_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='xteve') }}"+xteve_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -xteve_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-xteve_traefik_middleware_default: "{{ traefik_default_middleware }}"-xteve_traefik_middleware_custom: ""-xteve_traefik_certresolver: "{{ traefik_default_certresolver }}"-xteve_traefik_enabled: true-xteve_traefik_api_enabled: true-xteve_traefik_api_endpoint: "PathPrefix(`/data_images`) || PathPrefix(`/api`)"+xteve_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+xteve_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+xteve_role_traefik_middleware_custom: ""+xteve_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+xteve_role_traefik_enabled: true+xteve_role_traefik_api_enabled: true+xteve_role_traefik_api_endpoint: "PathPrefix(`/data_images`) || PathPrefix(`/api`)" ################################ # Docker ################################ # Container-xteve_docker_container: "{{ xteve_name }}"+xteve_role_docker_container: "{{ xteve_name }}" # Image-xteve_docker_image_pull: true-xteve_docker_image_tag: "latest"-xteve_docker_image: "dnsforge/xteve:{{ xteve_docker_image_tag }}"--# Ports-xteve_docker_ports_defaults: []-xteve_docker_ports_custom: []-xteve_docker_ports: "{{ xteve_docker_ports_defaults- + xteve_docker_ports_custom }}"+xteve_role_docker_image_pull: true+xteve_role_docker_image_repo: "dnsforge/xteve"+xteve_role_docker_image_tag: "latest"+xteve_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='xteve') }}:{{ lookup('role_var', '_docker_image_tag', role='xteve') }}" # Envs-xteve_docker_envs_default:+xteve_role_docker_envs_default: TZ: "{{ tz }}" XTEVE_BRANCH: "beta" XTEVE_UID: "{{ uid }}" XTEVE_GID: "{{ gid }}" XTEVE_API: "1"-xteve_docker_envs_custom: {}-xteve_docker_envs: "{{ xteve_docker_envs_default- | combine(xteve_docker_envs_custom) }}"--# Commands-xteve_docker_commands_default: []-xteve_docker_commands_custom: []-xteve_docker_commands: "{{ xteve_docker_commands_default- + xteve_docker_commands_custom }}"+xteve_role_docker_envs_custom: {}+xteve_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='xteve')+ | combine(lookup('role_var', '_docker_envs_custom', role='xteve')) }}" # Volumes-xteve_docker_volumes_default:- - "{{ xteve_paths_location }}/app/config:/home/xteve/conf:rw"- - "{{ xteve_paths_location }}/app/tmp:/tmp/xteve:rw"- - "{{ xteve_paths_location }}/app/guide2go:/home/xteve/guide2go/conf:rw"-xteve_docker_volumes_custom: []-xteve_docker_volumes: "{{ xteve_docker_volumes_default- + xteve_docker_volumes_custom }}"--# Devices-xteve_docker_devices_default: []-xteve_docker_devices_custom: []-xteve_docker_devices: "{{ xteve_docker_devices_default- + xteve_docker_devices_custom }}"--# Hosts-xteve_docker_hosts_default: {}-xteve_docker_hosts_custom: {}-xteve_docker_hosts: "{{ docker_hosts_common- | combine(xteve_docker_hosts_default)- | combine(xteve_docker_hosts_custom) }}"--# Labels-xteve_docker_labels_default: {}-xteve_docker_labels_custom: {}-xteve_docker_labels: "{{ docker_labels_common- | combine(xteve_docker_labels_default)- | combine(xteve_docker_labels_custom) }}"+xteve_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='xteve') }}/app/config:/home/xteve/conf"+ - "{{ lookup('role_var', '_paths_location', role='xteve') }}/app/tmp:/tmp/xteve"+ - "{{ lookup('role_var', '_paths_location', role='xteve') }}/app/guide2go:/home/xteve/guide2go/conf"+xteve_role_docker_volumes_custom: []+xteve_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='xteve')+ + lookup('role_var', '_docker_volumes_custom', role='xteve') }}" # Hostname-xteve_docker_hostname: "{{ xteve_name }}"+xteve_role_docker_hostname: "{{ xteve_name }}" # Networks-xteve_docker_networks_alias: "{{ xteve_name }}"-xteve_docker_networks_default: []-xteve_docker_networks_custom: []-xteve_docker_networks: "{{ docker_networks_common- + xteve_docker_networks_default- + xteve_docker_networks_custom }}"--# Capabilities-xteve_docker_capabilities_default: []-xteve_docker_capabilities_custom: []-xteve_docker_capabilities: "{{ xteve_docker_capabilities_default- + xteve_docker_capabilities_custom }}"--# Security Opts-xteve_docker_security_opts_default: []-xteve_docker_security_opts_custom: []-xteve_docker_security_opts: "{{ xteve_docker_security_opts_default- + xteve_docker_security_opts_custom }}"+xteve_role_docker_networks_alias: "{{ xteve_name }}"+xteve_role_docker_networks_default: []+xteve_role_docker_networks_custom: []+xteve_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='xteve')+ + lookup('role_var', '_docker_networks_custom', role='xteve') }}" # Restart Policy-xteve_docker_restart_policy: unless-stopped+xteve_role_docker_restart_policy: unless-stopped # State-xteve_docker_state: started+xteve_role_docker_state: started
modified
roles/xteve/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/yacht/defaults/main.yml
@@ -8,10 +8,16 @@ ########################################################################## --- ################################+# Basics+################################++yacht_name: yacht++################################ # Docker Socket Proxy ################################ -yacht_docker_socket_proxy_envs:+yacht_role_docker_socket_proxy_envs: CONTAINERS: "1" POST: "0" IMAGES: "1"@@ -19,147 +25,98 @@ NETWORKS: "1" ################################-# Basics-################################--yacht_name: yacht--################################ # Paths ################################ -yacht_paths_folder: "{{ yacht_name }}"-yacht_paths_location: "{{ server_appdata_path }}/{{ yacht_paths_folder }}"-yacht_paths_folders_list:- - "{{ yacht_paths_location }}"- - "{{ yacht_paths_location }}/config"- - "{{ yacht_paths_location }}/storage"+yacht_role_paths_folder: "{{ yacht_name }}"+yacht_role_paths_location: "{{ server_appdata_path }}/{{ yacht_role_paths_folder }}"+yacht_role_paths_folders_list:+ - "{{ yacht_role_paths_location }}"+ - "{{ yacht_role_paths_location }}/config"+ - "{{ yacht_role_paths_location }}/storage" ################################ # Web ################################ -yacht_web_subdomain: "{{ yacht_name }}"-yacht_web_domain: "{{ user.domain }}"-yacht_web_port: "8000"-yacht_web_url: "{{ 'https://' + (yacht_web_subdomain + '.' + yacht_web_domain- if (yacht_web_subdomain | length > 0)- else yacht_web_domain) }}"+yacht_role_web_subdomain: "{{ yacht_name }}"+yacht_role_web_domain: "{{ user.domain }}"+yacht_role_web_port: "8000"+yacht_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='yacht') + '.' + lookup('role_var', '_web_domain', role='yacht')+ if (lookup('role_var', '_web_subdomain', role='yacht') | length > 0)+ else lookup('role_var', '_web_domain', role='yacht')) }}" ################################ # DNS ################################ -yacht_dns_record: "{{ yacht_web_subdomain }}"-yacht_dns_zone: "{{ yacht_web_domain }}"-yacht_dns_proxy: "{{ dns.proxied }}"+yacht_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='yacht') }}"+yacht_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='yacht') }}"+yacht_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -yacht_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-yacht_traefik_middleware_default: "{{ traefik_default_middleware }}"-yacht_traefik_middleware_custom: ""-yacht_traefik_certresolver: "{{ traefik_default_certresolver }}"-yacht_traefik_enabled: true-yacht_traefik_api_enabled: false-yacht_traefik_api_endpoint: ""+yacht_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+yacht_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+yacht_role_traefik_middleware_custom: ""+yacht_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+yacht_role_traefik_enabled: true+yacht_role_traefik_api_enabled: false+yacht_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-yacht_docker_container: "{{ yacht_name }}"+yacht_role_docker_container: "{{ yacht_name }}" # Image-yacht_docker_image_pull: true-yacht_docker_image_tag: "latest"-yacht_docker_image: "selfhostedpro/yacht:{{ yacht_docker_image_tag }}"--# Ports-yacht_docker_ports_defaults: []-yacht_docker_ports_custom: []-yacht_docker_ports: "{{ yacht_docker_ports_defaults- + yacht_docker_ports_custom }}"+yacht_role_docker_image_pull: true+yacht_role_docker_image_tag: "latest"+yacht_role_docker_image_repo: "selfhostedpro/yacht"+yacht_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='yacht') }}:{{ lookup('role_var', '_docker_image_tag', role='yacht') }}" # Envs-yacht_docker_envs_default:+yacht_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}" ADMIN_EMAIL: "{{ user.email }}" SECRET_KEY: "{{ lookup('password', '/dev/null', chars=['ascii_lowercase', 'digits'], length=16) }}" DOCKER_HOST: "tcp://{{ yacht_name }}-docker-socket-proxy:2375"-yacht_docker_envs_custom: {}-yacht_docker_envs: "{{ yacht_docker_envs_default- | combine(yacht_docker_envs_custom) }}"--# Commands-yacht_docker_commands_default: []-yacht_docker_commands_custom: []-yacht_docker_commands: "{{ yacht_docker_commands_default- + yacht_docker_commands_custom }}"+yacht_role_docker_envs_custom: {}+yacht_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='yacht')+ | combine(lookup('role_var', '_docker_envs_custom', role='yacht')) }}" # Volumes-yacht_docker_volumes_default:- - "{{ yacht_paths_location }}/config:/config"- - "{{ yacht_paths_location }}/storage:/storage"-yacht_docker_volumes_custom: []-yacht_docker_volumes: "{{ yacht_docker_volumes_default- + yacht_docker_volumes_custom }}"--# Devices-yacht_docker_devices_default: []-yacht_docker_devices_custom: []-yacht_docker_devices: "{{ yacht_docker_devices_default- + yacht_docker_devices_custom }}"--# Hosts-yacht_docker_hosts_default: {}-yacht_docker_hosts_custom: {}-yacht_docker_hosts: "{{ docker_hosts_common- | combine(yacht_docker_hosts_default)- | combine(yacht_docker_hosts_custom) }}"--# Labels-yacht_docker_labels_default: {}-yacht_docker_labels_custom: {}-yacht_docker_labels: "{{ docker_labels_common- | combine(yacht_docker_labels_default)- | combine(yacht_docker_labels_custom) }}"+yacht_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='yacht') }}/config:/config"+ - "{{ lookup('role_var', '_paths_location', role='yacht') }}/storage:/storage"+yacht_role_docker_volumes_custom: []+yacht_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='yacht')+ + lookup('role_var', '_docker_volumes_custom', role='yacht') }}" # Hostname-yacht_docker_hostname: "{{ yacht_name }}"+yacht_role_docker_hostname: "{{ yacht_name }}" # Networks-yacht_docker_networks_alias: "{{ yacht_name }}"-yacht_docker_networks_default: []-yacht_docker_networks_custom: []-yacht_docker_networks: "{{ docker_networks_common- + yacht_docker_networks_default- + yacht_docker_networks_custom }}"--# Capabilities-yacht_docker_capabilities_default: []-yacht_docker_capabilities_custom: []-yacht_docker_capabilities: "{{ yacht_docker_capabilities_default- + yacht_docker_capabilities_custom }}"--# Security Opts-yacht_docker_security_opts_default: []-yacht_docker_security_opts_custom: []-yacht_docker_security_opts: "{{ yacht_docker_security_opts_default- + yacht_docker_security_opts_custom }}"+yacht_role_docker_networks_alias: "{{ yacht_name }}"+yacht_role_docker_networks_default: []+yacht_role_docker_networks_custom: []+yacht_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='yacht')+ + lookup('role_var', '_docker_networks_custom', role='yacht') }}" # Restart Policy-yacht_docker_restart_policy: unless-stopped+yacht_role_docker_restart_policy: unless-stopped # State-yacht_docker_state: started+yacht_role_docker_state: started # Dependencies-yacht_depends_on: "{{ yacht_name }}-docker-socket-proxy"-yacht_depends_on_delay: "0"-yacht_depends_on_healthchecks: "false"+yacht_role_depends_on: "{{ yacht_name }}-docker-socket-proxy"+yacht_role_depends_on_delay: "0"+yacht_role_depends_on_healthchecks: "false"
modified
roles/yacht/tasks/main.yml
@@ -12,14 +12,14 @@ name: docker_socket_proxy vars: docker_socket_proxy_name: "{{ yacht_name }}-docker-socket-proxy"- docker_socket_proxy_docker_envs: "{{ yacht_docker_socket_proxy_envs }}"+ docker_socket_proxy_role_docker_envs_custom: "{{ yacht_role_docker_socket_proxy_envs }}" - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/your_spotify/defaults/main.yml
@@ -14,144 +14,88 @@ your_spotify_name: your-spotify ################################-# Lookups+# Settings ################################ -your_spotify_settings_set: "{{ (your_spotify is defined) and- (your_spotify is not none) and- (your_spotify | trim | length > 0) and- (your_spotify.public_key is defined) and- (your_spotify.public_key is not none) and- (your_spotify.public_key | trim | length > 0) and- (your_spotify.secret_key is defined) and- (your_spotify.secret_key is not none) and- (your_spotify.secret_key | trim | length > 0) }}"+your_spotify_role_public_key: ""+your_spotify_role_secret_key: "" ################################ # Web ################################ -your_spotify_web_subdomain: "spotify"-your_spotify_web_domain: "{{ user.domain }}"-your_spotify_web_port: "80"-your_spotify_web_url: "{{ 'https://' + (your_spotify_web_subdomain + '.' + your_spotify_web_domain- if (your_spotify_web_subdomain | length > 0)- else your_spotify_web_domain) }}"+your_spotify_role_web_subdomain: "spotify"+your_spotify_role_web_domain: "{{ user.domain }}"+your_spotify_role_web_port: "80"+your_spotify_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='your_spotify') + '.' + lookup('role_var', '_web_domain', role='your_spotify')+ if (lookup('role_var', '_web_subdomain', role='your_spotify') | length > 0)+ else lookup('role_var', '_web_domain', role='your_spotify')) }}" ################################ # DNS ################################ -your_spotify_dns_record: "{{ your_spotify_web_subdomain }}"-your_spotify_dns_zone: "{{ your_spotify_web_domain }}"-your_spotify_dns_proxy: "{{ dns.proxied }}"+your_spotify_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='your_spotify') }}"+your_spotify_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='your_spotify') }}"+your_spotify_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -your_spotify_traefik_sso_middleware: ""-your_spotify_traefik_middleware_default: "{{ traefik_default_middleware }}"-your_spotify_traefik_middleware_custom: ""-your_spotify_traefik_certresolver: "{{ traefik_default_certresolver }}"-your_spotify_traefik_enabled: true-your_spotify_traefik_api_enabled: false-your_spotify_traefik_api_endpoint: ""+your_spotify_role_traefik_sso_middleware: ""+your_spotify_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+your_spotify_role_traefik_middleware_custom: ""+your_spotify_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+your_spotify_role_traefik_enabled: true+your_spotify_role_traefik_api_enabled: false+your_spotify_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-your_spotify_docker_container: "{{ your_spotify_name }}"+your_spotify_role_docker_container: "{{ your_spotify_name }}" # Image-your_spotify_docker_image_pull: true-your_spotify_docker_image_tag: "latest"-your_spotify_docker_image: "lscr.io/linuxserver/your_spotify:{{ your_spotify_docker_image_tag }}"--# Ports-your_spotify_docker_ports_defaults: []-your_spotify_docker_ports_custom: []-your_spotify_docker_ports: "{{ your_spotify_docker_ports_defaults- + your_spotify_docker_ports_custom }}"+your_spotify_role_docker_image_pull: true+your_spotify_role_docker_image_repo: "lscr.io/linuxserver/your_spotify"+your_spotify_role_docker_image_tag: "latest"+your_spotify_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='your_spotify') }}:{{ lookup('role_var', '_docker_image_tag', role='your_spotify') }}" # Envs-your_spotify_docker_envs_default:+your_spotify_role_docker_envs_default: TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}"- APP_URL: "{{ your_spotify_web_url }}"- SPOTIFY_PUBLIC: "{{ your_spotify.public_key }}"- SPOTIFY_SECRET: "{{ your_spotify.secret_key }}"- CORS: "{{ your_spotify_web_url + ':443' }}"+ APP_URL: "{{ lookup('role_var', '_web_url', role='your_spotify') }}"+ SPOTIFY_PUBLIC: "{{ lookup('role_var', '_public_key', role='your_spotify') }}"+ SPOTIFY_SECRET: "{{ lookup('role_var', '_secret_key', role='your_spotify') }}"+ CORS: "{{ lookup('role_var', '_web_url', role='your_spotify') + ':443' }}" MONGO_ENDPOINT: "mongodb://your-spotify-db:27017/your_spotify"-your_spotify_docker_envs_custom: {}-your_spotify_docker_envs: "{{ your_spotify_docker_envs_default- | combine(your_spotify_docker_envs_custom) }}"--# Commands-your_spotify_docker_commands_default: []-your_spotify_docker_commands_custom: []-your_spotify_docker_commands: "{{ your_spotify_docker_commands_default- + your_spotify_docker_commands_custom }}"--# Volumes-your_spotify_docker_volumes_default: []-your_spotify_docker_volumes_custom: []-your_spotify_docker_volumes: "{{ your_spotify_docker_volumes_default- + your_spotify_docker_volumes_custom }}"--# Devices-your_spotify_docker_devices_default: []-your_spotify_docker_devices_custom: []-your_spotify_docker_devices: "{{ your_spotify_docker_devices_default- + your_spotify_docker_devices_custom }}"--# Hosts-your_spotify_docker_hosts_default: {}-your_spotify_docker_hosts_custom: {}-your_spotify_docker_hosts: "{{ docker_hosts_common- | combine(your_spotify_docker_hosts_default)- | combine(your_spotify_docker_hosts_custom) }}"--# Labels-your_spotify_docker_labels_default: {}-your_spotify_docker_labels_custom: {}-your_spotify_docker_labels: "{{ docker_labels_common- | combine(your_spotify_docker_labels_default)- | combine(your_spotify_docker_labels_custom) }}"+your_spotify_role_docker_envs_custom: {}+your_spotify_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='your_spotify')+ | combine(lookup('role_var', '_docker_envs_custom', role='your_spotify')) }}" # Hostname-your_spotify_docker_hostname: "{{ your_spotify_name }}"+your_spotify_role_docker_hostname: "{{ your_spotify_name }}" # Networks-your_spotify_docker_networks_alias: "{{ your_spotify_name }}"-your_spotify_docker_networks_default: []-your_spotify_docker_networks_custom: []-your_spotify_docker_networks: "{{ docker_networks_common- + your_spotify_docker_networks_default- + your_spotify_docker_networks_custom }}"--# Capabilities-your_spotify_docker_capabilities_default: []-your_spotify_docker_capabilities_custom: []-your_spotify_docker_capabilities: "{{ your_spotify_docker_capabilities_default- + your_spotify_docker_capabilities_custom }}"--# Security Opts-your_spotify_docker_security_opts_default: []-your_spotify_docker_security_opts_custom: []-your_spotify_docker_security_opts: "{{ your_spotify_docker_security_opts_default- + your_spotify_docker_security_opts_custom }}"+your_spotify_role_docker_networks_alias: "{{ your_spotify_name }}"+your_spotify_role_docker_networks_default: []+your_spotify_role_docker_networks_custom: []+your_spotify_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='your_spotify')+ + lookup('role_var', '_docker_networks_custom', role='your_spotify') }}" # Restart Policy-your_spotify_docker_restart_policy: unless-stopped+your_spotify_role_docker_restart_policy: unless-stopped # State-your_spotify_docker_state: started+your_spotify_role_docker_state: started # Dependencies-your_spotify_depends_on: "your-spotify-db"-your_spotify_depends_on_delay: "0"-your_spotify_depends_on_healthchecks: "false"+your_spotify_role_depends_on: "your-spotify-db"+your_spotify_role_depends_on_delay: "0"+your_spotify_role_depends_on_healthchecks: "false"
modified
roles/your_spotify/tasks/main.yml
@@ -9,15 +9,15 @@ --- - name: Fail if settings.yml values are empty ansible.builtin.fail:- msg: "You must configure 'settings.yml' with public and secret keys."- when: (not continuous_integration) and (not your_spotify_settings_set)+ msg: "You must configure your_spotify_role_public_key and your_spotify_role_secret_key using the inventory"+ when: (not continuous_integration) and (lookup('role_var', '_public_key', role='your_spotify') | length == 0) and (lookup('role_var', '_secret_key', role='your_spotify') | length == 0) - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove old Database Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"@@ -29,7 +29,7 @@ name: mongodb vars: mongodb_instances: ["your-spotify-db"]- mongodb_paths_location: "{{ server_appdata_path }}/{{ your_spotify_name }}"+ mongodb_role_paths_location: "{{ server_appdata_path }}/{{ your_spotify_name }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
roles/ytdl_sub/defaults/main.yml
@@ -17,152 +17,105 @@ # Settings ################################ -ytdl_sub_cron_schedule: "0 */6 * * *"-ytdl_sub_cron_on_start: "true"-ytdl_sub_image_type: "headless"+ytdl_sub_role_cron_schedule: "0 */6 * * *"+ytdl_sub_role_cron_on_start: "true"+ytdl_sub_role_image_type: "headless" ################################ # Paths ################################ -ytdl_sub_paths_folder: "{{ ytdl_sub_name }}"-ytdl_sub_paths_location: "{{ server_appdata_path }}/{{ ytdl_sub_paths_folder }}"-ytdl_sub_download_folder: "/mnt/unionfs/Media/Youtube/{{ ytdl_sub_name }}"-ytdl_sub_paths_folders_list:- - "{{ ytdl_sub_paths_location }}"- - "{{ ytdl_sub_download_folder }}"- - "{{ ytdl_sub_download_folder }}/tv_shows"- - "{{ ytdl_sub_download_folder }}/movies"- - "{{ ytdl_sub_download_folder }}/music_videos"- - "{{ ytdl_sub_download_folder }}/music"+ytdl_sub_role_paths_folder: "{{ ytdl_sub_name }}"+ytdl_sub_role_paths_location: "{{ server_appdata_path }}/{{ ytdl_sub_role_paths_folder }}"+ytdl_sub_role_paths_download_folder: "/mnt/unionfs/Media/Youtube/{{ ytdl_sub_name }}"+ytdl_sub_role_paths_folders_list:+ - "{{ ytdl_sub_role_paths_location }}"+ - "{{ ytdl_sub_role_paths_download_folder }}"+ - "{{ ytdl_sub_role_paths_download_folder }}/tv_shows"+ - "{{ ytdl_sub_role_paths_download_folder }}/movies"+ - "{{ ytdl_sub_role_paths_download_folder }}/music_videos"+ - "{{ ytdl_sub_role_paths_download_folder }}/music" ################################ # Web ################################ -ytdl_sub_web_subdomain: "{{ ytdl_sub_name }}"-ytdl_sub_web_domain: "{{ user.domain }}"-ytdl_sub_web_port: "8080"-ytdl_sub_web_url: "{{ 'https://' + (ytdl_sub_web_subdomain + '.' + ytdl_sub_web_domain- if (ytdl_sub_web_subdomain | length > 0)- else ytdl_sub_web_domain) }}"+ytdl_sub_role_web_subdomain: "{{ ytdl_sub_name }}"+ytdl_sub_role_web_domain: "{{ user.domain }}"+ytdl_sub_role_web_port: "8080"+ytdl_sub_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='ytdl_sub') + '.' + lookup('role_var', '_web_domain', role='ytdl_sub')+ if (lookup('role_var', '_web_subdomain', role='ytdl_sub') | length > 0)+ else lookup('role_var', '_web_domain', role='ytdl_sub')) }}" ################################ # DNS ################################ -ytdl_sub_dns_record: "{{ ytdl_sub_web_subdomain }}"-ytdl_sub_dns_zone: "{{ ytdl_sub_web_domain }}"-ytdl_sub_dns_proxy: "{{ dns.proxied }}"+ytdl_sub_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='ytdl_sub') }}"+ytdl_sub_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='ytdl_sub') }}"+ytdl_sub_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -ytdl_sub_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"-ytdl_sub_traefik_middleware_default: "{{ traefik_default_middleware }}"-ytdl_sub_traefik_middleware_custom: ""-ytdl_sub_traefik_certresolver: "{{ traefik_default_certresolver }}"-ytdl_sub_traefik_enabled: true-ytdl_sub_traefik_api_enabled: false-ytdl_sub_traefik_api_endpoint: ""+ytdl_sub_role_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}"+ytdl_sub_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+ytdl_sub_role_traefik_middleware_custom: ""+ytdl_sub_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+ytdl_sub_role_traefik_enabled: true+ytdl_sub_role_traefik_api_enabled: false+ytdl_sub_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-ytdl_sub_docker_container: "{{ ytdl_sub_name }}"+ytdl_sub_role_docker_container: "{{ ytdl_sub_name }}" # Image-ytdl_sub_docker_image_pull: true-ytdl_sub_docker_image_repo: "{{ 'ghcr.io/jmbannon/ytdl-sub-gui' if ytdl_sub_image_type == 'gui' else 'ghcr.io/jmbannon/ytdl-sub' }}"-ytdl_sub_docker_image_tag: "{{ 'latest' if ytdl_sub_image_type == 'gui' else 'ubuntu-latest' }}"-ytdl_sub_docker_image: "{{ ytdl_sub_docker_image_repo }}:{{ ytdl_sub_docker_image_tag }}"--# Ports-ytdl_sub_docker_ports_defaults: []-ytdl_sub_docker_ports_custom: []-ytdl_sub_docker_ports: "{{ ytdl_sub_docker_ports_defaults- + ytdl_sub_docker_ports_custom }}"+ytdl_sub_role_docker_image_pull: true+ytdl_sub_role_docker_image_repo: "{{ 'ghcr.io/jmbannon/ytdl-sub-gui' if lookup('role_var', '_image_type', role='ytdl_sub') == 'gui' else 'ghcr.io/jmbannon/ytdl-sub' }}"+ytdl_sub_role_docker_image_tag: "{{ 'latest' if lookup('role_var', '_image_type', role='ytdl_sub') == 'gui' else 'ubuntu-latest' }}"+ytdl_sub_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='ytdl_sub') }}:{{ lookup('role_var', '_docker_image_tag', role='ytdl_sub') }}" # Envs-ytdl_sub_docker_envs_default:+ytdl_sub_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"- CRON_SCHEDULE: "{{ ytdl_sub_cron_schedule }}"- CRON_RUN_ON_START: "{{ ytdl_sub_cron_on_start }}"--ytdl_sub_docker_envs_custom: []-ytdl_sub_docker_envs: "{{ ytdl_sub_docker_envs_default- | combine(ytdl_sub_docker_envs_custom) }}"--# Commands-ytdl_sub_docker_commands_default: []-ytdl_sub_docker_commands_custom: []-ytdl_sub_docker_commands: "{{ ytdl_sub_docker_commands_default- + ytdl_sub_docker_commands_custom }}"+ CRON_SCHEDULE: "{{ lookup('role_var', '_cron_schedule', role='ytdl_sub') }}"+ CRON_RUN_ON_START: "{{ lookup('role_var', '_cron_on_start', role='ytdl_sub') }}"+ytdl_sub_role_docker_envs_custom: {}+ytdl_sub_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='ytdl_sub')+ | combine(lookup('role_var', '_docker_envs_custom', role='ytdl_sub')) }}" # Volumes-ytdl_sub_docker_volumes_default:- - "{{ ytdl_sub_paths_location }}:/config"- - "{{ ytdl_sub_download_folder }}:/ytdl_sub"- - "{{ ytdl_sub_download_folder }}/tv_shows:/tv_shows"- - "{{ ytdl_sub_download_folder }}/movies:/movies"- - "{{ ytdl_sub_download_folder }}/music_videos:/music_videos"- - "{{ ytdl_sub_download_folder }}/music:/music"-ytdl_sub_docker_volumes_custom: []--ytdl_sub_docker_volumes: "{{ ytdl_sub_docker_volumes_default- + ytdl_sub_docker_volumes_custom- + docker_volumes_downloads_common }}"--# Devices-ytdl_sub_docker_devices_default: []-ytdl_sub_docker_devices_custom: []-ytdl_sub_docker_devices: "{{ ytdl_sub_docker_devices_default- + ytdl_sub_docker_devices_custom }}"--# Hosts-ytdl_sub_docker_hosts_default: []-ytdl_sub_docker_hosts_custom: []-ytdl_sub_docker_hosts: "{{ docker_hosts_common- | combine(ytdl_sub_docker_hosts_default)- | combine(ytdl_sub_docker_hosts_custom) }}"--# Labels-ytdl_sub_docker_labels_default: {}-ytdl_sub_docker_labels_custom: {}-ytdl_sub_docker_labels: "{{ docker_labels_common- | combine(ytdl_sub_docker_labels_default)- | combine(ytdl_sub_docker_labels_custom) }}"+ytdl_sub_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='ytdl_sub') }}:/config"+ - "{{ lookup('role_var', '_paths_download_folder', role='ytdl_sub') }}:/ytdl_sub"+ - "{{ lookup('role_var', '_paths_download_folder', role='ytdl_sub') }}/tv_shows:/tv_shows"+ - "{{ lookup('role_var', '_paths_download_folder', role='ytdl_sub') }}/movies:/movies"+ - "{{ lookup('role_var', '_paths_download_folder', role='ytdl_sub') }}/music_videos:/music_videos"+ - "{{ lookup('role_var', '_paths_download_folder', role='ytdl_sub') }}/music:/music"+ytdl_sub_role_docker_volumes_custom: []+ytdl_sub_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='ytdl_sub')+ + lookup('role_var', '_docker_volumes_custom', role='ytdl_sub') }}" # Hostname-ytdl_sub_docker_hostname: "{{ ytdl_sub_name }}"+ytdl_sub_role_docker_hostname: "{{ ytdl_sub_name }}" # Networks-ytdl_sub_docker_networks_alias: "{{ ytdl_sub_name }}"-ytdl_sub_docker_networks_default: []-ytdl_sub_docker_networks_custom: []-ytdl_sub_docker_networks: "{{ docker_networks_common- + ytdl_sub_docker_networks_default- + ytdl_sub_docker_networks_custom }}"--# Capabilities-ytdl_sub_docker_capabilities_default: []-ytdl_sub_docker_capabilities_custom: []-ytdl_sub_docker_capabilities: "{{ ytdl_sub_docker_capabilities_default- + ytdl_sub_docker_capabilities_custom }}"--# Security Opts-ytdl_sub_docker_security_opts_default: []-ytdl_sub_docker_security_opts_custom: []-ytdl_sub_docker_security_opts: "{{ ytdl_sub_docker_security_opts_default- + ytdl_sub_docker_security_opts_custom }}"+ytdl_sub_role_docker_networks_alias: "{{ ytdl_sub_name }}"+ytdl_sub_role_docker_networks_default: []+ytdl_sub_role_docker_networks_custom: []+ytdl_sub_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='ytdl_sub')+ + lookup('role_var', '_docker_networks_custom', role='ytdl_sub') }}" # Restart Policy-ytdl_sub_docker_restart_policy: unless-stopped+ytdl_sub_role_docker_restart_policy: unless-stopped # State-ytdl_sub_docker_state: started+ytdl_sub_role_docker_state: started
modified
roles/ytdl_sub/tasks/main.yml
@@ -10,17 +10,17 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ ytdl_sub_dns_record }}"- dns_zone: "{{ ytdl_sub_dns_zone }}"- dns_proxy: "{{ ytdl_sub_dns_proxy }}"- when: ytdl_sub_image_type == 'gui'+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}"+ when: lookup('role_var', '_image_type', role='ytdl_sub') == 'gui' - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" - name: Docker Devices Task ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/set_docker_devices_variable.yml"- when: gpu.intel or use_nvidia+ when: use_intel or use_nvidia - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml"
modified
roles/znc/defaults/main.yml
@@ -17,129 +17,92 @@ # Paths ################################ -znc_paths_folder: "{{ znc_name }}"-znc_paths_location: "{{ server_appdata_path }}/{{ znc_paths_folder }}"-znc_paths_folders_list:- - "{{ znc_paths_location }}"+znc_role_paths_folder: "{{ znc_name }}"+znc_role_paths_location: "{{ server_appdata_path }}/{{ znc_role_paths_folder }}"+znc_role_paths_folders_list:+ - "{{ znc_role_paths_location }}" ################################ # Web ################################ -znc_web_subdomain: "{{ znc_name }}"-znc_web_domain: "{{ user.domain }}"-znc_web_port: "6501"-znc_web_url: "{{ 'https://' + (znc_web_subdomain + '.' + znc_web_domain- if (znc_web_subdomain | length > 0)- else znc_web_domain) }}"+znc_role_web_subdomain: "{{ znc_name }}"+znc_role_web_domain: "{{ user.domain }}"+znc_role_web_port: "6501"+znc_role_web_url: "{{ 'https://' + (lookup('role_var', '_web_subdomain', role='znc') + '.' + lookup('role_var', '_web_domain', role='znc')+ if (lookup('role_var', '_web_subdomain', role='znc') | length > 0)+ else lookup('role_var', '_web_domain', role='znc')) }}" ################################ # DNS ################################ -znc_dns_record: "{{ znc_web_subdomain }}"-znc_dns_zone: "{{ znc_web_domain }}"-znc_dns_proxy: "{{ dns.proxied }}"+znc_role_dns_record: "{{ lookup('role_var', '_web_subdomain', role='znc') }}"+znc_role_dns_zone: "{{ lookup('role_var', '_web_domain', role='znc') }}"+znc_role_dns_proxy: "{{ dns_proxied }}" ################################ # Traefik ################################ -znc_traefik_sso_middleware: ""-znc_traefik_middleware_default: "{{ traefik_default_middleware }}"-znc_traefik_middleware_custom: ""-znc_traefik_certresolver: "{{ traefik_default_certresolver }}"-znc_traefik_enabled: true-znc_traefik_api_enabled: false-znc_traefik_api_endpoint: ""+znc_role_traefik_sso_middleware: ""+znc_role_traefik_middleware_default: "{{ traefik_default_middleware }}"+znc_role_traefik_middleware_custom: ""+znc_role_traefik_certresolver: "{{ traefik_default_certresolver }}"+znc_role_traefik_enabled: true+znc_role_traefik_api_enabled: false+znc_role_traefik_api_endpoint: "" ################################ # Docker ################################ # Container-znc_docker_container: "{{ znc_name }}"+znc_role_docker_container: "{{ znc_name }}" # Image-znc_docker_image_pull: true-znc_docker_image_tag: "latest"-znc_docker_image: "lscr.io/linuxserver/znc:{{ znc_docker_image_tag }}"+znc_role_docker_image_pull: true+znc_role_docker_image_repo: "lscr.io/linuxserver/znc"+znc_role_docker_image_tag: "latest"+znc_role_docker_image: "{{ lookup('role_var', '_docker_image_repo', role='znc') }}:{{ lookup('role_var', '_docker_image_tag', role='znc') }}" # Ports-znc_docker_ports_defaults:- - "{{ znc_web_port }}:{{ znc_web_port }}"+znc_role_docker_ports_default:+ - "{{ lookup('role_var', '_web_port', role='znc') }}:{{ lookup('role_var', '_web_port', role='znc') }}" - "6502:6502"-znc_docker_ports_custom: []-znc_docker_ports: "{{ znc_docker_ports_defaults- + znc_docker_ports_custom }}"+znc_role_docker_ports_custom: []+znc_role_docker_ports: "{{ lookup('role_var', '_docker_ports_default', role='znc')+ + lookup('role_var', '_docker_ports_custom', role='znc') }}" # Envs-znc_docker_envs_default:+znc_role_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}"-znc_docker_envs_custom: {}-znc_docker_envs: "{{ znc_docker_envs_default- | combine(znc_docker_envs_custom) }}"--# Commands-znc_docker_commands_default: []-znc_docker_commands_custom: []-znc_docker_commands: "{{ znc_docker_commands_default- + znc_docker_commands_custom }}"+znc_role_docker_envs_custom: {}+znc_role_docker_envs: "{{ lookup('role_var', '_docker_envs_default', role='znc')+ | combine(lookup('role_var', '_docker_envs_custom', role='znc')) }}" # Volumes-znc_docker_volumes_default:- - "{{ znc_paths_location }}:/config"-znc_docker_volumes_custom: []-znc_docker_volumes: "{{ znc_docker_volumes_default- + znc_docker_volumes_custom }}"--# Devices-znc_docker_devices_default: []-znc_docker_devices_custom: []-znc_docker_devices: "{{ znc_docker_devices_default- + znc_docker_devices_custom }}"--# Hosts-znc_docker_hosts_default: {}-znc_docker_hosts_custom: {}-znc_docker_hosts: "{{ docker_hosts_common- | combine(znc_docker_hosts_default)- | combine(znc_docker_hosts_custom) }}"--# Labels-znc_docker_labels_default: {}-znc_docker_labels_custom: {}-znc_docker_labels: "{{ docker_labels_common- | combine(znc_docker_labels_default)- | combine(znc_docker_labels_custom) }}"+znc_role_docker_volumes_default:+ - "{{ lookup('role_var', '_paths_location', role='znc') }}:/config"+znc_role_docker_volumes_custom: []+znc_role_docker_volumes: "{{ lookup('role_var', '_docker_volumes_default', role='znc')+ + lookup('role_var', '_docker_volumes_custom', role='znc') }}" # Hostname-znc_docker_hostname: "{{ znc_name }}"+znc_role_docker_hostname: "{{ znc_name }}" # Networks-znc_docker_networks_alias: "{{ znc_name }}"-znc_docker_networks_default: []-znc_docker_networks_custom: []-znc_docker_networks: "{{ docker_networks_common- + znc_docker_networks_default- + znc_docker_networks_custom }}"--# Capabilities-znc_docker_capabilities_default: []-znc_docker_capabilities_custom: []-znc_docker_capabilities: "{{ znc_docker_capabilities_default- + znc_docker_capabilities_custom }}"--# Security Opts-znc_docker_security_opts_default: []-znc_docker_security_opts_custom: []-znc_docker_security_opts: "{{ znc_docker_security_opts_default- + znc_docker_security_opts_custom }}"+znc_role_docker_networks_alias: "{{ znc_name }}"+znc_role_docker_networks_default: []+znc_role_docker_networks_custom: []+znc_role_docker_networks: "{{ docker_networks_common+ + lookup('role_var', '_docker_networks_default', role='znc')+ + lookup('role_var', '_docker_networks_custom', role='znc') }}" # Restart Policy-znc_docker_restart_policy: unless-stopped+znc_role_docker_restart_policy: unless-stopped # State-znc_docker_state: started+znc_role_docker_state: started
modified
roles/znc/tasks/main.yml
@@ -10,9 +10,9 @@ - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars:- dns_record: "{{ lookup('vars', role_name + '_dns_record') }}"- dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}"- dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}"+ dns_record: "{{ lookup('role_var', '_dns_record') }}"+ dns_zone: "{{ lookup('role_var', '_dns_zone') }}"+ dns_proxy: "{{ lookup('role_var', '_dns_proxy') }}" - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml"
modified
sandbox.yml
@@ -12,7 +12,6 @@ roles: # Reqs - { role: user_check, tags: ['always'] }- - { role: settings, tags: ['settings'] } - { role: pre_tasks, tags: ['always', 'pre-tasks'] } - { role: sanity_check, tags: ['always', 'sanity-check'] } # Apps Start@@ -22,10 +21,8 @@ - { role: adminer, tags: ['adminer'] } - { role: airdcpp, tags: ['airdcpp'] } - { role: airsonic, tags: ['airsonic'] }- - { role: alternatrr, tags: ['alternatrr'] } - { role: apprise, tags: ['apprise'] } - { role: archivebox, tags: ['archivebox'] }- - { role: aria2_ng, tags: ['aria2-ng'] } - { role: audiobookshelf, tags: ['audiobookshelf'] } - { role: barcodebuddy, tags: ['barcodebuddy'] } - { role: beets, tags: ['beets'] }@@ -39,7 +36,6 @@ - { role: cockpit, tags: ['cockpit'] } - { role: codex, tags: ['codex'] } - { role: code_server, tags: ['code-server'] }- - { role: comicstreamer, tags: ['comicstreamer'] } - { role: comixed, tags: ['comixed'] } - { role: crafty, tags: ['crafty'] } - { role: dashdot, tags: ['dashdot'] }@@ -48,7 +44,6 @@ - { role: delugevpn, tags: ['delugevpn'] } - { role: discoflix, tags: ['discoflix'] } - { role: dockwatch, tags: ['dockwatch'] }- - { role: docspell, tags: ['docspell'] } - { role: doplarr, tags: ['doplarr'] } - { role: duplicati, tags: ['duplicati'] } - { role: elasticsearch, tags: ['elasticsearch'] }@@ -149,7 +144,6 @@ - { role: qbit_manage, tags: ['qbit-manage'] } - { role: qbittorrentvpn, tags: ['qbittorrentvpn'] } - { role: qui, tags: ['qui'] }- - { role: rdtclient, tags: ['rdtclient'] } - { role: recyclarr, tags: ['recyclarr'] } - { role: reposilite, tags: ['reposilite'] } - { role: requestrr, tags: ['requestrr'] }@@ -158,7 +152,6 @@ - { role: rocketchat, tags: ['rocketchat'] } - { role: sabthrottle, tags: ['sabthrottle'] } - { role: semaphoreui, tags: ['semaphoreui'] }- - { role: solr, tags: ['solr'] } - { role: speedtest, tags: ['speedtest'] } - { role: sqlitebrowser, tags: ['sqlitebrowser'] } - { role: sshwifty, tags: ['sshwifty'] }@@ -169,7 +162,6 @@ - { role: tauticord, tags: ['tauticord'] } - { role: tdarr, tags: ['tdarr'] } - { role: tdarr_node, tags: ['tdarr-node'] }- - { role: teamspeak, tags: ['teamspeak'] } - { role: telegraf, tags: ['telegraf'] } - { role: teslamate, tags: ['teslamate'] } - { role: thelounge, tags: ['thelounge'] }@@ -191,7 +183,6 @@ - { role: vaultwarden, tags: ['vaultwarden'] } - { role: vnstat, tags: ['vnstat'] } - { role: watchstate, tags: ['watchstate'] }- - { role: watchtower, tags: ['watchtower'] } - { role: wikijs, tags: ['wikijs'] } - { role: wireguard, tags: ['wireguard'] } - { role: wizarr, tags: ['wizarr'] }