add traefik

This commit is contained in:
2025-08-02 23:06:46 -04:00
parent f1272fc80f
commit a8802492f1
28 changed files with 411 additions and 457 deletions

View File

@@ -23,3 +23,9 @@
TZ: "{{ TZ }}"
PUID: "{{ PUID }}"
PGID: "{{ PGID }}"
labels:
traefik.enable: "true"
traefik.http.routers.code.rule: Host(`code.fntz.net`)
traefik.http.routers.code.entrypoints: webSecure
traefik.http.routers.code.tls.certresolver: letsencrypt
traefik.http.services.code.loadbalancer.server.port: "8443"

View File

@@ -10,3 +10,9 @@
- name: homelab
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
labels:
traefik.enable: "true"
traefik.http.routers.cup.rule: Host(`cup.fntz.net`)
traefik.http.routers.cup.entrypoints: webSecure
traefik.http.routers.cup.tls.certresolver: letsencrypt
traefik.http.services.cup.loadbalancer.server.port: "8000"

View File

@@ -9,3 +9,9 @@
- name: homelab
volumes:
- "/:/mnt/host:ro"
labels:
traefik.enable: "true"
traefik.http.routers.dash.rule: Host(`stats.fntz.net`)
traefik.http.routers.dash.entrypoints: webSecure
traefik.http.routers.dash.tls.certresolver: letsencrypt
traefik.http.services.dash.loadbalancer.server.port: "3001"

View File

@@ -12,3 +12,9 @@
env:
DOZZLE_ENABLE_ACTIONS: "{{ DOZZLE_ACTIONS }}"
DOZZLE_ENABLE_SHELL: "{{ DOZZLE_SHELL }}"
labels:
traefik.enable: "true"
traefik.http.routers.dz.rule: Host(`logs.fntz.net`)
traefik.http.routers.dz.entrypoints: webSecure
traefik.http.routers.dz.tls.certresolver: letsencrypt
traefik.http.services.dz.loadbalancer.server.port: "8080"

View File

@@ -46,3 +46,9 @@
env:
DATABASE_URL: "postgres://drop:drop@drop_postgres:5432/drop"
GIANT_BOMB_API_KEY: "{{ DROP_GIANT_BOMB_API_KEY }}"
labels:
traefik.enable: "true"
traefik.http.routers.drop.rule: Host(`games.fntz.net`)
traefik.http.routers.drop.entrypoints: webSecure
traefik.http.routers.drop.tls.certresolver: letsencrypt
traefik.http.services.drop.loadbalancer.server.port: "3000"

View File

@@ -7,3 +7,9 @@
recreate: true
networks:
- name: homelab
labels:
traefik.enable: "true"
traefik.http.routers.draw.rule: Host(`draw.fntz.net`)
traefik.http.routers.draw.entrypoints: webSecure
traefik.http.routers.draw.tls.certresolver: letsencrypt
traefik.http.services.draw.loadbalancer.server.port: "3000"

View File

@@ -25,3 +25,9 @@
- "{{ data_dir }}/glance/config:/app/config"
- "{{ data_dir }}/glance/assets:/app/assets"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
labels:
traefik.enable: "true"
traefik.http.routers.glance.rule: Host(`fntz.net`)
traefik.http.routers.glance.entrypoints: webSecure
traefik.http.routers.glance.tls.certresolver: letsencrypt
traefik.http.services.glance.loadbalancer.server.port: "8080"

View File

@@ -23,3 +23,9 @@
- "{{ data_dir }}/homeassistant:/config"
- "/etc/localtime:/etc/localtime"
- "/run/dbus:/run/dbus:ro"
labels:
traefik.enable: "true"
traefik.http.routers.ha.rule: Host(`ha.fntz.net`)
traefik.http.routers.ha.entrypoints: webSecure
traefik.http.routers.ha.tls.certresolver: letsencrypt
traefik.http.services.ha.loadbalancer.server.url: "http://{{ TRAEFIK_HOST_IP }}:8123"

View File

@@ -15,3 +15,9 @@
recreate: true
volumes:
- "{{ data_dir }}/homebridge:/homebridge"
labels:
traefik.enable: "true"
traefik.http.routers.bridge.rule: Host(`bridge.fntz.net`)
traefik.http.routers.bridge.entrypoints: webSecure
traefik.http.routers.bridge.tls.certresolver: letsencrypt
traefik.http.services.bridge.loadbalancer.server.url: "http://{{ TRAEFIK_HOST_IP }}:8581"

