Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maintainerr #394

Merged
merged 6 commits into from
Nov 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
178 changes: 178 additions & 0 deletions roles/maintainerr/defaults/main.yml
Original file line number Diff line number Diff line change
@@ -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"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shouldn't the path be /opt/data?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks that way to me from the installation docs.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 }}"
16 changes: 16 additions & 0 deletions roles/maintainerr/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -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
24 changes: 24 additions & 0 deletions roles/maintainerr/tasks/main2.yml
Original file line number Diff line number Diff line change
@@ -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"
1 change: 1 addition & 0 deletions sandbox.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'] }
Expand Down