Initial commit

This commit is contained in:
Keith Solomon
2026-07-17 18:31:50 -05:00
commit c1e489cadf
27 changed files with 3184 additions and 0 deletions
+89
View File
@@ -0,0 +1,89 @@
---
theme: dark
server:
address: tcp://0.0.0.0:9091
buffers:
read: 65536
write: 65536
log:
level: info
format: text
file_path: /var/log/authelia/authelia.log
keep_stdout: true
access_control:
default_policy: deny
networks:
- name: internal
networks:
- 192.168.2.0/24
rules:
# Internal LAN can bypass auth for *.keithsolomon.net
- domain: "*.keithsolomon.net"
policy: bypass
networks:
- internal
# Everything else hitting *.keithsolomon.net must at least single-factor auth
- domain: "*.keithsolomon.net"
policy: one_factor
totp:
issuer: "keithsolomon.net"
period: 30
skew: 1
authentication_backend:
refresh_interval: 5m
password_reset:
disable: false
file:
path: /config/users_database.yml
password:
algorithm: argon2id
iterations: 3
salt_length: 16
parallelism: 4
memory: 65536
session:
name: authelia_session
secret: "{{ env `AUTHELIA_SESSION_SECRET` }}"
inactivity: 5d
expiration: 30d
remember_me: 30d
cookies:
- domain: "keithsolomon.net"
authelia_url: "https://auth.keithsolomon.net"
default_redirection_url: "https://keithsolomon.net"
name: "authelia_session"
inactivity: 5d
expiration: 30d
remember_me: 60d
regulation:
max_retries: 5
find_time: 120m
ban_time: 300m
storage:
encryption_key: "{{ env `AUTHELIA_STORAGE_ENCRYPTION_KEY` }}"
local:
path: /config/db.sqlite3
notifier:
smtp:
address: submission://smtp.gmail.com:587
username: "ksolomon@gmail.com"
sender: "ksolomon+authelia@gmail.com"
password: "jrbjskxtxcftkqsj"
subject: "[Authelia] %s"
ntp:
address: time.cloudflare.com:123
version: 3
max_desync: 3s
disable_startup_check: false
disable_failure: false
+9
View File
@@ -0,0 +1,9 @@
users:
keith:
disabled: false
displayname: 'Keith'
# to generate, run docker run authelia/authelia:latest authelia crypto hash generate argon2 -i 1 -p 8 -v argon2id --password your-password
password: '$argon2id$v=19$m=65536,t=1,p=8$RhfsQk15MuBOXOXVxKHAVw$s4aeGIpNi7V8ps96ATXSx8eBU2wJnmJS/kB0+hYhHqs'
email: 'keith@keithsolomon.net'
groups:
- 'admins'
+85
View File
@@ -0,0 +1,85 @@
---
theme: dark
server:
address: tcp://0.0.0.0:9091
buffers:
read: 65536
write: 65536
access_control:
default_policy: deny
networks:
- name: internal
networks:
- 192.168.2.0/24
rules:
- domain: "*.keithsolomon.net"
policy: bypass
networks:
- internal
- domain: "*.keithsolomon.net"
policy: one_factor
log:
level: info
file_path: /logs/authelia.log
format: json
keep_stdout: true
identity_validation:
reset_password:
jwt_secret: "{{ env `AUTHELIA_JWT_SECRET` }}"
#default_redirection_url: https://auth.keithsolomon.net
totp:
issuer: authelia.com
# docker run authelia/authelia:latest authelia hash-password 'yourpassword'
authentication_backend:
refresh_interval: 5m
file:
path: /config/users_database.yml
password:
algorithm: argon2id
iterations: 1
salt_length: 16
parallelism: 8
memory: 64
session:
name: authelia_session
inactivity: 5d # 5 day
expiration: 30d # 1 h
remember_me: 30d
cookies:
- domain: 'keithsolomon.net'
authelia_url: 'https://auth.keithsolomon.net'
default_redirection_url: 'https://keithsolomon.net'
name: 'authelia_session'
inactivity: 5d # 5 days
expiration: 30d # 30 days
remember_me: 60d # 60 days
regulation:
max_retries: 5
find_time: 120m
ban_time: 300m
storage:
local:
path: /config/db.sqlite3
notifier:
smtp:
address: submission://smtp.gmail.com:587
username: ksolomon@gmail.com
sender: ksolomon+authelia@gmail.com
ntp:
address: time.cloudflare.com:123
version: 3
max_desync: 3s
disable_startup_check: false
disable_failure: false
+87
View File
@@ -0,0 +1,87 @@
---
theme: dark
server:
address: tcp://0.0.0.0:9091
buffers:
read: 65536
write: 65536
access_control:
default_policy: deny
networks:
- name: internal
networks:
- 192.168.2.0/24
rules:
- domain: "*.keithsolomon.net"
policy: bypass
networks:
- internal
- domain: "*.keithsolomon.net"
policy: one_factor
log:
level: info
file_path: /logs/authelia.log
format: json
keep_stdout: true
#default_redirection_url: https://auth.keithsolomon.net
totp:
issuer: authelia.com
identity_validation:
reset_password:
jwt_secret: "{{ env `AUTHELIA_JWT_SECRET` }}"
# docker run authelia/authelia:latest authelia hash-password 'yourpassword'
authentication_backend:
refresh_interval: 5m
file:
path: /config/users_database.yml
password:
algorithm: argon2id
iterations: 1
salt_length: 16
parallelism: 8
memory: 64
session:
name: authelia_session
secret: "{{ env `AUTHELIA_SESSION_SECRET` }}"
inactivity: 5d # 5 days
expiration: 30d # 30 days
remember_me: 60d # 60 days
cookies:
- domain: 'keithsolomon.net'
authelia_url: 'https://auth.keithsolomon.net'
default_redirection_url: 'https://keithsolomon.net'
name: 'authelia_session'
inactivity: 5d # 5 days
expiration: 30d # 30 days
remember_me: 60d # 60 days
regulation:
max_retries: 5
find_time: 120m
ban_time: 300m
storage:
encryption_key: "{{ env `AUTHELIA_STORAGE_ENCRYPTION_KEY` }}"
local:
path: /config/db.sqlite3
notifier:
smtp:
address: submission://smtp.gmail.com:587
username: ksolomon@gmail.com
sender: ksolomon+authelia@gmail.com
ntp:
address: time.cloudflare.com:123
version: 3
max_desync: 3s
disable_startup_check: false
disable_failure: false
+127
View File
@@ -0,0 +1,127 @@
services:
traefik:
container_name: Traefik
image: traefik:latest
restart: always
networks:
traefik_macvlan:
ipv4_address: 192.168.2.253 # Traefik's LAN IP
proxy: {}
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik/traefik.yml:/traefik.yml:ro
- ./traefik/config:/traefik_config
- ./traefik/config/otlp.htpasswd:/etc/traefik/otlp.htpasswd:ro
- ./traefik/cert:/traefik_cert
- ./traefik/logs:/logs
environment:
- TZ=America/Winnipeg
- CLOUDFLARE_API_KEY=${CLOUDFLARE_API_KEY}
- CLOUDFLARE_EMAIL=${CLOUDFLARE_EMAIL}
labels:
- "traefik.enable=true"
# Dashboard (behind Authelia)
- "traefik.http.routers.traefik.rule=Host(`tfk.keithsolomon.net`)"
- "traefik.http.routers.traefik.entrypoints=https"
- "traefik.http.routers.traefik.tls.certresolver=cloudflare"
- "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.routers.traefik.middlewares=authelia@docker"
authelia:
container_name: Authelia
restart: always
image: authelia/authelia:latest
command: --config /config/configuration.yml
networks:
- proxy
volumes:
- ./authelia/config:/config
- ./authelia/secrets:/secrets:ro
- ./authelia/logs:/var/log/authelia
environment:
- TZ=America/Winnipeg
- X_AUTHELIA_CONFIG_FILTERS=template
- AUTHELIA_SESSION_SECRET=${AUTHELIA_SESSION_SECRET}
- AUTHELIA_STORAGE_ENCRYPTION_KEY=${AUTHELIA_STORAGE_ENCRYPTION_KEY}
- AUTHELIA_LOG_LEVEL=debug
- AUTHELIA_IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET=${AUTHELIA_IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET}
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.authelia.rule=Host(`auth.keithsolomon.net`)"
- "traefik.http.routers.authelia.entrypoints=https"
- "traefik.http.routers.authelia.tls.certresolver=cloudflare"
- "traefik.http.middlewares.authelia.forwardAuth.address=http://authelia:9091/api/authz/forward-auth"
- "traefik.http.middlewares.authelia.forwardAuth.trustForwardHeader=true"
- "traefik.http.middlewares.authelia.forwardAuth.authResponseHeaders=Remote-User,Remote-Groups,Remote-Name,Remote-Email"
traefik-gui:
container_name: Traefik-GUI
restart: always
image: ghcr.io/rahn-it/traefik-gui:master
networks:
- proxy
volumes:
- ./traefik-gui/db:/app/db
- ./traefik/config:/app/traefik
environment:
- TZ=America/Winnipeg
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.traefik-gui.rule=Host(`tfk-admin.keithsolomon.net`)"
- "traefik.http.routers.traefik-gui.entrypoints=https"
- "traefik.http.routers.traefik-gui.tls.certresolver=cloudflare"
- "traefik.http.routers.traefik-gui.middlewares=authelia@docker"
traefik-manager:
container_name: traefik-manager
restart: unless-stopped
image: ghcr.io/chr0nzz/traefik-manager:latest
environment:
- COOKIE_SECURE=false
- TZ=America/Winnipeg
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.traefik-manager.rule=Host(`tfkman.keithsolomon.net`)"
- "traefik.http.routers.traefik-manager.entrypoints=https"
- "traefik.http.routers.traefik-manager.tls.certresolver=cloudflare"
- "traefik.http.services.traefik-manager.loadbalancer.server.port=5000"
# - "traefik.http.routers.traefik-manager.middlewares=authelia@docker"
networks:
- traefik_macvlan
- proxy
ports:
- "5000:5000"
volumes:
- ./traefik/config/gui.yml:/app/config/dynamic.yml
- ./traefik-manager/config:/app/config
- ./traefik-manager/backups:/app/backups
networks:
traefik_macvlan:
external: true
proxy:
name: proxy
driver: bridge
+1
View File
@@ -0,0 +1 @@
acme_provider_name: cloudflare
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,232 @@
http:
routers:
gui-https-10-CommaFeed:
rule: ( Host(`commafeed.keithsolomon.net`) )
service: gui-https-10-CommaFeed
tls:
certResolver: cloudflare
gui-https-11-OpenGist:
rule: ( Host(`gist.keithsolomon.net`) )
service: gui-https-11-OpenGist
tls:
certResolver: cloudflare
gui-https-12-PromptBase:
rule: ( Host(`prompts.keithsolomon.net`) )
service: gui-https-12-PromptBase
tls:
certResolver: cloudflare
gui-https-13-Uptime-Kuma:
rule: ( Host(`kuma.keithsolomon.net`) )
service: gui-https-13-Uptime-Kuma
tls:
certResolver: cloudflare
gui-https-14-Emby:
rule: ( Host(`emby.keithsolomon.net`) )
service: gui-https-14-Emby
tls:
certResolver: cloudflare
gui-https-15-Plex:
rule: ( Host(`plex.keithsolomon.net`) )
service: gui-https-15-Plex
tls:
certResolver: cloudflare
gui-https-18-Termix:
rule: ( Host(`term.keithsolomon.net`) )
service: gui-https-18-Termix
tls:
certResolver: cloudflare
gui-https-19-BillTrak:
rule: ( Host(`bills.keithsolomon.net`) )
service: gui-https-19-BillTrak
tls:
certResolver: cloudflare
gui-https-2-Calibre:
rule: ( Host(`cwa.keithsolomon.net`) )
service: gui-https-2-Calibre
tls:
certResolver: cloudflare
gui-https-21-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-21-Tautulli
tls:
certResolver: cloudflare
gui-https-22-Listenarr:
rule: ( Host(`listen.keithsolomon.net`) )
service: gui-https-22-Listenarr
tls:
certResolver: cloudflare
gui-https-23-Seerr:
rule: ( Host(`seerr.keithsolomon.net`) )
service: gui-https-23-Seerr
tls:
certResolver: cloudflare
gui-https-24-Ironpad:
rule: ( Host(`pm.keithsolomon.net`) )
service: gui-https-24-Ironpad
tls:
certResolver: cloudflare
gui-https-25-A11y Tester:
rule: ( Host(`pw-a11y.keithsolomon.net`) )
service: gui-https-25-A11y Tester
tls:
certResolver: cloudflare
gui-https-26-Beszel:
rule: ( Host(`beszel.keithsolomon.net`) )
service: gui-https-26-Beszel
tls:
certResolver: cloudflare
gui-https-27-FoundryVTT:
rule: ( Host(`foundry.keithsolomon.net`) )
service: gui-https-27-FoundryVTT
tls:
certResolver: cloudflare
gui-https-28-SolidTime:
rule: ( Host(`time.keithsolomon.net`) )
service: gui-https-28-SolidTime
tls:
certResolver: cloudflare
gui-https-29-Grafana:
rule: ( Host(`grafana.keithsolomon.net`) )
service: gui-https-29-Grafana
tls:
certResolver: cloudflare
gui-https-3-KaraKeep:
rule: ( Host(`kara.keithsolomon.net`) )
service: gui-https-3-KaraKeep
tls:
certResolver: cloudflare
gui-https-30-DroppedNeedle:
rule: ( Host(`needle.keithsolomon.net`) )
service: gui-https-30-DroppedNeedle
tls:
certResolver: cloudflare
gui-https-31-Grafana-OTLP:
rule: (( Host(`grafana.keithsolomon.net`) ) && PathPrefix(`/otlp`))
service: gui-https-31-Grafana-OTLP
tls:
certResolver: cloudflare
gui-https-4-Duplicati:
rule: ( Host(`backups.keithsolomon.net`) )
service: gui-https-4-Duplicati
tls:
certResolver: cloudflare
gui-https-7-Paperless:
rule: ( Host(`paperless.keithsolomon.net`) )
service: gui-https-7-Paperless
tls:
certResolver: cloudflare
gui-https-8-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-8-Tautulli
tls:
certResolver: cloudflare
gui-https-9-YTDL:
rule: ( Host(`ytdl.keithsolomon.net`) )
service: gui-https-9-YTDL
tls:
certResolver: cloudflare
services:
gui-https-10-CommaFeed:
loadBalancer:
servers:
- url: http://192.168.2.23:8082
gui-https-11-OpenGist:
loadBalancer:
servers:
- url: http://192.168.2.23:6157
gui-https-12-PromptBase:
loadBalancer:
servers:
- url: http://192.168.2.23:4321
gui-https-13-Uptime-Kuma:
loadBalancer:
servers:
- url: http://192.168.2.23:3031
gui-https-14-Emby:
loadBalancer:
servers:
- url: http://192.168.2.51:8096
gui-https-15-Plex:
loadBalancer:
servers:
- url: http://192.168.2.51:32400
gui-https-18-Termix:
loadBalancer:
servers:
- url: http://192.168.2.51:8182
gui-https-19-BillTrak:
loadBalancer:
servers:
- url: http://192.168.2.23:8989
gui-https-2-Calibre:
loadBalancer:
servers:
- url: http://192.168.2.51:8083
gui-https-21-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181/home
gui-https-22-Listenarr:
loadBalancer:
servers:
- url: http://192.168.2.9:5000
gui-https-23-Seerr:
loadBalancer:
servers:
- url: http://192.168.2.51:5055
gui-https-24-Ironpad:
loadBalancer:
servers:
- url: http://192.168.2.23:2828/
gui-https-25-A11y Tester:
loadBalancer:
servers:
- url: http://192.168.2.9:3001
gui-https-26-Beszel:
loadBalancer:
servers:
- url: http://192.168.2.9:8090/
gui-https-27-FoundryVTT:
loadBalancer:
servers:
- url: http://192.168.2.23:30000
gui-https-28-SolidTime:
loadBalancer:
servers:
- url: http://192.168.2.23:8580
gui-https-29-Grafana:
loadBalancer:
servers:
- url: http://192.168.2.18:3000
gui-https-3-KaraKeep:
loadBalancer:
servers:
- url: http://192.168.2.51:3849
gui-https-30-DroppedNeedle:
loadBalancer:
servers:
- url: http://192.168.2.17:8688
gui-https-31-Grafana-OTLP:
loadBalancer:
servers:
- url: http://192.168.2.18:4318
gui-https-4-Duplicati:
loadBalancer:
servers:
- url: http://192.168.2.51:8200
gui-https-7-Paperless:
loadBalancer:
servers:
- url: http://192.168.2.51:8010
gui-https-8-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181
gui-https-9-YTDL:
loadBalancer:
servers:
- url: http://192.168.2.51:8998
middlewares:
https-redirect:
redirectScheme:
scheme: https
@@ -0,0 +1,236 @@
http:
routers:
gui-https-10-CommaFeed:
rule: ( Host(`commafeed.keithsolomon.net`) )
service: gui-https-10-CommaFeed
tls:
certResolver: cloudflare
gui-https-11-OpenGist:
rule: ( Host(`gist.keithsolomon.net`) )
service: gui-https-11-OpenGist
tls:
certResolver: cloudflare
gui-https-12-PromptBase:
rule: ( Host(`prompts.keithsolomon.net`) )
service: gui-https-12-PromptBase
tls:
certResolver: cloudflare
gui-https-13-Uptime-Kuma:
rule: ( Host(`kuma.keithsolomon.net`) )
service: gui-https-13-Uptime-Kuma
tls:
certResolver: cloudflare
gui-https-14-Emby:
rule: ( Host(`emby.keithsolomon.net`) )
service: gui-https-14-Emby
tls:
certResolver: cloudflare
gui-https-15-Plex:
rule: ( Host(`plex.keithsolomon.net`) )
service: gui-https-15-Plex
tls:
certResolver: cloudflare
gui-https-18-Termix:
rule: ( Host(`term.keithsolomon.net`) )
service: gui-https-18-Termix
tls:
certResolver: cloudflare
gui-https-19-BillTrak:
rule: ( Host(`bills.keithsolomon.net`) )
service: gui-https-19-BillTrak
tls:
certResolver: cloudflare
gui-https-2-Calibre:
rule: ( Host(`cwa.keithsolomon.net`) )
service: gui-https-2-Calibre
tls:
certResolver: cloudflare
gui-https-21-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-21-Tautulli
tls:
certResolver: cloudflare
gui-https-22-Listenarr:
rule: ( Host(`listen.keithsolomon.net`) )
service: gui-https-22-Listenarr
tls:
certResolver: cloudflare
gui-https-23-Seerr:
rule: ( Host(`seerr.keithsolomon.net`) )
service: gui-https-23-Seerr
tls:
certResolver: cloudflare
gui-https-24-Ironpad:
rule: ( Host(`pm.keithsolomon.net`) )
service: gui-https-24-Ironpad
tls:
certResolver: cloudflare
gui-https-25-A11y Tester:
rule: ( Host(`pw-a11y.keithsolomon.net`) )
service: gui-https-25-A11y Tester
tls:
certResolver: cloudflare
gui-https-26-Beszel:
rule: ( Host(`beszel.keithsolomon.net`) )
service: gui-https-26-Beszel
tls:
certResolver: cloudflare
gui-https-27-FoundryVTT:
rule: ( Host(`foundry.keithsolomon.net`) )
service: gui-https-27-FoundryVTT
tls:
certResolver: cloudflare
gui-https-28-SolidTime:
rule: ( Host(`time.keithsolomon.net`) )
service: gui-https-28-SolidTime
tls:
certResolver: cloudflare
gui-https-29-Grafana:
rule: ( Host(`grafana.keithsolomon.net`) )
service: gui-https-29-Grafana
tls:
certResolver: cloudflare
gui-https-3-KaraKeep:
rule: ( Host(`kara.keithsolomon.net`) )
service: gui-https-3-KaraKeep
tls:
certResolver: cloudflare
gui-https-30-DroppedNeedle:
rule: ( Host(`needle.keithsolomon.net`) )
service: gui-https-30-DroppedNeedle
tls:
certResolver: cloudflare
gui-https-31-Grafana-OTLP:
rule: (( Host(`grafana.keithsolomon.net`) ) && PathPrefix(`/otlp`))
service: gui-https-31-Grafana-OTLP
tls:
certResolver: cloudflare
gui-https-4-Duplicati:
rule: ( Host(`backups.keithsolomon.net`) )
service: gui-https-4-Duplicati
tls:
certResolver: cloudflare
gui-https-7-Paperless:
rule: ( Host(`paperless.keithsolomon.net`) )
service: gui-https-7-Paperless
tls:
certResolver: cloudflare
gui-https-8-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-8-Tautulli
tls:
certResolver: cloudflare
gui-https-9-YTDL:
rule: ( Host(`ytdl.keithsolomon.net`) )
service: gui-https-9-YTDL
tls:
certResolver: cloudflare
services:
gui-https-10-CommaFeed:
loadBalancer:
servers:
- url: http://192.168.2.23:8082
gui-https-11-OpenGist:
loadBalancer:
servers:
- url: http://192.168.2.23:6157
gui-https-12-PromptBase:
loadBalancer:
servers:
- url: http://192.168.2.23:4321
gui-https-13-Uptime-Kuma:
loadBalancer:
servers:
- url: http://192.168.2.23:3031
gui-https-14-Emby:
loadBalancer:
servers:
- url: http://192.168.2.51:8096
gui-https-15-Plex:
loadBalancer:
servers:
- url: http://192.168.2.51:32400
gui-https-18-Termix:
loadBalancer:
servers:
- url: http://192.168.2.51:8182
gui-https-19-BillTrak:
loadBalancer:
servers:
- url: http://192.168.2.23:8989
gui-https-2-Calibre:
loadBalancer:
servers:
- url: http://192.168.2.51:8083
gui-https-21-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181/home
gui-https-22-Listenarr:
loadBalancer:
servers:
- url: http://192.168.2.9:5000
gui-https-23-Seerr:
loadBalancer:
servers:
- url: http://192.168.2.51:5055
gui-https-24-Ironpad:
loadBalancer:
servers:
- url: http://192.168.2.23:2828/
gui-https-25-A11y Tester:
loadBalancer:
servers:
- url: http://192.168.2.9:3001
gui-https-26-Beszel:
loadBalancer:
servers:
- url: http://192.168.2.9:8090/
gui-https-27-FoundryVTT:
loadBalancer:
servers:
- url: http://192.168.2.23:30000
gui-https-28-SolidTime:
loadBalancer:
servers:
- url: http://192.168.2.23:8580
gui-https-29-Grafana:
loadBalancer:
servers:
- url: http://192.168.2.18:3000
gui-https-3-KaraKeep:
loadBalancer:
servers:
- url: http://192.168.2.51:3849
gui-https-30-DroppedNeedle:
loadBalancer:
servers:
- url: http://192.168.2.17:8688
gui-https-31-Grafana-OTLP:
loadBalancer:
servers:
- url: http://192.168.2.18:4318
gui-https-4-Duplicati:
loadBalancer:
servers:
- url: http://192.168.2.51:8200
gui-https-7-Paperless:
loadBalancer:
servers:
- url: http://192.168.2.51:8010
gui-https-8-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181
gui-https-9-YTDL:
loadBalancer:
servers:
- url: http://192.168.2.51:8998
middlewares:
https-redirect:
redirectScheme:
scheme: https
otlp-strip:
stripPrefix:
prefixes:
- /otlp
@@ -0,0 +1,239 @@
http:
routers:
gui-https-10-CommaFeed:
rule: ( Host(`commafeed.keithsolomon.net`) )
service: gui-https-10-CommaFeed
tls:
certResolver: cloudflare
gui-https-11-OpenGist:
rule: ( Host(`gist.keithsolomon.net`) )
service: gui-https-11-OpenGist
tls:
certResolver: cloudflare
gui-https-12-PromptBase:
rule: ( Host(`prompts.keithsolomon.net`) )
service: gui-https-12-PromptBase
tls:
certResolver: cloudflare
gui-https-13-Uptime-Kuma:
rule: ( Host(`kuma.keithsolomon.net`) )
service: gui-https-13-Uptime-Kuma
tls:
certResolver: cloudflare
gui-https-14-Emby:
rule: ( Host(`emby.keithsolomon.net`) )
service: gui-https-14-Emby
tls:
certResolver: cloudflare
gui-https-15-Plex:
rule: ( Host(`plex.keithsolomon.net`) )
service: gui-https-15-Plex
tls:
certResolver: cloudflare
gui-https-18-Termix:
rule: ( Host(`term.keithsolomon.net`) )
service: gui-https-18-Termix
tls:
certResolver: cloudflare
gui-https-19-BillTrak:
rule: ( Host(`bills.keithsolomon.net`) )
service: gui-https-19-BillTrak
tls:
certResolver: cloudflare
gui-https-2-Calibre:
rule: ( Host(`cwa.keithsolomon.net`) )
service: gui-https-2-Calibre
tls:
certResolver: cloudflare
gui-https-21-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-21-Tautulli
tls:
certResolver: cloudflare
gui-https-22-Listenarr:
rule: ( Host(`listen.keithsolomon.net`) )
service: gui-https-22-Listenarr
tls:
certResolver: cloudflare
gui-https-23-Seerr:
rule: ( Host(`seerr.keithsolomon.net`) )
service: gui-https-23-Seerr
tls:
certResolver: cloudflare
gui-https-24-Ironpad:
rule: ( Host(`pm.keithsolomon.net`) )
service: gui-https-24-Ironpad
tls:
certResolver: cloudflare
gui-https-25-A11y Tester:
rule: ( Host(`pw-a11y.keithsolomon.net`) )
service: gui-https-25-A11y Tester
tls:
certResolver: cloudflare
gui-https-26-Beszel:
rule: ( Host(`beszel.keithsolomon.net`) )
service: gui-https-26-Beszel
tls:
certResolver: cloudflare
gui-https-27-FoundryVTT:
rule: ( Host(`foundry.keithsolomon.net`) )
service: gui-https-27-FoundryVTT
tls:
certResolver: cloudflare
gui-https-28-SolidTime:
rule: ( Host(`time.keithsolomon.net`) )
service: gui-https-28-SolidTime
tls:
certResolver: cloudflare
gui-https-29-Grafana:
rule: ( Host(`grafana.keithsolomon.net`) )
service: gui-https-29-Grafana
tls:
certResolver: cloudflare
gui-https-3-KaraKeep:
rule: ( Host(`kara.keithsolomon.net`) )
service: gui-https-3-KaraKeep
tls:
certResolver: cloudflare
gui-https-30-DroppedNeedle:
rule: ( Host(`needle.keithsolomon.net`) )
service: gui-https-30-DroppedNeedle
tls:
certResolver: cloudflare
gui-https-31-Grafana-OTLP:
rule: (( Host(`grafana.keithsolomon.net`) ) && PathPrefix(`/otlp`))
service: gui-https-31-Grafana-OTLP
tls:
certResolver: cloudflare
gui-https-4-Duplicati:
rule: ( Host(`backups.keithsolomon.net`) )
service: gui-https-4-Duplicati
tls:
certResolver: cloudflare
gui-https-7-Paperless:
rule: ( Host(`paperless.keithsolomon.net`) )
service: gui-https-7-Paperless
tls:
certResolver: cloudflare
gui-https-8-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-8-Tautulli
tls:
certResolver: cloudflare
gui-https-9-YTDL:
rule: ( Host(`ytdl.keithsolomon.net`) )
service: gui-https-9-YTDL
tls:
certResolver: cloudflare
services:
gui-https-10-CommaFeed:
loadBalancer:
servers:
- url: http://192.168.2.23:8082
gui-https-11-OpenGist:
loadBalancer:
servers:
- url: http://192.168.2.23:6157
gui-https-12-PromptBase:
loadBalancer:
servers:
- url: http://192.168.2.23:4321
gui-https-13-Uptime-Kuma:
loadBalancer:
servers:
- url: http://192.168.2.23:3031
gui-https-14-Emby:
loadBalancer:
servers:
- url: http://192.168.2.51:8096
gui-https-15-Plex:
loadBalancer:
servers:
- url: http://192.168.2.51:32400
gui-https-18-Termix:
loadBalancer:
servers:
- url: http://192.168.2.51:8182
gui-https-19-BillTrak:
loadBalancer:
servers:
- url: http://192.168.2.23:8989
gui-https-2-Calibre:
loadBalancer:
servers:
- url: http://192.168.2.51:8083
gui-https-21-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181/home
gui-https-22-Listenarr:
loadBalancer:
servers:
- url: http://192.168.2.9:5000
gui-https-23-Seerr:
loadBalancer:
servers:
- url: http://192.168.2.51:5055
gui-https-24-Ironpad:
loadBalancer:
servers:
- url: http://192.168.2.23:2828/
gui-https-25-A11y Tester:
loadBalancer:
servers:
- url: http://192.168.2.9:3001
gui-https-26-Beszel:
loadBalancer:
servers:
- url: http://192.168.2.9:8090/
gui-https-27-FoundryVTT:
loadBalancer:
servers:
- url: http://192.168.2.23:30000
gui-https-28-SolidTime:
loadBalancer:
servers:
- url: http://192.168.2.23:8580
gui-https-29-Grafana:
loadBalancer:
servers:
- url: http://192.168.2.18:3000
gui-https-3-KaraKeep:
loadBalancer:
servers:
- url: http://192.168.2.51:3849
gui-https-30-DroppedNeedle:
loadBalancer:
servers:
- url: http://192.168.2.17:8688
gui-https-31-Grafana-OTLP:
loadBalancer:
servers:
- url: http://192.168.2.18:4318
gui-https-4-Duplicati:
loadBalancer:
servers:
- url: http://192.168.2.51:8200
gui-https-7-Paperless:
loadBalancer:
servers:
- url: http://192.168.2.51:8010
gui-https-8-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181
gui-https-9-YTDL:
loadBalancer:
servers:
- url: http://192.168.2.51:8998
middlewares:
https-redirect:
redirectScheme:
scheme: https
otlp-strip:
stripPrefix:
prefixes:
- /otlp
otlp-auth:
basicAuth:
usersFile: /etc/traefik/otlp.htpasswd
@@ -0,0 +1,244 @@
http:
routers:
gui-https-10-CommaFeed:
rule: ( Host(`commafeed.keithsolomon.net`) )
service: gui-https-10-CommaFeed
tls:
certResolver: cloudflare
gui-https-11-OpenGist:
rule: ( Host(`gist.keithsolomon.net`) )
service: gui-https-11-OpenGist
tls:
certResolver: cloudflare
gui-https-12-PromptBase:
rule: ( Host(`prompts.keithsolomon.net`) )
service: gui-https-12-PromptBase
tls:
certResolver: cloudflare
gui-https-13-Uptime-Kuma:
rule: ( Host(`kuma.keithsolomon.net`) )
service: gui-https-13-Uptime-Kuma
tls:
certResolver: cloudflare
gui-https-14-Emby:
rule: ( Host(`emby.keithsolomon.net`) )
service: gui-https-14-Emby
tls:
certResolver: cloudflare
gui-https-15-Plex:
rule: ( Host(`plex.keithsolomon.net`) )
service: gui-https-15-Plex
tls:
certResolver: cloudflare
gui-https-18-Termix:
rule: ( Host(`term.keithsolomon.net`) )
service: gui-https-18-Termix
tls:
certResolver: cloudflare
gui-https-19-BillTrak:
rule: ( Host(`bills.keithsolomon.net`) )
service: gui-https-19-BillTrak
tls:
certResolver: cloudflare
gui-https-2-Calibre:
rule: ( Host(`cwa.keithsolomon.net`) )
service: gui-https-2-Calibre
tls:
certResolver: cloudflare
gui-https-21-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-21-Tautulli
tls:
certResolver: cloudflare
gui-https-22-Listenarr:
rule: ( Host(`listen.keithsolomon.net`) )
service: gui-https-22-Listenarr
tls:
certResolver: cloudflare
gui-https-23-Seerr:
rule: ( Host(`seerr.keithsolomon.net`) )
service: gui-https-23-Seerr
tls:
certResolver: cloudflare
gui-https-24-Ironpad:
rule: ( Host(`pm.keithsolomon.net`) )
service: gui-https-24-Ironpad
tls:
certResolver: cloudflare
gui-https-25-A11y Tester:
rule: ( Host(`pw-a11y.keithsolomon.net`) )
service: gui-https-25-A11y Tester
tls:
certResolver: cloudflare
gui-https-26-Beszel:
rule: ( Host(`beszel.keithsolomon.net`) )
service: gui-https-26-Beszel
tls:
certResolver: cloudflare
gui-https-27-FoundryVTT:
rule: ( Host(`foundry.keithsolomon.net`) )
service: gui-https-27-FoundryVTT
tls:
certResolver: cloudflare
gui-https-28-SolidTime:
rule: ( Host(`time.keithsolomon.net`) )
service: gui-https-28-SolidTime
tls:
certResolver: cloudflare
gui-https-29-Grafana:
rule: ( Host(`grafana.keithsolomon.net`) )
service: gui-https-29-Grafana
tls:
certResolver: cloudflare
gui-https-3-KaraKeep:
rule: ( Host(`kara.keithsolomon.net`) )
service: gui-https-3-KaraKeep
tls:
certResolver: cloudflare
gui-https-30-DroppedNeedle:
rule: ( Host(`needle.keithsolomon.net`) )
service: gui-https-30-DroppedNeedle
tls:
certResolver: cloudflare
gui-https-31-Grafana-OTLP:
rule: (( Host(`grafana.keithsolomon.net`) ) && PathPrefix(`/otlp`))
entryPoints:
- https
service: gui-https-31-Grafana-OTLP-service
middlewares:
- otlp-strip
- otlp-auth
tls:
certResolver: cloudflare
gui-https-4-Duplicati:
rule: ( Host(`backups.keithsolomon.net`) )
service: gui-https-4-Duplicati
tls:
certResolver: cloudflare
gui-https-7-Paperless:
rule: ( Host(`paperless.keithsolomon.net`) )
service: gui-https-7-Paperless
tls:
certResolver: cloudflare
gui-https-8-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-8-Tautulli
tls:
certResolver: cloudflare
gui-https-9-YTDL:
rule: ( Host(`ytdl.keithsolomon.net`) )
service: gui-https-9-YTDL
tls:
certResolver: cloudflare
services:
gui-https-10-CommaFeed:
loadBalancer:
servers:
- url: http://192.168.2.23:8082
gui-https-11-OpenGist:
loadBalancer:
servers:
- url: http://192.168.2.23:6157
gui-https-12-PromptBase:
loadBalancer:
servers:
- url: http://192.168.2.23:4321
gui-https-13-Uptime-Kuma:
loadBalancer:
servers:
- url: http://192.168.2.23:3031
gui-https-14-Emby:
loadBalancer:
servers:
- url: http://192.168.2.51:8096
gui-https-15-Plex:
loadBalancer:
servers:
- url: http://192.168.2.51:32400
gui-https-18-Termix:
loadBalancer:
servers:
- url: http://192.168.2.51:8182
gui-https-19-BillTrak:
loadBalancer:
servers:
- url: http://192.168.2.23:8989
gui-https-2-Calibre:
loadBalancer:
servers:
- url: http://192.168.2.51:8083
gui-https-21-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181/home
gui-https-22-Listenarr:
loadBalancer:
servers:
- url: http://192.168.2.9:5000
gui-https-23-Seerr:
loadBalancer:
servers:
- url: http://192.168.2.51:5055
gui-https-24-Ironpad:
loadBalancer:
servers:
- url: http://192.168.2.23:2828/
gui-https-25-A11y Tester:
loadBalancer:
servers:
- url: http://192.168.2.9:3001
gui-https-26-Beszel:
loadBalancer:
servers:
- url: http://192.168.2.9:8090/
gui-https-27-FoundryVTT:
loadBalancer:
servers:
- url: http://192.168.2.23:30000
gui-https-28-SolidTime:
loadBalancer:
servers:
- url: http://192.168.2.23:8580
gui-https-29-Grafana:
loadBalancer:
servers:
- url: http://192.168.2.18:3000
gui-https-3-KaraKeep:
loadBalancer:
servers:
- url: http://192.168.2.51:3849
gui-https-30-DroppedNeedle:
loadBalancer:
servers:
- url: http://192.168.2.17:8688
gui-https-4-Duplicati:
loadBalancer:
servers:
- url: http://192.168.2.51:8200
gui-https-7-Paperless:
loadBalancer:
servers:
- url: http://192.168.2.51:8010
gui-https-8-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181
gui-https-9-YTDL:
loadBalancer:
servers:
- url: http://192.168.2.51:8998
gui-https-31-Grafana-OTLP-service:
loadBalancer:
servers:
- url: http://192.168.2.18:4318
middlewares:
https-redirect:
redirectScheme:
scheme: https
otlp-strip:
stripPrefix:
prefixes:
- /otlp
otlp-auth:
basicAuth:
usersFile: /etc/traefik/otlp.htpasswd
@@ -0,0 +1,235 @@
http:
routers:
gui-https-10-CommaFeed:
rule: ( Host(`commafeed.keithsolomon.net`) )
service: gui-https-10-CommaFeed
tls:
certResolver: cloudflare
gui-https-11-OpenGist:
rule: ( Host(`gist.keithsolomon.net`) )
service: gui-https-11-OpenGist
tls:
certResolver: cloudflare
gui-https-12-PromptBase:
rule: ( Host(`prompts.keithsolomon.net`) )
service: gui-https-12-PromptBase
tls:
certResolver: cloudflare
gui-https-13-Uptime-Kuma:
rule: ( Host(`kuma.keithsolomon.net`) )
service: gui-https-13-Uptime-Kuma
tls:
certResolver: cloudflare
gui-https-14-Emby:
rule: ( Host(`emby.keithsolomon.net`) )
service: gui-https-14-Emby
tls:
certResolver: cloudflare
gui-https-15-Plex:
rule: ( Host(`plex.keithsolomon.net`) )
service: gui-https-15-Plex
tls:
certResolver: cloudflare
gui-https-18-Termix:
rule: ( Host(`term.keithsolomon.net`) )
service: gui-https-18-Termix
tls:
certResolver: cloudflare
gui-https-19-BillTrak:
rule: ( Host(`bills.keithsolomon.net`) )
service: gui-https-19-BillTrak
tls:
certResolver: cloudflare
gui-https-2-Calibre:
rule: ( Host(`cwa.keithsolomon.net`) )
service: gui-https-2-Calibre
tls:
certResolver: cloudflare
gui-https-21-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-21-Tautulli
tls:
certResolver: cloudflare
gui-https-22-Listenarr:
rule: ( Host(`listen.keithsolomon.net`) )
service: gui-https-22-Listenarr
tls:
certResolver: cloudflare
gui-https-23-Seerr:
rule: ( Host(`seerr.keithsolomon.net`) )
service: gui-https-23-Seerr
tls:
certResolver: cloudflare
gui-https-24-Ironpad:
rule: ( Host(`pm.keithsolomon.net`) )
service: gui-https-24-Ironpad
tls:
certResolver: cloudflare
gui-https-25-A11y Tester:
rule: ( Host(`pw-a11y.keithsolomon.net`) )
service: gui-https-25-A11y Tester
tls:
certResolver: cloudflare
gui-https-27-FoundryVTT:
rule: ( Host(`foundry.keithsolomon.net`) )
service: gui-https-27-FoundryVTT
tls:
certResolver: cloudflare
gui-https-28-SolidTime:
rule: ( Host(`time.keithsolomon.net`) )
service: gui-https-28-SolidTime
tls:
certResolver: cloudflare
gui-https-29-Grafana:
rule: ( Host(`grafana.keithsolomon.net`) )
service: gui-https-29-Grafana
tls:
certResolver: cloudflare
gui-https-3-KaraKeep:
rule: ( Host(`kara.keithsolomon.net`) )
service: gui-https-3-KaraKeep
tls:
certResolver: cloudflare
gui-https-30-DroppedNeedle:
rule: ( Host(`needle.keithsolomon.net`) )
service: gui-https-30-DroppedNeedle
tls:
certResolver: cloudflare
gui-https-31-Grafana-OTLP:
rule: (( Host(`grafana.keithsolomon.net`) ) && PathPrefix(`/otlp`))
entryPoints:
- https
service: gui-https-31-Grafana-OTLP-service
middlewares:
- otlp-strip
- otlp-auth
tls:
certResolver: cloudflare
gui-https-4-Duplicati:
rule: ( Host(`backups.keithsolomon.net`) )
service: gui-https-4-Duplicati
tls:
certResolver: cloudflare
gui-https-7-Paperless:
rule: ( Host(`paperless.keithsolomon.net`) )
service: gui-https-7-Paperless
tls:
certResolver: cloudflare
gui-https-8-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-8-Tautulli
tls:
certResolver: cloudflare
gui-https-9-YTDL:
rule: ( Host(`ytdl.keithsolomon.net`) )
service: gui-https-9-YTDL
tls:
certResolver: cloudflare
services:
gui-https-10-CommaFeed:
loadBalancer:
servers:
- url: http://192.168.2.23:8082
gui-https-11-OpenGist:
loadBalancer:
servers:
- url: http://192.168.2.23:6157
gui-https-12-PromptBase:
loadBalancer:
servers:
- url: http://192.168.2.23:4321
gui-https-13-Uptime-Kuma:
loadBalancer:
servers:
- url: http://192.168.2.23:3031
gui-https-14-Emby:
loadBalancer:
servers:
- url: http://192.168.2.51:8096
gui-https-15-Plex:
loadBalancer:
servers:
- url: http://192.168.2.51:32400
gui-https-18-Termix:
loadBalancer:
servers:
- url: http://192.168.2.51:8182
gui-https-19-BillTrak:
loadBalancer:
servers:
- url: http://192.168.2.23:8989
gui-https-2-Calibre:
loadBalancer:
servers:
- url: http://192.168.2.51:8083
gui-https-21-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181/home
gui-https-22-Listenarr:
loadBalancer:
servers:
- url: http://192.168.2.9:5000
gui-https-23-Seerr:
loadBalancer:
servers:
- url: http://192.168.2.51:5055
gui-https-24-Ironpad:
loadBalancer:
servers:
- url: http://192.168.2.23:2828/
gui-https-25-A11y Tester:
loadBalancer:
servers:
- url: http://192.168.2.9:3001
gui-https-27-FoundryVTT:
loadBalancer:
servers:
- url: http://192.168.2.23:30000
gui-https-28-SolidTime:
loadBalancer:
servers:
- url: http://192.168.2.23:8580
gui-https-29-Grafana:
loadBalancer:
servers:
- url: http://192.168.2.18:3000
gui-https-3-KaraKeep:
loadBalancer:
servers:
- url: http://192.168.2.51:3849
gui-https-30-DroppedNeedle:
loadBalancer:
servers:
- url: http://192.168.2.17:8688
gui-https-4-Duplicati:
loadBalancer:
servers:
- url: http://192.168.2.51:8200
gui-https-7-Paperless:
loadBalancer:
servers:
- url: http://192.168.2.51:8010
gui-https-8-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181
gui-https-9-YTDL:
loadBalancer:
servers:
- url: http://192.168.2.51:8998
gui-https-31-Grafana-OTLP-service:
loadBalancer:
servers:
- url: http://192.168.2.18:4318
middlewares:
https-redirect:
redirectScheme:
scheme: https
otlp-strip:
stripPrefix:
prefixes:
- /otlp
otlp-auth:
basicAuth:
usersFile: /etc/traefik/otlp.htpasswd
@@ -0,0 +1,226 @@
http:
routers:
gui-https-10-CommaFeed:
rule: ( Host(`commafeed.keithsolomon.net`) )
service: gui-https-10-CommaFeed
tls:
certResolver: cloudflare
gui-https-11-OpenGist:
rule: ( Host(`gist.keithsolomon.net`) )
service: gui-https-11-OpenGist
tls:
certResolver: cloudflare
gui-https-12-PromptBase:
rule: ( Host(`prompts.keithsolomon.net`) )
service: gui-https-12-PromptBase
tls:
certResolver: cloudflare
gui-https-13-Uptime-Kuma:
rule: ( Host(`kuma.keithsolomon.net`) )
service: gui-https-13-Uptime-Kuma
tls:
certResolver: cloudflare
gui-https-14-Emby:
rule: ( Host(`emby.keithsolomon.net`) )
service: gui-https-14-Emby
tls:
certResolver: cloudflare
gui-https-15-Plex:
rule: ( Host(`plex.keithsolomon.net`) )
service: gui-https-15-Plex
tls:
certResolver: cloudflare
gui-https-18-Termix:
rule: ( Host(`term.keithsolomon.net`) )
service: gui-https-18-Termix
tls:
certResolver: cloudflare
gui-https-19-BillTrak:
rule: ( Host(`bills.keithsolomon.net`) )
service: gui-https-19-BillTrak
tls:
certResolver: cloudflare
gui-https-2-Calibre:
rule: ( Host(`cwa.keithsolomon.net`) )
service: gui-https-2-Calibre
tls:
certResolver: cloudflare
gui-https-21-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-21-Tautulli
tls:
certResolver: cloudflare
gui-https-22-Listenarr:
rule: ( Host(`listen.keithsolomon.net`) )
service: gui-https-22-Listenarr
tls:
certResolver: cloudflare
gui-https-23-Seerr:
rule: ( Host(`seerr.keithsolomon.net`) )
service: gui-https-23-Seerr
tls:
certResolver: cloudflare
gui-https-24-Ironpad:
rule: ( Host(`pm.keithsolomon.net`) )
service: gui-https-24-Ironpad
tls:
certResolver: cloudflare
gui-https-27-FoundryVTT:
rule: ( Host(`foundry.keithsolomon.net`) )
service: gui-https-27-FoundryVTT
tls:
certResolver: cloudflare
gui-https-28-SolidTime:
rule: ( Host(`time.keithsolomon.net`) )
service: gui-https-28-SolidTime
tls:
certResolver: cloudflare
gui-https-29-Grafana:
rule: ( Host(`grafana.keithsolomon.net`) )
service: gui-https-29-Grafana
tls:
certResolver: cloudflare
gui-https-3-KaraKeep:
rule: ( Host(`kara.keithsolomon.net`) )
service: gui-https-3-KaraKeep
tls:
certResolver: cloudflare
gui-https-30-DroppedNeedle:
rule: ( Host(`needle.keithsolomon.net`) )
service: gui-https-30-DroppedNeedle
tls:
certResolver: cloudflare
gui-https-31-Grafana-OTLP:
rule: (( Host(`grafana.keithsolomon.net`) ) && PathPrefix(`/otlp`))
entryPoints:
- https
service: gui-https-31-Grafana-OTLP-service
middlewares:
- otlp-strip
- otlp-auth
tls:
certResolver: cloudflare
gui-https-4-Duplicati:
rule: ( Host(`backups.keithsolomon.net`) )
service: gui-https-4-Duplicati
tls:
certResolver: cloudflare
gui-https-7-Paperless:
rule: ( Host(`paperless.keithsolomon.net`) )
service: gui-https-7-Paperless
tls:
certResolver: cloudflare
gui-https-8-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-8-Tautulli
tls:
certResolver: cloudflare
gui-https-9-YTDL:
rule: ( Host(`ytdl.keithsolomon.net`) )
service: gui-https-9-YTDL
tls:
certResolver: cloudflare
services:
gui-https-10-CommaFeed:
loadBalancer:
servers:
- url: http://192.168.2.23:8082
gui-https-11-OpenGist:
loadBalancer:
servers:
- url: http://192.168.2.23:6157
gui-https-12-PromptBase:
loadBalancer:
servers:
- url: http://192.168.2.23:4321
gui-https-13-Uptime-Kuma:
loadBalancer:
servers:
- url: http://192.168.2.23:3031
gui-https-14-Emby:
loadBalancer:
servers:
- url: http://192.168.2.51:8096
gui-https-15-Plex:
loadBalancer:
servers:
- url: http://192.168.2.51:32400
gui-https-18-Termix:
loadBalancer:
servers:
- url: http://192.168.2.51:8182
gui-https-19-BillTrak:
loadBalancer:
servers:
- url: http://192.168.2.23:8989
gui-https-2-Calibre:
loadBalancer:
servers:
- url: http://192.168.2.51:8083
gui-https-21-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181/home
gui-https-22-Listenarr:
loadBalancer:
servers:
- url: http://192.168.2.9:5000
gui-https-23-Seerr:
loadBalancer:
servers:
- url: http://192.168.2.51:5055
gui-https-24-Ironpad:
loadBalancer:
servers:
- url: http://192.168.2.23:2828/
gui-https-27-FoundryVTT:
loadBalancer:
servers:
- url: http://192.168.2.23:30000
gui-https-28-SolidTime:
loadBalancer:
servers:
- url: http://192.168.2.23:8580
gui-https-29-Grafana:
loadBalancer:
servers:
- url: http://192.168.2.18:3000
gui-https-3-KaraKeep:
loadBalancer:
servers:
- url: http://192.168.2.51:3849
gui-https-30-DroppedNeedle:
loadBalancer:
servers:
- url: http://192.168.2.17:8688
gui-https-4-Duplicati:
loadBalancer:
servers:
- url: http://192.168.2.51:8200
gui-https-7-Paperless:
loadBalancer:
servers:
- url: http://192.168.2.51:8010
gui-https-8-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181
gui-https-9-YTDL:
loadBalancer:
servers:
- url: http://192.168.2.51:8998
gui-https-31-Grafana-OTLP-service:
loadBalancer:
servers:
- url: http://192.168.2.18:4318
middlewares:
https-redirect:
redirectScheme:
scheme: https
otlp-strip:
stripPrefix:
prefixes:
- /otlp
otlp-auth:
basicAuth:
usersFile: /etc/traefik/otlp.htpasswd
@@ -0,0 +1,235 @@
http:
routers:
gui-https-10-CommaFeed:
rule: ( Host(`commafeed.keithsolomon.net`) )
service: gui-https-10-CommaFeed
tls:
certResolver: cloudflare
gui-https-11-OpenGist:
rule: ( Host(`gist.keithsolomon.net`) )
service: gui-https-11-OpenGist
tls:
certResolver: cloudflare
gui-https-12-PromptBase:
rule: ( Host(`prompts.keithsolomon.net`) )
service: gui-https-12-PromptBase
tls:
certResolver: cloudflare
gui-https-13-Uptime-Kuma:
rule: ( Host(`kuma.keithsolomon.net`) )
service: gui-https-13-Uptime-Kuma
tls:
certResolver: cloudflare
gui-https-14-Emby:
rule: ( Host(`emby.keithsolomon.net`) )
service: gui-https-14-Emby
tls:
certResolver: cloudflare
gui-https-15-Plex:
rule: ( Host(`plex.keithsolomon.net`) )
service: gui-https-15-Plex
tls:
certResolver: cloudflare
gui-https-18-Termix:
rule: ( Host(`term.keithsolomon.net`) )
service: gui-https-18-Termix
tls:
certResolver: cloudflare
gui-https-19-BillTrak:
rule: ( Host(`bills.keithsolomon.net`) )
service: gui-https-19-BillTrak
tls:
certResolver: cloudflare
gui-https-2-Calibre:
rule: ( Host(`cwa.keithsolomon.net`) )
service: gui-https-2-Calibre
tls:
certResolver: cloudflare
gui-https-21-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-21-Tautulli
tls:
certResolver: cloudflare
gui-https-22-Listenarr:
rule: ( Host(`listen.keithsolomon.net`) )
service: gui-https-22-Listenarr
tls:
certResolver: cloudflare
gui-https-23-Seerr:
rule: ( Host(`seerr.keithsolomon.net`) )
service: gui-https-23-Seerr
tls:
certResolver: cloudflare
gui-https-24-Ironpad:
rule: ( Host(`pm.keithsolomon.net`) )
service: gui-https-24-Ironpad
tls:
certResolver: cloudflare
gui-https-27-FoundryVTT:
rule: ( Host(`foundry.keithsolomon.net`) )
service: gui-https-27-FoundryVTT
tls:
certResolver: cloudflare
gui-https-28-SolidTime:
rule: ( Host(`time.keithsolomon.net`) )
service: gui-https-28-SolidTime
tls:
certResolver: cloudflare
gui-https-29-Grafana:
rule: ( Host(`grafana.keithsolomon.net`) )
service: gui-https-29-Grafana
tls:
certResolver: cloudflare
gui-https-3-KaraKeep:
rule: ( Host(`kara.keithsolomon.net`) )
service: gui-https-3-KaraKeep
tls:
certResolver: cloudflare
gui-https-30-DroppedNeedle:
rule: ( Host(`needle.keithsolomon.net`) )
service: gui-https-30-DroppedNeedle
tls:
certResolver: cloudflare
gui-https-31-Grafana-OTLP:
rule: (( Host(`grafana.keithsolomon.net`) ) && PathPrefix(`/otlp`))
entryPoints:
- https
service: gui-https-31-Grafana-OTLP-service
middlewares:
- otlp-strip
- otlp-auth
tls:
certResolver: cloudflare
gui-https-4-Duplicati:
rule: ( Host(`backups.keithsolomon.net`) )
service: gui-https-4-Duplicati
tls:
certResolver: cloudflare
gui-https-7-Paperless:
rule: ( Host(`paperless.keithsolomon.net`) )
service: gui-https-7-Paperless
tls:
certResolver: cloudflare
gui-https-8-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-8-Tautulli
tls:
certResolver: cloudflare
gui-https-9-YTDL:
rule: ( Host(`ytdl.keithsolomon.net`) )
service: gui-https-9-YTDL
tls:
certResolver: cloudflare
gui-https-25-A11y Tester:
rule: ( Host(`pw-a11y.keithsolomon.net`) )
service: gui-https-25-A11y Tester
tls:
certResolver: cloudflare
services:
gui-https-10-CommaFeed:
loadBalancer:
servers:
- url: http://192.168.2.23:8082
gui-https-11-OpenGist:
loadBalancer:
servers:
- url: http://192.168.2.23:6157
gui-https-12-PromptBase:
loadBalancer:
servers:
- url: http://192.168.2.23:4321
gui-https-13-Uptime-Kuma:
loadBalancer:
servers:
- url: http://192.168.2.23:3031
gui-https-14-Emby:
loadBalancer:
servers:
- url: http://192.168.2.51:8096
gui-https-15-Plex:
loadBalancer:
servers:
- url: http://192.168.2.51:32400
gui-https-18-Termix:
loadBalancer:
servers:
- url: http://192.168.2.51:8182
gui-https-19-BillTrak:
loadBalancer:
servers:
- url: http://192.168.2.23:8989
gui-https-2-Calibre:
loadBalancer:
servers:
- url: http://192.168.2.51:8083
gui-https-21-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181/home
gui-https-22-Listenarr:
loadBalancer:
servers:
- url: http://192.168.2.9:5000
gui-https-23-Seerr:
loadBalancer:
servers:
- url: http://192.168.2.51:5055
gui-https-24-Ironpad:
loadBalancer:
servers:
- url: http://192.168.2.23:2828/
gui-https-27-FoundryVTT:
loadBalancer:
servers:
- url: http://192.168.2.23:30000
gui-https-28-SolidTime:
loadBalancer:
servers:
- url: http://192.168.2.23:8580
gui-https-29-Grafana:
loadBalancer:
servers:
- url: http://192.168.2.18:3000
gui-https-3-KaraKeep:
loadBalancer:
servers:
- url: http://192.168.2.51:3849
gui-https-30-DroppedNeedle:
loadBalancer:
servers:
- url: http://192.168.2.17:8688
gui-https-4-Duplicati:
loadBalancer:
servers:
- url: http://192.168.2.51:8200
gui-https-7-Paperless:
loadBalancer:
servers:
- url: http://192.168.2.51:8010
gui-https-8-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181
gui-https-9-YTDL:
loadBalancer:
servers:
- url: http://192.168.2.51:8998
gui-https-31-Grafana-OTLP-service:
loadBalancer:
servers:
- url: http://192.168.2.18:4318
gui-https-25-A11y Tester:
loadBalancer:
servers:
- url: http://192.168.2.9:3001
middlewares:
https-redirect:
redirectScheme:
scheme: https
otlp-strip:
stripPrefix:
prefixes:
- /otlp
otlp-auth:
basicAuth:
usersFile: /etc/traefik/otlp.htpasswd
@@ -0,0 +1,232 @@
http:
routers:
gui-https-10-CommaFeed:
rule: ( Host(`commafeed.keithsolomon.net`) )
service: gui-https-10-CommaFeed
tls:
certResolver: cloudflare
gui-https-11-OpenGist:
rule: ( Host(`gist.keithsolomon.net`) )
service: gui-https-11-OpenGist
tls:
certResolver: cloudflare
gui-https-12-PromptBase:
rule: ( Host(`prompts.keithsolomon.net`) )
service: gui-https-12-PromptBase
tls:
certResolver: cloudflare
gui-https-13-Uptime-Kuma:
rule: ( Host(`kuma.keithsolomon.net`) )
service: gui-https-13-Uptime-Kuma
tls:
certResolver: cloudflare
gui-https-14-Emby:
rule: ( Host(`emby.keithsolomon.net`) )
service: gui-https-14-Emby
tls:
certResolver: cloudflare
gui-https-15-Plex:
rule: ( Host(`plex.keithsolomon.net`) )
service: gui-https-15-Plex
tls:
certResolver: cloudflare
gui-https-18-Termix:
rule: ( Host(`term.keithsolomon.net`) )
service: gui-https-18-Termix
tls:
certResolver: cloudflare
gui-https-19-BillTrak:
rule: ( Host(`bills.keithsolomon.net`) )
service: gui-https-19-BillTrak
tls:
certResolver: cloudflare
gui-https-2-Calibre:
rule: ( Host(`cwa.keithsolomon.net`) )
service: gui-https-2-Calibre
tls:
certResolver: cloudflare
gui-https-21-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-21-Tautulli
tls:
certResolver: cloudflare
gui-https-22-Listenarr:
rule: ( Host(`listen.keithsolomon.net`) )
service: gui-https-22-Listenarr
tls:
certResolver: cloudflare
gui-https-23-Seerr:
rule: ( Host(`seerr.keithsolomon.net`) )
service: gui-https-23-Seerr
tls:
certResolver: cloudflare
gui-https-24-Ironpad:
rule: ( Host(`pm.keithsolomon.net`) )
service: gui-https-24-Ironpad
tls:
certResolver: cloudflare
gui-https-25-A11yTester:
rule: ( Host(`pw-a11y.keithsolomon.net`) )
service: gui-https-25-A11yTester
tls:
certResolver: cloudflare
gui-https-26-Beszel:
rule: ( Host(`beszel.keithsolomon.net`) )
service: gui-https-26-Beszel
tls:
certResolver: cloudflare
gui-https-27-FoundryVTT:
rule: ( Host(`foundry.keithsolomon.net`) )
service: gui-https-27-FoundryVTT
tls:
certResolver: cloudflare
gui-https-28-SolidTime:
rule: ( Host(`time.keithsolomon.net`) )
service: gui-https-28-SolidTime
tls:
certResolver: cloudflare
gui-https-29-Grafana:
rule: ( Host(`grafana.keithsolomon.net`) )
service: gui-https-29-Grafana
tls:
certResolver: cloudflare
gui-https-3-KaraKeep:
rule: ( Host(`kara.keithsolomon.net`) )
service: gui-https-3-KaraKeep
tls:
certResolver: cloudflare
gui-https-30-DroppedNeedle:
rule: ( Host(`needle.keithsolomon.net`) )
service: gui-https-30-DroppedNeedle
tls:
certResolver: cloudflare
gui-https-31-Grafana-OTLP:
rule: (( Host(`grafana.keithsolomon.net`) ) && PathPrefix(`/otlp`))
service: gui-https-31-Grafana-OTLP
tls:
certResolver: cloudflare
gui-https-4-Duplicati:
rule: ( Host(`backups.keithsolomon.net`) )
service: gui-https-4-Duplicati
tls:
certResolver: cloudflare
gui-https-7-Paperless:
rule: ( Host(`paperless.keithsolomon.net`) )
service: gui-https-7-Paperless
tls:
certResolver: cloudflare
gui-https-8-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-8-Tautulli
tls:
certResolver: cloudflare
gui-https-9-YTDL:
rule: ( Host(`ytdl.keithsolomon.net`) )
service: gui-https-9-YTDL
tls:
certResolver: cloudflare
services:
gui-https-10-CommaFeed:
loadBalancer:
servers:
- url: http://192.168.2.23:8082
gui-https-11-OpenGist:
loadBalancer:
servers:
- url: http://192.168.2.23:6157
gui-https-12-PromptBase:
loadBalancer:
servers:
- url: http://192.168.2.23:4321
gui-https-13-Uptime-Kuma:
loadBalancer:
servers:
- url: http://192.168.2.23:3031
gui-https-14-Emby:
loadBalancer:
servers:
- url: http://192.168.2.51:8096
gui-https-15-Plex:
loadBalancer:
servers:
- url: http://192.168.2.51:32400
gui-https-18-Termix:
loadBalancer:
servers:
- url: http://192.168.2.51:8182
gui-https-19-BillTrak:
loadBalancer:
servers:
- url: http://192.168.2.23:8989
gui-https-2-Calibre:
loadBalancer:
servers:
- url: http://192.168.2.51:8083
gui-https-21-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181/home
gui-https-22-Listenarr:
loadBalancer:
servers:
- url: http://192.168.2.9:5000
gui-https-23-Seerr:
loadBalancer:
servers:
- url: http://192.168.2.51:5055
gui-https-24-Ironpad:
loadBalancer:
servers:
- url: http://192.168.2.23:2828/
gui-https-25-A11yTester:
loadBalancer:
servers:
- url: http://192.168.2.9:3001
gui-https-26-Beszel:
loadBalancer:
servers:
- url: http://192.168.2.9:8090/
gui-https-27-FoundryVTT:
loadBalancer:
servers:
- url: http://192.168.2.23:30000
gui-https-28-SolidTime:
loadBalancer:
servers:
- url: http://192.168.2.23:8580
gui-https-29-Grafana:
loadBalancer:
servers:
- url: http://192.168.2.18:3000
gui-https-3-KaraKeep:
loadBalancer:
servers:
- url: http://192.168.2.51:3849
gui-https-30-DroppedNeedle:
loadBalancer:
servers:
- url: http://192.168.2.17:8688
gui-https-31-Grafana-OTLP:
loadBalancer:
servers:
- url: http://192.168.2.18:4318
gui-https-4-Duplicati:
loadBalancer:
servers:
- url: http://192.168.2.51:8200
gui-https-7-Paperless:
loadBalancer:
servers:
- url: http://192.168.2.51:8010
gui-https-8-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181
gui-https-9-YTDL:
loadBalancer:
servers:
- url: http://192.168.2.51:8998
middlewares:
https-redirect:
redirectScheme:
scheme: https
@@ -0,0 +1,236 @@
http:
routers:
gui-https-10-CommaFeed:
rule: ( Host(`commafeed.keithsolomon.net`) )
service: gui-https-10-CommaFeed
tls:
certResolver: cloudflare
gui-https-11-OpenGist:
rule: ( Host(`gist.keithsolomon.net`) )
service: gui-https-11-OpenGist
tls:
certResolver: cloudflare
gui-https-12-PromptBase:
rule: ( Host(`prompts.keithsolomon.net`) )
service: gui-https-12-PromptBase
tls:
certResolver: cloudflare
gui-https-13-Uptime-Kuma:
rule: ( Host(`kuma.keithsolomon.net`) )
service: gui-https-13-Uptime-Kuma
tls:
certResolver: cloudflare
gui-https-14-Emby:
rule: ( Host(`emby.keithsolomon.net`) )
service: gui-https-14-Emby
tls:
certResolver: cloudflare
gui-https-15-Plex:
rule: ( Host(`plex.keithsolomon.net`) )
service: gui-https-15-Plex
tls:
certResolver: cloudflare
gui-https-18-Termix:
rule: ( Host(`term.keithsolomon.net`) )
service: gui-https-18-Termix
tls:
certResolver: cloudflare
gui-https-19-BillTrak:
rule: ( Host(`bills.keithsolomon.net`) )
service: gui-https-19-BillTrak
tls:
certResolver: cloudflare
gui-https-2-Calibre:
rule: ( Host(`cwa.keithsolomon.net`) )
service: gui-https-2-Calibre
tls:
certResolver: cloudflare
gui-https-21-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-21-Tautulli
tls:
certResolver: cloudflare
gui-https-22-Listenarr:
rule: ( Host(`listen.keithsolomon.net`) )
service: gui-https-22-Listenarr
tls:
certResolver: cloudflare
gui-https-23-Seerr:
rule: ( Host(`seerr.keithsolomon.net`) )
service: gui-https-23-Seerr
tls:
certResolver: cloudflare
gui-https-24-Ironpad:
rule: ( Host(`pm.keithsolomon.net`) )
service: gui-https-24-Ironpad
tls:
certResolver: cloudflare
gui-https-25-A11yTester:
rule: ( Host(`pw-a11y.keithsolomon.net`) )
service: gui-https-25-A11yTester
tls:
certResolver: cloudflare
gui-https-26-Beszel:
rule: ( Host(`beszel.keithsolomon.net`) )
service: gui-https-26-Beszel
tls:
certResolver: cloudflare
gui-https-27-FoundryVTT:
rule: ( Host(`foundry.keithsolomon.net`) )
service: gui-https-27-FoundryVTT
tls:
certResolver: cloudflare
gui-https-28-SolidTime:
rule: ( Host(`time.keithsolomon.net`) )
service: gui-https-28-SolidTime
tls:
certResolver: cloudflare
gui-https-29-Grafana:
rule: ( Host(`grafana.keithsolomon.net`) )
service: gui-https-29-Grafana
tls:
certResolver: cloudflare
gui-https-3-KaraKeep:
rule: ( Host(`kara.keithsolomon.net`) )
service: gui-https-3-KaraKeep
tls:
certResolver: cloudflare
gui-https-30-DroppedNeedle:
rule: ( Host(`needle.keithsolomon.net`) )
service: gui-https-30-DroppedNeedle
tls:
certResolver: cloudflare
gui-https-31-Grafana-OTLP:
rule: (( Host(`grafana.keithsolomon.net`) ) && PathPrefix(`/otlp`))
service: gui-https-31-Grafana-OTLP
tls:
certResolver: cloudflare
gui-https-4-Duplicati:
rule: ( Host(`backups.keithsolomon.net`) )
service: gui-https-4-Duplicati
tls:
certResolver: cloudflare
gui-https-7-Paperless:
rule: ( Host(`paperless.keithsolomon.net`) )
service: gui-https-7-Paperless
tls:
certResolver: cloudflare
gui-https-8-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-8-Tautulli
tls:
certResolver: cloudflare
gui-https-9-YTDL:
rule: ( Host(`ytdl.keithsolomon.net`) )
service: gui-https-9-YTDL
tls:
certResolver: cloudflare
services:
gui-https-10-CommaFeed:
loadBalancer:
servers:
- url: http://192.168.2.23:8082
gui-https-11-OpenGist:
loadBalancer:
servers:
- url: http://192.168.2.23:6157
gui-https-12-PromptBase:
loadBalancer:
servers:
- url: http://192.168.2.23:4321
gui-https-13-Uptime-Kuma:
loadBalancer:
servers:
- url: http://192.168.2.23:3031
gui-https-14-Emby:
loadBalancer:
servers:
- url: http://192.168.2.51:8096
gui-https-15-Plex:
loadBalancer:
servers:
- url: http://192.168.2.51:32400
gui-https-18-Termix:
loadBalancer:
servers:
- url: http://192.168.2.51:8182
gui-https-19-BillTrak:
loadBalancer:
servers:
- url: http://192.168.2.23:8989
gui-https-2-Calibre:
loadBalancer:
servers:
- url: http://192.168.2.51:8083
gui-https-21-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181/home
gui-https-22-Listenarr:
loadBalancer:
servers:
- url: http://192.168.2.9:5000
gui-https-23-Seerr:
loadBalancer:
servers:
- url: http://192.168.2.51:5055
gui-https-24-Ironpad:
loadBalancer:
servers:
- url: http://192.168.2.23:2828/
gui-https-25-A11yTester:
loadBalancer:
servers:
- url: http://192.168.2.9:3001
gui-https-26-Beszel:
loadBalancer:
servers:
- url: http://192.168.2.9:8090/
gui-https-27-FoundryVTT:
loadBalancer:
servers:
- url: http://192.168.2.23:30000
gui-https-28-SolidTime:
loadBalancer:
servers:
- url: http://192.168.2.23:8580
gui-https-29-Grafana:
loadBalancer:
servers:
- url: http://192.168.2.18:3000
gui-https-3-KaraKeep:
loadBalancer:
servers:
- url: http://192.168.2.51:3849
gui-https-30-DroppedNeedle:
loadBalancer:
servers:
- url: http://192.168.2.17:8688
gui-https-31-Grafana-OTLP:
loadBalancer:
servers:
- url: http://192.168.2.18:4318
gui-https-4-Duplicati:
loadBalancer:
servers:
- url: http://192.168.2.51:8200
gui-https-7-Paperless:
loadBalancer:
servers:
- url: http://192.168.2.51:8010
gui-https-8-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181
gui-https-9-YTDL:
loadBalancer:
servers:
- url: http://192.168.2.51:8998
middlewares:
https-redirect:
redirectScheme:
scheme: https
otlp-strip:
stripPrefix:
prefixes:
- /otlp
@@ -0,0 +1,239 @@
http:
routers:
gui-https-10-CommaFeed:
rule: ( Host(`commafeed.keithsolomon.net`) )
service: gui-https-10-CommaFeed
tls:
certResolver: cloudflare
gui-https-11-OpenGist:
rule: ( Host(`gist.keithsolomon.net`) )
service: gui-https-11-OpenGist
tls:
certResolver: cloudflare
gui-https-12-PromptBase:
rule: ( Host(`prompts.keithsolomon.net`) )
service: gui-https-12-PromptBase
tls:
certResolver: cloudflare
gui-https-13-Uptime-Kuma:
rule: ( Host(`kuma.keithsolomon.net`) )
service: gui-https-13-Uptime-Kuma
tls:
certResolver: cloudflare
gui-https-14-Emby:
rule: ( Host(`emby.keithsolomon.net`) )
service: gui-https-14-Emby
tls:
certResolver: cloudflare
gui-https-15-Plex:
rule: ( Host(`plex.keithsolomon.net`) )
service: gui-https-15-Plex
tls:
certResolver: cloudflare
gui-https-18-Termix:
rule: ( Host(`term.keithsolomon.net`) )
service: gui-https-18-Termix
tls:
certResolver: cloudflare
gui-https-19-BillTrak:
rule: ( Host(`bills.keithsolomon.net`) )
service: gui-https-19-BillTrak
tls:
certResolver: cloudflare
gui-https-2-Calibre:
rule: ( Host(`cwa.keithsolomon.net`) )
service: gui-https-2-Calibre
tls:
certResolver: cloudflare
gui-https-21-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-21-Tautulli
tls:
certResolver: cloudflare
gui-https-22-Listenarr:
rule: ( Host(`listen.keithsolomon.net`) )
service: gui-https-22-Listenarr
tls:
certResolver: cloudflare
gui-https-23-Seerr:
rule: ( Host(`seerr.keithsolomon.net`) )
service: gui-https-23-Seerr
tls:
certResolver: cloudflare
gui-https-24-Ironpad:
rule: ( Host(`pm.keithsolomon.net`) )
service: gui-https-24-Ironpad
tls:
certResolver: cloudflare
gui-https-25-A11yTester:
rule: ( Host(`pw-a11y.keithsolomon.net`) )
service: gui-https-25-A11yTester
tls:
certResolver: cloudflare
gui-https-26-Beszel:
rule: ( Host(`beszel.keithsolomon.net`) )
service: gui-https-26-Beszel
tls:
certResolver: cloudflare
gui-https-27-FoundryVTT:
rule: ( Host(`foundry.keithsolomon.net`) )
service: gui-https-27-FoundryVTT
tls:
certResolver: cloudflare
gui-https-28-SolidTime:
rule: ( Host(`time.keithsolomon.net`) )
service: gui-https-28-SolidTime
tls:
certResolver: cloudflare
gui-https-29-Grafana:
rule: ( Host(`grafana.keithsolomon.net`) )
service: gui-https-29-Grafana
tls:
certResolver: cloudflare
gui-https-3-KaraKeep:
rule: ( Host(`kara.keithsolomon.net`) )
service: gui-https-3-KaraKeep
tls:
certResolver: cloudflare
gui-https-30-DroppedNeedle:
rule: ( Host(`needle.keithsolomon.net`) )
service: gui-https-30-DroppedNeedle
tls:
certResolver: cloudflare
gui-https-31-Grafana-OTLP:
rule: (( Host(`grafana.keithsolomon.net`) ) && PathPrefix(`/otlp`))
service: gui-https-31-Grafana-OTLP
tls:
certResolver: cloudflare
gui-https-4-Duplicati:
rule: ( Host(`backups.keithsolomon.net`) )
service: gui-https-4-Duplicati
tls:
certResolver: cloudflare
gui-https-7-Paperless:
rule: ( Host(`paperless.keithsolomon.net`) )
service: gui-https-7-Paperless
tls:
certResolver: cloudflare
gui-https-8-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-8-Tautulli
tls:
certResolver: cloudflare
gui-https-9-YTDL:
rule: ( Host(`ytdl.keithsolomon.net`) )
service: gui-https-9-YTDL
tls:
certResolver: cloudflare
services:
gui-https-10-CommaFeed:
loadBalancer:
servers:
- url: http://192.168.2.23:8082
gui-https-11-OpenGist:
loadBalancer:
servers:
- url: http://192.168.2.23:6157
gui-https-12-PromptBase:
loadBalancer:
servers:
- url: http://192.168.2.23:4321
gui-https-13-Uptime-Kuma:
loadBalancer:
servers:
- url: http://192.168.2.23:3031
gui-https-14-Emby:
loadBalancer:
servers:
- url: http://192.168.2.51:8096
gui-https-15-Plex:
loadBalancer:
servers:
- url: http://192.168.2.51:32400
gui-https-18-Termix:
loadBalancer:
servers:
- url: http://192.168.2.51:8182
gui-https-19-BillTrak:
loadBalancer:
servers:
- url: http://192.168.2.23:8989
gui-https-2-Calibre:
loadBalancer:
servers:
- url: http://192.168.2.51:8083
gui-https-21-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181/home
gui-https-22-Listenarr:
loadBalancer:
servers:
- url: http://192.168.2.9:5000
gui-https-23-Seerr:
loadBalancer:
servers:
- url: http://192.168.2.51:5055
gui-https-24-Ironpad:
loadBalancer:
servers:
- url: http://192.168.2.23:2828/
gui-https-25-A11yTester:
loadBalancer:
servers:
- url: http://192.168.2.9:3001
gui-https-26-Beszel:
loadBalancer:
servers:
- url: http://192.168.2.9:8090/
gui-https-27-FoundryVTT:
loadBalancer:
servers:
- url: http://192.168.2.23:30000
gui-https-28-SolidTime:
loadBalancer:
servers:
- url: http://192.168.2.23:8580
gui-https-29-Grafana:
loadBalancer:
servers:
- url: http://192.168.2.18:3000
gui-https-3-KaraKeep:
loadBalancer:
servers:
- url: http://192.168.2.51:3849
gui-https-30-DroppedNeedle:
loadBalancer:
servers:
- url: http://192.168.2.17:8688
gui-https-31-Grafana-OTLP:
loadBalancer:
servers:
- url: http://192.168.2.18:4318
gui-https-4-Duplicati:
loadBalancer:
servers:
- url: http://192.168.2.51:8200
gui-https-7-Paperless:
loadBalancer:
servers:
- url: http://192.168.2.51:8010
gui-https-8-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181
gui-https-9-YTDL:
loadBalancer:
servers:
- url: http://192.168.2.51:8998
middlewares:
https-redirect:
redirectScheme:
scheme: https
otlp-strip:
stripPrefix:
prefixes:
- /otlp
otlp-auth:
basicAuth:
usersFile: /etc/traefik/otlp.htpasswd
+1
View File
@@ -0,0 +1 @@
836e0f7a9435e922292e019ed3200338777a0c5caf051ecbc362f5cf82941350
+13
View File
@@ -0,0 +1,13 @@
custom_groups: []
route_overrides:
gui-https-18-Termix: {group: Network, icon_type: auto}
gui-https-19-BillTrak: {group: Home, icon_type: auto}
gui-https-2-Calibre: {group: Media, icon_type: auto}
gui-https-22-Listenarr: {group: Media, icon_type: auto}
gui-https-23-Seerr: {group: Media, icon_type: auto}
gui-https-24-Ironpad: {group: Dev, icon_type: auto}
gui-https-25-A11y Tester: {group: Dev, icon_type: auto}
gui-https-26-Beszel: {group: Monitoring, icon_type: auto}
gui-https-28-SolidTime: {group: Dev, icon_type: auto}
gui-https-4-Duplicati: {group: Files & Data, icon_type: auto}
gui-https-9-YTDL: {group: Media, icon_type: auto}
View File
+69
View File
@@ -0,0 +1,69 @@
domains:
- keithsolomon.net
cert_resolver: cloudflare
traefik_api_url: https://tfk.keithsolomon.net
auth_enabled: true
password_hash: $2b$12$Y1TF4N1dl0sWi8NsybNY8.UWjh3JglgJV6mid0tWHW7q5rGWPb2uC
visible_tabs:
dashboard: true
routemap: true
docker: true
kubernetes: false
swarm: false
nomad: false
ecs: false
consulcatalog: false
redis: false
etcd: false
consul: false
zookeeper: false
http_provider: false
file_external: false
certs: true
tls: false
crowdsec: false
plugins: true
logs: true
must_change_password: false
setup_complete: true
otp_secret: ''
otp_enabled: false
disabled_routes: {}
api_keys: []
api_key_enabled: false
self_route:
domain: ''
service_url: ''
router_name: traefik-manager
entry_point: ''
acme_json_path: ''
access_log_path: ''
static_config_path: ''
oidc_enabled: false
oidc_provider_url: ''
oidc_client_id: ''
oidc_client_secret: ''
oidc_display_name: OIDC
oidc_allowed_emails: ''
oidc_allowed_groups: ''
oidc_allow_any_authenticated: false
oidc_groups_claim: groups
webhook_url: ''
webhook_type: discord
webhook_username: ''
webhook_password: ''
crowdsec_lapi_url: ''
crowdsec_api_key: ''
crowdsec_machine_id: ''
crowdsec_machine_password: ''
traefik_api_user: ''
traefik_api_password: ''
git_backup_enabled: false
git_backup_repo: ''
git_backup_branch: main
git_backup_username: ''
git_backup_token: ''
git_backup_commit_message: 'traefik-manager: {action} at {timestamp}'
git_backup_auto_push: true
agent_api_rate_limit: 30
backup_keep_count: 0
+9
View File
@@ -0,0 +1,9 @@
- {msg: Login from 172.31.0.9, ts: '2026-04-19 10:07:55', type: info}
- {msg: Login from 206.45.255.176, ts: '2026-05-14 13:09:21', type: info}
- {msg: Middleware otlp-strip created, ts: '2026-07-13 21:05:22', type: success}
- {msg: Middleware otlp-auth created, ts: '2026-07-13 21:08:38', type: success}
- {msg: Route gui-https-31-Grafana-OTLP updated, ts: '2026-07-13 21:09:44', type:
success}
- {msg: Middleware otlp-auth created, ts: '2026-07-13 22:20:04', type: success}
- {msg: Route gui-https-31-Grafana-OTLP updated, ts: '2026-07-13 22:20:40', type:
success}
+244
View File
@@ -0,0 +1,244 @@
http:
routers:
gui-https-10-CommaFeed:
rule: ( Host(`commafeed.keithsolomon.net`) )
service: gui-https-10-CommaFeed
tls:
certResolver: cloudflare
gui-https-11-OpenGist:
rule: ( Host(`gist.keithsolomon.net`) )
service: gui-https-11-OpenGist
tls:
certResolver: cloudflare
gui-https-12-PromptBase:
rule: ( Host(`prompts.keithsolomon.net`) )
service: gui-https-12-PromptBase
tls:
certResolver: cloudflare
gui-https-13-Uptime-Kuma:
rule: ( Host(`kuma.keithsolomon.net`) )
service: gui-https-13-Uptime-Kuma
tls:
certResolver: cloudflare
gui-https-14-Emby:
rule: ( Host(`emby.keithsolomon.net`) )
service: gui-https-14-Emby
tls:
certResolver: cloudflare
gui-https-15-Plex:
rule: ( Host(`plex.keithsolomon.net`) )
service: gui-https-15-Plex
tls:
certResolver: cloudflare
gui-https-18-Termix:
rule: ( Host(`term.keithsolomon.net`) )
service: gui-https-18-Termix
tls:
certResolver: cloudflare
gui-https-19-BillTrak:
rule: ( Host(`bills.keithsolomon.net`) )
service: gui-https-19-BillTrak
tls:
certResolver: cloudflare
gui-https-2-Calibre:
rule: ( Host(`cwa.keithsolomon.net`) )
service: gui-https-2-Calibre
tls:
certResolver: cloudflare
gui-https-21-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-21-Tautulli
tls:
certResolver: cloudflare
gui-https-22-Listenarr:
rule: ( Host(`listen.keithsolomon.net`) )
service: gui-https-22-Listenarr
tls:
certResolver: cloudflare
gui-https-23-Seerr:
rule: ( Host(`seerr.keithsolomon.net`) )
service: gui-https-23-Seerr
tls:
certResolver: cloudflare
gui-https-24-Ironpad:
rule: ( Host(`pm.keithsolomon.net`) )
service: gui-https-24-Ironpad
tls:
certResolver: cloudflare
gui-https-25-A11yTester:
rule: ( Host(`pw-a11y.keithsolomon.net`) )
service: gui-https-25-A11yTester
tls:
certResolver: cloudflare
gui-https-26-Beszel:
rule: ( Host(`beszel.keithsolomon.net`) )
service: gui-https-26-Beszel
tls:
certResolver: cloudflare
gui-https-27-FoundryVTT:
rule: ( Host(`foundry.keithsolomon.net`) )
service: gui-https-27-FoundryVTT
tls:
certResolver: cloudflare
gui-https-28-SolidTime:
rule: ( Host(`time.keithsolomon.net`) )
service: gui-https-28-SolidTime
tls:
certResolver: cloudflare
gui-https-29-Grafana:
rule: ( Host(`grafana.keithsolomon.net`) )
service: gui-https-29-Grafana
tls:
certResolver: cloudflare
gui-https-3-KaraKeep:
rule: ( Host(`kara.keithsolomon.net`) )
service: gui-https-3-KaraKeep
tls:
certResolver: cloudflare
gui-https-30-DroppedNeedle:
rule: ( Host(`needle.keithsolomon.net`) )
service: gui-https-30-DroppedNeedle
tls:
certResolver: cloudflare
gui-https-31-Grafana-OTLP:
rule: (( Host(`grafana.keithsolomon.net`) ) && PathPrefix(`/otlp`))
entryPoints:
- https
service: gui-https-31-Grafana-OTLP-service
middlewares:
- otlp-strip
- otlp-auth
tls:
certResolver: cloudflare
gui-https-4-Duplicati:
rule: ( Host(`backups.keithsolomon.net`) )
service: gui-https-4-Duplicati
tls:
certResolver: cloudflare
gui-https-7-Paperless:
rule: ( Host(`paperless.keithsolomon.net`) )
service: gui-https-7-Paperless
tls:
certResolver: cloudflare
gui-https-8-Tautulli:
rule: ( Host(`tautulli.keithsolomon.net`) )
service: gui-https-8-Tautulli
tls:
certResolver: cloudflare
gui-https-9-YTDL:
rule: ( Host(`ytdl.keithsolomon.net`) )
service: gui-https-9-YTDL
tls:
certResolver: cloudflare
services:
gui-https-10-CommaFeed:
loadBalancer:
servers:
- url: http://192.168.2.23:8082
gui-https-11-OpenGist:
loadBalancer:
servers:
- url: http://192.168.2.23:6157
gui-https-12-PromptBase:
loadBalancer:
servers:
- url: http://192.168.2.23:4321
gui-https-13-Uptime-Kuma:
loadBalancer:
servers:
- url: http://192.168.2.23:3031
gui-https-14-Emby:
loadBalancer:
servers:
- url: http://192.168.2.51:8096
gui-https-15-Plex:
loadBalancer:
servers:
- url: http://192.168.2.51:32400
gui-https-18-Termix:
loadBalancer:
servers:
- url: http://192.168.2.51:8182
gui-https-19-BillTrak:
loadBalancer:
servers:
- url: http://192.168.2.23:8989
gui-https-2-Calibre:
loadBalancer:
servers:
- url: http://192.168.2.51:8083
gui-https-21-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181/home
gui-https-22-Listenarr:
loadBalancer:
servers:
- url: http://192.168.2.9:5000
gui-https-23-Seerr:
loadBalancer:
servers:
- url: http://192.168.2.51:5055
gui-https-24-Ironpad:
loadBalancer:
servers:
- url: http://192.168.2.23:2828/
gui-https-25-A11yTester:
loadBalancer:
servers:
- url: http://192.168.2.9:3001
gui-https-26-Beszel:
loadBalancer:
servers:
- url: http://192.168.2.9:8090/
gui-https-27-FoundryVTT:
loadBalancer:
servers:
- url: http://192.168.2.23:30000
gui-https-28-SolidTime:
loadBalancer:
servers:
- url: http://192.168.2.23:8580
gui-https-29-Grafana:
loadBalancer:
servers:
- url: http://192.168.2.18:3000
gui-https-3-KaraKeep:
loadBalancer:
servers:
- url: http://192.168.2.51:3849
gui-https-30-DroppedNeedle:
loadBalancer:
servers:
- url: http://192.168.2.17:8688
gui-https-4-Duplicati:
loadBalancer:
servers:
- url: http://192.168.2.51:8200
gui-https-7-Paperless:
loadBalancer:
servers:
- url: http://192.168.2.51:8010
gui-https-8-Tautulli:
loadBalancer:
servers:
- url: http://192.168.2.51:8181
gui-https-9-YTDL:
loadBalancer:
servers:
- url: http://192.168.2.51:8998
gui-https-31-Grafana-OTLP-service:
loadBalancer:
servers:
- url: http://192.168.2.18:4318
middlewares:
https-redirect:
redirectScheme:
scheme: https
otlp-strip:
stripPrefix:
prefixes:
- /otlp
otlp-auth:
basicAuth:
usersFile: /etc/traefik/otlp.htpasswd
+1
View File
@@ -0,0 +1 @@
keith:$2y$05$DudzvcuCAb7QY3xgFCi7euRALAqTOmt4y/riHuQj49njl.ETqGUZW
+95
View File
@@ -0,0 +1,95 @@
global:
# Send anonymous usage data
sendAnonymousUsage: true
checkNewVersion: true
api:
dashboard: true
debug: true
disableDashboardAd: true
log:
filePath: "/logs/logfile.log"
level: INFO
format: common
accessLog:
filePath: "/logs/access.log"
# bufferingSize: 20
fields:
defaultMode: keep
names:
StartUTC: drop
entryPoints:
http:
address: ":80"
http:
redirections:
entryPoint:
to: https
scheme: https
permanent: true
https:
address: ":443"
http:
tls:
# Generate a wildcard domain certificate
certResolver: cloudflare
domains:
- main: '*.keithsolomon.net'
forwardedHeaders:
trustedIPs:
- "173.245.48.0/20"
- "103.21.244.0/22"
- "103.22.200.0/22"
- "103.31.4.0/22"
- "141.101.64.0/18"
- "108.162.192.0/18"
- "190.93.240.0/20"
- "188.114.96.0/20"
- "197.234.240.0/22"
- "198.41.128.0/17"
- "162.158.0.0/15"
- "104.16.0.0/13"
- "104.24.0.0/14"
- "172.64.0.0/13"
- "131.0.72.0/22"
- "2400:cb00::/32"
- "2606:4700::/32"
- "2803:f800::/32"
- "2405:b500::/32"
- "2405:8100::/32"
- "2a06:98c0::/29"
- "2c0f:f248::/32"
serversTransport:
insecureSkipVerify: true
providers:
providersThrottleDuration: 2s
docker:
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false
watch: true
network: proxy
file:
directory: "/traefik_config"
watch: true
certificatesResolvers:
cloudflare:
acme:
email: ksolomon@gmail.com
storage: /traefik_cert/acme.json
dnsChallenge:
provider: cloudflare
resolvers:
- "1.1.1.1:53"
- "1.0.0.1:53"