View File

@@ -61,3 +61,9 @@
REDIS_HOSTNAME: "immich_redis"
DB_PASSWORD: "{{ IMMICH_DB_PASSWORD }}"
DB_USERNAME: "{{ IMMICH_DB_USERNAME }}"
labels:
traefik.enable: "true"
traefik.http.routers.img.rule: Host(`img.fntz.net`)
traefik.http.routers.img.entrypoints: webSecure
traefik.http.routers.img.tls.certresolver: letsencrypt
traefik.http.services.img.loadbalancer.server.port: "2283"

View File

@@ -23,3 +23,9 @@
PUID: "{{ PUID }}"
PGID: "{{ PGID }}"
TZ: "{{ TZ }}"
labels:
traefik.enable: "true"
traefik.http.routers.jf.rule: Host(`jf.fntz.net`)
traefik.http.routers.jf.entrypoints: webSecure
traefik.http.routers.jf.tls.certresolver: letsencrypt
traefik.http.services.jf.loadbalancer.server.port: "8096"

View File

@@ -26,6 +26,12 @@
- "{{ data_dir }}/monitoring/grafana:/var/lib/grafana"
env:
GF_AUTH_ANONYMOUS_ENABLED: "{{ GRAFANA_AUTH_ANONYMOUS_ENABLED }}"
labels:
traefik.enable: "true"
traefik.http.routers.graf.rule: Host(`graf.fntz.net`)
traefik.http.routers.graf.entrypoints: webSecure
traefik.http.routers.graf.tls.certresolver: letsencrypt
traefik.http.services.graf.loadbalancer.server.port: "3000"
- name: Copy Prometheus Config
template:

View File

@@ -17,3 +17,9 @@
volumes:
- "{{ data_dir }}/navidrome:/data"
- "{{ NAVIDROME_MUSIC_PATH }}:/music:ro"
labels:
traefik.enable: "true"
traefik.http.routers.music.rule: Host(`music.fntz.net`)
traefik.http.routers.music.entrypoints: webSecure
traefik.http.routers.music.tls.certresolver: letsencrypt
traefik.http.services.music.loadbalancer.server.port: "4533"

View File

@@ -23,3 +23,8 @@
env:
UPSTREAM_BASE_URL: "{{ NTFY_UPSTREAM_BASE_URL }}"
BASE_URL: "{{ NTFY_BASE_URL }}"
labels:
traefik.enable: "true"
traefik.http.routers.ntfy.rule: Host(`push.fntz.net`)
traefik.http.routers.ntfy.entrypoints: webSecure
traefik.http.routers.ntfy.tls.certresolver: letsencrypt

View File

@@ -23,3 +23,9 @@
TZ: "{{ TZ }}"
PUID: "{{ PUID }}"
PGID: "{{ PGID }}"
labels:
traefik.enable: "true"
traefik.http.routers.nzb.rule: Host(`nzb.fntz.net`)
traefik.http.routers.nzb.entrypoints: webSecure
traefik.http.routers.nzb.tls.certresolver: letsencrypt
traefik.http.services.nzb.loadbalancer.server.port: "6789"

View File

@@ -22,3 +22,9 @@
env:
FTLCONF_webserver_api_password: "{{ PIHOLE_FTLCONF_WEBSERVER_API_PASSWORD }}"
TZ: "{{ TZ }}"
labels:
traefik.enable: "true"
traefik.http.routers.pihole.rule: Host(`pihole.fntz.net`)
traefik.http.routers.pihole.entrypoints: webSecure
traefik.http.routers.pihole.tls.certresolver: letsencrypt
traefik.http.services.pihole.loadbalancer.server.port: "80"

View File

@@ -21,3 +21,9 @@
TRUST_PROXY: "{{ POCKETID_TRUST_PROXY }}"
PUID: "{{ PUID }}"
PGID: "{{ PGID }}"
labels:
traefik.enable: "true"
traefik.http.routers.oidc.rule: Host(`oidc.fntz.net`)
traefik.http.routers.oidc.entrypoints: webSecure
traefik.http.routers.oidc.tls.certresolver: letsencrypt
traefik.http.services.oidc.loadbalancer.server.port: "1411"

View File

