install.fairie/home/dot_local/share/ansible/environments/prod/group_vars/all/apps.yml
2023-07-16 01:40:26 -04:00

277 lines
10 KiB
YAML

---
# @var internal_domain: lab.megabyte.space # Default domain to add internal apps to
internal_domain: lab.megabyte.space
# @var public_domain: megabyte.space # Domain to add public apps to
public_domain: megabyte.space
# @var healthcheck_endpoint: 'health.{{ public_domain }}' # FQDN of the [Healthchecks](https://github.com/healthchecks/healthchecks) endpoint
healthcheck_endpoint: 'health.{{ public_domain }}'
# @var theme_park_theme: aquamarine # Default CSS theme to use for select web-apps (see https://github.com/gilbN/theme.park)
theme_park_theme: aquamarine
# @var apps: [] # Contains lists of web-apps assigned to specific hosts. **Any app installed on your network should be categorized
# under its host.** You can see all the supported web-apps in the following places:
#
# 1. In the `roles/virtualization/swarm/templates` folder you will see Docker Swarm configurations. If your desired app is in a configuration
# named `portainer.docker-stack.yml` then you can install it to a host named `nuc` by placing `portainer` under the `nuc` key of `apps`.
# 2. In the `group_vars/all/helm.yml` file, you will find the `helm_charts` variable. Each key in the `helm_charts` variable is a key
# that you can add to a specific host in the `apps` variable.
apps:
nuc:
- cockpit
- maas
- portainer
raspiboot:
- netboot
- netbootassets
statuscheck:
- healthchecks
- statping
workstation:
- cups
# If you want HTPC apps, make sure to enable all of these at the same time. They are added with a single Docker configuration
# and configured to tunnel all traffic out via WireGuard.
# - bazarr
# - cups
# - heimdall
# - jackett
# - kodi
# - lidarr
# - nzbget
# - ombi
# - organizr
# - plex
# - radarr
# - sonarr
# - tautulli
# - transmission
# @var domains: {} # A map of configurations used when provisioning web-apps that are defined in the `apps` variable above. The
# variables are used to configure NGINX, configure CloudFlare DNS records, and populate the /etc/hosts files of peers on the network.
# Examples along with descriptions of the options is provided below. **Any new hosts (that you would find in the `host_vars` folder)
# need to be added to this configuration with a minimum of `hosts`, `ip_address` and `regexp` defined.
domains:
bazarr:
hosts: 'bazarr bazarr.{{ internal_domain }}'
ip_address: '{{ htpc_ip_address }}'
port: 26671
regexp: '# Bazarr'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/bazarr/{{ theme_park_theme }}.css'
cockpit:
hosts: 'cockpit cockpit.{{ internal_domain }}'
ip_address: '{{ controller_ip_address }}'
port: 9090
proxy_file: proxy-ws.conf
regexp: '# Cockpit'
transport: https
cups:
hosts: 'cups printers printers.{{ internal_domain }}'
ip_address: '{{ workstation_ip_address }}'
port: 631
proxy_file: proxy-cups.conf
regexp: '# CUPS'
transport: https
grafana:
hosts: 'grafana grafana.{{ internal_domain }}'
ip_address: '{{ cluster_ip_address }}'
regexp: '# Grafana'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/grafana/{{ theme_park_theme }}.css'
healthchecks:
dns_record: health
dns_zone: '{{ internal_domain }}'
hosts: 'healthchecks health health.{{ public_domain }}'
ip_address: '{{ status_ip_address }}'
port: 26798
regexp: '# Healthchecks'
heimdall:
hosts: 'heimdall home home.{{ internal_domain }}'
ip_address: '{{ htpc_ip_address }}'
port: 29915
regexp: '# Heimdall'
jackett:
hosts: 'jackett jackett.{{ internal_domain }}'
ip_address: '{{ htpc_ip_address }}'
port: 26673
regexp: '# Jackett'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/jackett/{{ theme_park_theme }}.css'
kodi:
hosts: 'kodi kodi.{{ internal_domain }}'
ip_address: '{{ htpc_ip_address }}'
port: 26674
regexp: '# Kodi'
lidarr:
hosts: 'lidarr lidarr.{{ internal_domain }}'
ip_address: '{{ htpc_ip_address }}'
port: 26676
regexp: '# Lidarr'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/lidarr/{{ theme_park_theme }}.css'
localhost:
hosts: localhost
ip_address: 127.0.0.1
regexp: '# Localhost'
maas:
firewall: true
hosts: 'maas maas.{{ internal_domain }}'
ip_address: '{{ controller_ip_address }}'
port: 5240
regexp: '# MAAS'
malaptop:
hostname: MALaptop
hosts: 'malaptop laptop.{{ internal_domain }}'
ip_address: '{{ malaptop_ip_address }}'
regexp: '# Laptop'
netboot:
hosts: 'netboot netboot.{{ internal_domain }}'
ip_address: '{{ netboot_ip_address }}'
port: 3000
regexp: '# NetbootXYZ'
netbootassets:
hosts: 'netbootassets netbootassets.{{ internal_domain }}'
ip_address: '{{ netboot_ip_address }}'
port: 80
regexp: '# Assets4XYZ'
nuc:
hostname: NUC
hosts: 'nuc nuc.{{ internal_domain }}'
ip_address: '{{ controller_ip_address }}'
regexp: '# NUC'
nzbget:
hosts: 'nzbget nzbget.{{ internal_domain }}'
ip_address: '{{ htpc_ip_address }}'
port: 26678
regexp: '# NZBGet'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/nzbget/{{ theme_park_theme }}.css'
ombi:
hosts: 'ombi ombi.{{ internal_domain }}'
ip_address: '{{ htpc_ip_address }}'
port: 26679
regexp: '# Ombi'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/ombi/{{ theme_park_theme }}.css'
organizr:
hosts: 'organizr organizr.{{ internal_domain }}'
ip_address: '{{ htpc_ip_address }}'
port: 26680
regexp: '# Organizr'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/organizr/{{ theme_park_theme }}.css'
pfsense:
hosts: 'pfsense pfsense.{{ internal_domain }}'
hostname: pfSense
ip_address: '{{ firewall_ip_address }}'
regexp: '# pfSense'
plex:
hosts: 'plex plex.{{ internal_domain }}'
ip_address: '{{ htpc_ip_address }}'
port: 32400
regexp: '# Plex'
transport: https
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/plex/{{ theme_park_theme }}.css'
portainer:
hosts: 'portainer portainer.{{ internal_domain }}'
ip_address: '{{ controller_ip_address }}'
port: 26685
regexp: '# Portainer'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/portainer/{{ theme_park_theme }}.css'
radarr:
hosts: 'radarr radarr.{{ internal_domain }}'
ip_address: '{{ htpc_ip_address }}'
port: 26681
regexp: '# Radarr'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/radarr/{{ theme_park_theme }}.css'
raspiboot:
hostname: RaspiBoot
hosts: 'boot boot.{{ internal_domain }}'
ip_address: '{{ netboot_ip_address }}'
regexp: '# RaspiBoot'
seconion:
hosts: 'seconion seconion.{{ internal_domain }}'
ip_address: '{{ seconion_ip_address }}'
regexp: '# Security Onion'
sonarr:
hosts: 'sonarr sonarr.{{ internal_domain }}'
ip_address: '{{ htpc_ip_address }}'
port: 26682
regexp: '# Sonarr'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/sonarr/{{ theme_park_theme }}.css'
statping:
dns_record: status
dns_zone: '{{ public_domain }}'
hosts: 'statping status status.{{ public_domain }}'
ip_address: '{{ status_ip_address }}'
port: 26799
regexp: '# StatPing'
statuscheck:
dns_record: statuscheck
dns_zone: '{{ public_domain }}'
hostname: StatusCheck
hosts: 'statuscheck statuscheck.{{ public_domain }}'
ip_address: '{{ status_ip_address }}'
regexp: '# Status'
tautulli:
hosts: 'tautulli tautulli.{{ internal_domain }}'
ip_address: '{{ htpc_ip_address }}'
port: 26683
regexp: '# Tautulli'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/tautulli/{{ theme_park_theme }}.css'
transmission:
hosts: 'transmission transmission.{{ internal_domain }}'
ip_address: '{{ htpc_ip_address }}'
port: 26684
regexp: '# Transmission'
theme_url: 'https://gilbn.github.io/theme.park/CSS/themes/transmission/{{ theme_park_theme }}.css'
unifihome:
auth: false
hosts: 'unifi.home unifi.home.{{ public_domain }}'
ip_address: '{{ upstream_ip_address }}'
port: 443
regexp: '# UniFi Home'
transport: https
unifilab:
auth: false
hosts: 'unifi.lab unifi.{{ internal_domain }}'
ip_address: '{{ firewall_ip_address }}'
port: 8443
regexp: '# UniFi Lab'
transport: https
workstation:
hostname: Workstation
hosts: 'workstation workstation.{{ internal_domain }}'
ip_address: '{{ workstation_ip_address }}'
regexp: '# Workstation'
# @example #
# domains:
# cockpit:
# # `auth` - Whether or not to guard the application with the SSO provider. This is `true` by default but needs to be set to
# # false in some cases like when hosts need to be accessed by automated systems.
# auth: true
# # `hosts` - The domains you would like the app accessible by in browsers across your network.
# hosts: 'cockpit cockpit.{{ internal_domain }}'
# # `ip_address` - The IP address that the app is accessible on.
# ip_address: '{{ controller_ip_address }}'
# # `port` - The port on the localhost where the application is accessible
# port: 2999
# # `proxy_file` - Used when an app needs special NGINX proxy pass settings, like in the case of web sockets.
# proxy_file: proxy-ws.conf
# # `regexp` - A unique string used to identify lines in /etc/hosts that need to get updated when IP addresses change.
# regexp: '# Cockpit'
# # `transport` - Whenever possible, this should be set to `https`. When it is set to `https`, the NGINX proxy pass is made over HTTPS.
# transport: https
# statping:
# # If CloudFlare is configured, the `dns_record` will be used to create a `status` CNAME on the `public_domain`, which is
# # `megabyte.space` in this case.
# dns_record: status
# # The `dns_zone` is the CloudFlare DNS zone. This must be the root domain of the record you want to be automatically updated.
# dns_zone: '{{ public_domain }}'
# hosts: 'statping status status.{{ public_domain }}'
# ip_address: '{{ status_ip_address }}'
# regexp: '# StatPing'
# raspiboot:
# # The `hostname` must be assigned to the desired hostname for every target instance. In order to add a host to the `apps`
# # variable, it needs to be defined with the fields in this example, at the minimum (i.e. `hostname`, `hosts`, `ip_address`,
# # and `regexp`).
# hostname: RaspiBoot
# hosts: 'boot boot.{{ internal_domain }}'
# ip_address: '{{ netboot_ip_address }}'
# regexp: '# RaspiBoot'
# @end