global
  log stdout format raw local0
  # stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
  stats timeout 30s

defaults
  log global
  mode http
  retries 3
  maxconn 2000
  timeout connect 5s
  timeout client 50s
  timeout server 50s
  timeout http-request 10s
  timeout http-keep-alive 2s
  timeout queue 5s
  timeout tunnel 2m
  timeout client-fin 1s
  timeout server-fin 1s


#Application Setup
frontend ContentSwitching
  bind *:80
  bind *:443 ssl crt /etc/ssl/certs/cloudflare.pem
  mode  http
  # tmmworkshop.com
  acl host_mirror   hdr(host) -i mirror.tmmworkshop.com
  acl host_dndrules hdr(host) -i dndrules.tmmworkshop.com
  acl host_grafana  hdr(host) -i grafana.tmmworkshop.com
  acl host_filebrowser  hdr(host) -i filebrowser.tmmworkshop.com
  acl host_uptime_kuma  hdr(host) -i uptimekuma-jeeves.tmmworkshop.com

  use_backend mirror_nodes   if host_mirror
  use_backend dndrules_nodes if host_dndrules
  use_backend grafana_nodes  if host_grafana
  use_backend filebrowser_nodes  if host_filebrowser
  use_backend uptime_kuma_nodes  if host_uptime_kuma

backend mirror_nodes
  mode http
  server server arch_mirror:80

backend mirror_rsync
  mode http
  server server arch_mirror:873

backend grafana_nodes
  mode http
  server server grafana:3000

backend dndrules_nodes
  mode http
  server server dnd_file_server:80

backend filebrowser_nodes
  mode http
  server server filebrowser:8080

backend uptime_kuma_nodes
  mode http
  server server uptime_kuma:3001