@@ -61,3 +61,9 @@
OIDC_CLIENT_SECRET: "{{ ROMM_OIDC_CLIENT_SECRET }}"
OIDC_REDIRECT_URL: "{{ ROMM_OIDC_REDIRECT_URL }}"
SERVER_APPLICATION_URL: "{{ ROMM_SERVER_APPLICATION_URL }}"
labels:
traefik.enable: "true"
traefik.http.routers.emu.rule: Host(`emu.fntz.net`)
traefik.http.routers.emu.entrypoints: webSecure
traefik.http.routers.emu.tls.certresolver: letsencrypt
traefik.http.services.emu.loadbalancer.server.port: "8080"

View File

@@ -21,6 +21,12 @@
- "{{ NZBGET_DOWNLOADS_PATH }}:/downloads"
networks:
- name: homelab
labels:
traefik.enable: "true"
traefik.http.routers.radarr.rule: Host(`radarr.fntz.net`)
traefik.http.routers.radarr.entrypoints: webSecure
traefik.http.routers.radarr.tls.certresolver: letsencrypt
traefik.http.services.radarr.loadbalancer.server.port: "7878"
- name: Deploy Sonarr Container
docker_container:
@@ -34,6 +40,12 @@
- "{{ NZBGET_DOWNLOADS_PATH }}:/downloads"
networks:
- name: homelab
labels:
traefik.enable: "true"
traefik.http.routers.sonarr.rule: Host(`sonarr.fntz.net`)
traefik.http.routers.sonarr.entrypoints: webSecure
traefik.http.routers.sonarr.tls.certresolver: letsencrypt
traefik.http.services.sonarr.loadbalancer.server.port: "8989"
- name: Deploy Lidarr Container
docker_container:
@@ -47,3 +59,9 @@
- "{{ NZBGET_DOWNLOADS_PATH }}:/downloads"
networks:
- name: homelab
labels:
traefik.enable: "true"
traefik.http.routers.lidarr.rule: Host(`lidarr.fntz.net`)
traefik.http.routers.lidarr.entrypoints: webSecure
traefik.http.routers.lidarr.tls.certresolver: letsencrypt
traefik.http.services.lidarr.loadbalancer.server.port: "8686"

View File

@@ -1,22 +0,0 @@
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/syncthing"
- name: Deploy Syncthing Docker Container
docker_container:
name: syncthing
image: lscr.io/linuxserver/syncthing:latest
recreate: true
restart_policy: unless-stopped
networks:
- name: homelab
env:
PUID: "{{ PUID }}"
PGID: "{{ PGID }}"
TZ: "{{ TZ }}"
volumes:
- "{{ data_dir }}/syncthing:/config"
- "{{ SYNCTHING_DATA_PATH }}:/data"

View File

@@ -20,3 +20,9 @@
PUID: "{{ PUID }}"
PGID: "{{ PGID }}"
TZ: "{{ TZ }}"
labels:
traefik.enable: "true"
traefik.http.routers.tt.rule: Host(`tt.fntz.net`)
traefik.http.routers.tt.entrypoints: webSecure
traefik.http.routers.tt.tls.certresolver: letsencrypt
traefik.http.services.tt.loadbalancer.server.port: "8181"

View File

@@ -21,3 +21,9 @@
OAUTH_WHITELIST: "{{ TINYAUTH_OAUTH_WHITELIST }}"
APP_TITLE: "{{ TINYAUTH_APP_TITLE }}"
BACKGROUND_IMAGE: "{{ TINYAUTH_BACKGROUND_IMAGE }}"
labels:
traefik.enable: "true"
traefik.http.routers.tinyauth.rule: Host(`auth.fntz.net`)
traefik.http.routers.tt.entrypoints: webSecure
traefik.http.routers.tt.tls.certresolver: letsencrypt
traefik.http.middlewares.tinyauth.forwardauth.address: http://tinyauth:3000/api/auth/traefik

View File

@@ -18,3 +18,9 @@
- "{{ data_dir }}/vaultwarden:/data"
env:
DOMAIN: "{{ VAULTWARDEN_DOMAIN }}"
labels:
traefik.enable: "true"
traefik.http.routers.vw.rule: Host(`vw.fntz.net`)
traefik.http.routers.vw.entrypoints: webSecure
traefik.http.routers.vw.tls.certresolver: letsencrypt
traefik.http.services.vw.loadbalancer.server.port: "80"