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