--- # @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