From 4750102acfe8d8a3303b92af69afe40614d342c6 Mon Sep 17 00:00:00 2001 From: maindust Date: Fri, 1 Nov 2024 09:24:27 -0500 Subject: [PATCH 1/5] Create maintainer default main.yml initial build of maintainerr --- roles/maintainerr/defaults/main.yml | 178 ++++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 roles/maintainerr/defaults/main.yml diff --git a/roles/maintainerr/defaults/main.yml b/roles/maintainerr/defaults/main.yml new file mode 100644 index 0000000000..e0a256daee --- /dev/null +++ b/roles/maintainerr/defaults/main.yml @@ -0,0 +1,178 @@ +########################################################################## +# Title: Saltbox: maintainerr | Default Variables # +# Author(s): maindust # +# URL: https://github.com/saltyorg/Saltbox # +# -- # +########################################################################## +# GNU General Public License v3.0 # +########################################################################## +--- +################################ +# Basics +################################ + +maintainerr_instances: ["maintainerr"] + +################################ +# Settings +################################ + +maintainerr_log_level: "info" + +################################ +# Paths +################################ + +maintainerr_paths_folder: "{{ maintainerr_name }}" +maintainerr_paths_location: "{{ server_appdata_path }}/{{ maintainerr_paths_folder }}" +maintainerr_paths_cache: "{{ maintainerr_paths_location }}/cache" +maintainerr_paths_folders_list: + - "{{ maintainerr_paths_location }}" + - "{{ maintainerr_paths_cache }}" +maintainerr_paths_config_location: "{{ maintainerr_paths_location }}/settings.json" + +################################ +# 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)) }}" + +################################ +# 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 }}" + +################################ +# Traefik +################################ + +maintainerr_traefik_sso_middleware: "{{ traefik_default_sso_middleware }}" +maintainerr_traefik_middleware_default: "{{ traefik_default_middleware + + (',themepark-' + lookup('vars', maintainerr_name + '_name', default=maintainerr_name) + if (maintainerr_themepark_enabled and global_themepark_plugin_enabled) + else '') }}" +maintainerr_traefik_middleware_custom: "" +maintainerr_traefik_certresolver: "{{ traefik_default_certresolver }}" +maintainerr_traefik_enabled: true +maintainerr_traefik_api_enabled: false +maintainerr_traefik_api_endpoint: "" + +################################ +# THEME +################################ + +# Options can be found at https://github.com/themepark-dev/theme.park +maintainerr_themepark_enabled: false +maintainerr_themepark_app: "maintainerr" +maintainerr_themepark_theme: "{{ global_themepark_theme }}" +maintainerr_themepark_domain: "{{ global_themepark_domain }}" +maintainerr_themepark_addons: [] + +################################ +# Docker +################################ + +# Container +maintainerr_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) }}" + +# Envs +maintainerr_docker_envs_default: + UMASK: "002" + TZ: "{{ tz }}" + LOG_LEVEL: "{{ maintainerr_log_level }}" +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) }}" + +# Volumes +maintainerr_docker_volumes_default: + - "{{ maintainerr_paths_location }}:/app/config" +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((traefik_themepark_labels + if (maintainerr_themepark_enabled and global_themepark_plugin_enabled) + else {}), + lookup('vars', maintainerr_name + '_docker_labels_custom', default=maintainerr_docker_labels_custom)) }}" + +# 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) }}" + +# 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) }}" + +# Restart Policy +maintainerr_docker_restart_policy: unless-stopped + +# State +maintainerr_docker_state: started + +# User +maintainerr_docker_user: "{{ uid }}:{{ gid }}" From 525e325f6704b1f2d40f8f754f7d4bbc38589bda Mon Sep 17 00:00:00 2001 From: maindust Date: Fri, 1 Nov 2024 09:25:12 -0500 Subject: [PATCH 2/5] Create Maintainerr tasks main.yml --- roles/maintainerr/tasks/main.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 roles/maintainerr/tasks/main.yml diff --git a/roles/maintainerr/tasks/main.yml b/roles/maintainerr/tasks/main.yml new file mode 100644 index 0000000000..5ce8dbec57 --- /dev/null +++ b/roles/maintainerr/tasks/main.yml @@ -0,0 +1,16 @@ +######################################################################### +# Title: Saltbox: maintainerr Role # +# Author(s): maindust # +# URL: https://github.com/saltyorg/Saltbox # +# -- # +######################################################################### +# GNU General Public License v3.0 # +######################################################################### +--- +- name: "Execute maintainerr roles" + ansible.builtin.include_tasks: main2.yml + vars: + maintainerr_name: "{{ role }}" + with_items: "{{ maintainerr_instances }}" + loop_control: + loop_var: role From 716c0ec4b91fc3f2068c82535cf291be5a3b9f0e Mon Sep 17 00:00:00 2001 From: maindust Date: Fri, 1 Nov 2024 09:26:02 -0500 Subject: [PATCH 3/5] Create Maintainerr tasks main2.yml Very similar to the overseerr app --- roles/maintainerr/tasks/main2.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 roles/maintainerr/tasks/main2.yml diff --git a/roles/maintainerr/tasks/main2.yml b/roles/maintainerr/tasks/main2.yml new file mode 100644 index 0000000000..ffa186e0bf --- /dev/null +++ b/roles/maintainerr/tasks/main2.yml @@ -0,0 +1,24 @@ +######################################################################### +# Title: Saltbox: maintainerr # +# Author(s): maindust # +# URL: https://github.com/saltyorg/Saltbox # +# -- # +######################################################################### +# 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" From 56fe301ed736d0231eaa862d87014297d010b57e Mon Sep 17 00:00:00 2001 From: maindust Date: Fri, 1 Nov 2024 10:11:35 -0500 Subject: [PATCH 4/5] Update sandbox.yml added reference to maintainerr --- sandbox.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/sandbox.yml b/sandbox.yml index 003f4c3b5a..d2e51d7750 100644 --- a/sandbox.yml +++ b/sandbox.yml @@ -116,6 +116,7 @@ - { role: n8n, tags: ['n8n'] } - { role: navidrome, tags: ['navidrome'] } - { role: nextcloud, tags: ['nextcloud'] } + - { role: maintainerr, tags: ['maintainerr'] } - { role: membarr, tags: ['membarr'] } - { role: mkvtoolnix, tags: ['mkvtoolnix'] } - { role: nabarr, tags: ['nabarr'] } From bdb234677cedbcac7521cdaceae2f23f80d0f510 Mon Sep 17 00:00:00 2001 From: maindust Date: Wed, 6 Nov 2024 17:34:33 -0600 Subject: [PATCH 5/5] Update main.yml fixed linting on maintainerr_web_url --- roles/maintainerr/defaults/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/maintainerr/defaults/main.yml b/roles/maintainerr/defaults/main.yml index e0a256daee..c249e4e7b6 100644 --- a/roles/maintainerr/defaults/main.yml +++ b/roles/maintainerr/defaults/main.yml @@ -39,8 +39,8 @@ 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)) }}" + if (lookup('vars', maintainerr_name + '_web_subdomain', default=maintainerr_web_subdomain) | length > 0) + else lookup('vars', maintainerr_name + '_web_domain', default=maintainerr_web_domain)) }}" ################################ # DNS