organize
Deploy Containers / Prepare (push) Successful in 5s

This commit is contained in:
2026-05-20 20:31:24 -04:00
parent 894be8a440
commit c08dc6b088
40 changed files with 32 additions and 223 deletions
+40
View File
@@ -0,0 +1,40 @@
---
- name: Deploy AudioBookshelf
include_role:
name: docker
vars:
name: audiobookshelf_abs
network_name: "abs"
directories:
- "{{ data_dir }}/audiobookshelf"
- "{{ data_dir }}/audiobookshelf/config"
- "{{ data_dir }}/audiobookshelf/metadata"
image:
name: ghcr.io/advplyr/audiobookshelf
tag: latest
networks:
- name: homelab
- name: abs
volumes:
- "{{ media_path }}/Books/Audiobooks:/audiobooks"
- "{{ data_dir }}/audiobookshelf/config:/config"
- "{{ data_dir }}/audiobookshelf/metadata:/metadata"
env:
TZ: "{{ TZ }}"
labels:
traefik.enable: "true"
traefik.http.routers.audiobookshelf.rule: Host(`abooks.fntz.net`)
traefik.http.routers.audiobookshelf.entrypoints: webSecure
traefik.http.routers.audiobookshelf.tls.certresolver: letsencrypt
traefik.http.services.audiobookshelf.loadbalancer.server.port: "80"
- name: Deploy abs-tract
include_role:
name: docker
vars:
name: audiobookshelf_abs-tract
image:
name: arranhs/abs-tract
tag: latest
networks:
- name: "abs"
+26
View File
@@ -0,0 +1,26 @@
---
- name: Deploy Ersatz
include_role:
name: docker
vars:
name: ersatztv
directories:
- "{{ data_dir }}/ersatz"
image:
name: ghcr.io/ersatztv/ersatztv
tag: latest
networks:
- name: homelab
published_ports:
- "8409:8409"
volumes:
- "{{ data_dir }}/ersatz:/config"
- "{{ media_path }}:/media"
devices:
- /dev/dri:/dev/dri
labels:
traefik.enable: "true"
traefik.http.routers.iptv.rule: Host(`iptv.fntz.net`)
traefik.http.routers.iptv.entrypoints: webSecure
traefik.http.routers.iptv.tls.certresolver: letsencrypt
traefik.http.services.iptv.loadbalancer.server.port: "8409"
+29
View File
@@ -0,0 +1,29 @@
---
- name: Deploy Frigate
include_role:
name: docker
vars:
name: frigate
directories:
- "{{ data_dir }}/frigate"
image:
name: ghcr.io/blakeblackshear/frigate
tag: stable
privileged: true
devices:
- /dev/dri
- /dev/kfd
networks:
- name: "{{ docker_network_name }}"
volumes:
- /etc/localtime:/etc/localtime:ro
- "{{ data_dir }}/frigate:/config"
- "{{ media_path }}/Cameras:/media/frigate"
env:
LIBVA_DRIVER_NAME: radeonsi
labels:
traefik.enable: "true"
traefik.http.routers.frigate.rule: Host(`nvr.fntz.net`)
traefik.http.routers.frigate.entrypoints: webSecure
traefik.http.routers.frigate.tls.certresolver: letsencrypt
traefik.http.services.frigate.loadbalancer.server.port: "5000"
+61
View File
@@ -0,0 +1,61 @@
---
- name: Deploy Immich DB
include_role:
name: docker
vars:
name: immich_postgres
directories:
- "{{ data_dir }}/immich"
- "{{ data_dir }}/immich/model-cache"
- "{{ data_dir }}/immich/db"
image:
name: ghcr.io/immich-app/postgres
tag: 14-vectorchord0.4.3-pgvectors0.2.0
volumes:
- "{{ data_dir }}/immich/db:/var/lib/postgresql/data"
env:
POSTGRES_PASSWORD: "{{ IMMICH_DB_PASSWORD }}"
POSTGRES_USER: "{{ IMMICH_DB_USERNAME }}"
POSTGRES_DB: "{{ IMMICH_DB_DATABASE_NAME }}"
POSTGRES_INITDB_ARGS: "--data-checksums"
networks:
- name: immich
network_name: immich
- name: Deploy Immich Redis
include_role:
name: docker
vars:
name: immich_redis
image:
name: docker.io/valkey/valkey
tag: 8-bookworm
networks:
- name: immich
- name: Deploy Immich Server
include_role:
name: docker
vars:
name: immich
image:
name: ghcr.io/immich-app/immich-server
tag: v2.7.5
networks:
- name: homelab
- name: immich
volumes:
- "{{ IMMICH_UPLOAD_LOCATION }}:/usr/src/app/upload"
- "/etc/localtime:/etc/localtime:ro"
env:
PUID: "{{ PUID }}"
PGID: "{{ PGID }}"
DB_HOSTNAME: "immich_postgres"
REDIS_HOSTNAME: "immich_redis"
DB_PASSWORD: "{{ IMMICH_DB_PASSWORD }}"
DB_USERNAME: "{{ IMMICH_DB_USERNAME }}"
DB_DATABASE_NAME: "{{ IMMICH_DB_DATABASE_NAME }}"
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"
+29
View File
@@ -0,0 +1,29 @@
---
- name: Deploy NZBGet
include_role:
name: docker
vars:
name: nzbget
directories:
- "{{ data_dir }}/nzbget"
image:
name: lscr.io/linuxserver/nzbget
tag: latest
networks:
- name: homelab
volumes:
- "{{ data_dir }}/nzbget:/config"
- "{{ media_path }}/Downloads:/downloads"
env:
NZBGET_USER: "{{ NZBGET_USER }}"
NZBGET_PASS: "{{ NZBGET_PASS }}"
TZ: "{{ TZ }}"
PUID: "1000"
PGID: "1000"
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"
traefik.http.routers.nzb.middlewares: tinyauth
+28
View File
@@ -0,0 +1,28 @@
---
- name: Deploy Plex
include_role:
name: docker
vars:
name: plex
image:
name: lscr.io/linuxserver/plex
tag: latest
networks:
- name: homelab
devices:
- /dev/dri:/dev/dri
env:
PUID: "1000"
PGID: "1000"
TZ: "{{ TZ }}"
VERSION: "docker"
PLEX_CLAIM: "{{ PLEX_CLAIM_TOKEN }}"
volumes:
- "{{ data_dir }}/plex:/config"
- "{{ media_path }}:/media"
labels:
traefik.enable: "true"
traefik.http.routers.plex.rule: Host(`tv.fntz.net`)
traefik.http.routers.plex.entrypoints: webSecure
traefik.http.routers.plex.tls.certresolver: letsencrypt
traefik.http.services.plex.loadbalancer.server.port: "32400"
+61
View File
@@ -0,0 +1,61 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/scrobbling"
- "{{ data_dir }}/scrobbling/koito"
- "{{ data_dir }}/scrobbling/multi-scrobbler"
- name: Create Scrobbler Configuration
template:
src: templates/scrobbling/lastfm.json.j2
dest: "{{ data_dir }}/scrobbling/multi-scrobbler/lastfm.json"
- name: Deploy Kotio
include_role:
name: docker
vars:
name: scrobbling_koito
network_name: scrobbling
networks:
- name: scrobbling
- name: homelab
image:
name: gabehf/koito
tag: latest
env:
KOITO_ALLOWED_HOSTS: koito.fntz.net
volumes:
- "{{ data_dir }}/scrobbling/koito:/etc/koito"
labels:
traefik.enable: "true"
traefik.http.routers.kotio.rule: Host(`koito.fntz.net`)
traefik.http.routers.kotio.entrypoints: webSecure
traefik.http.routers.kotio.tls.certresolver: letsencrypt
traefik.http.services.kotio.loadbalancer.server.port: "4110"
- name: Deploy Multi-Scrobbler
include_role:
name: docker
vars:
name: scrobbling_multi-scrobbler
image:
name: ghcr.io/foxxmd/multi-scrobbler
tag: latest
networks:
- name: scrobbling
- name: homelab
volumes:
- "{{ data_dir }}/scrobbling/multi-scrobbler:/config"
env:
KOITO_TOKEN: "{{ SCROBBLER_KOITO_TOKEN }}"
KOITO_USER: "{{ SCROBBLER_KOITO_USER }}"
KOITO_URL: "{{ SCROBBLER_KOITO_URL }}"
labels:
traefik.enable: "true"
traefik.http.routers.scrobbler.rule: Host(`scrobbler.fntz.net`)
traefik.http.routers.scrobbler.entrypoints: webSecure
traefik.http.routers.scrobbler.tls.certresolver: letsencrypt
traefik.http.services.scrobbler.loadbalancer.server.port: "9078"
+56
View File
@@ -0,0 +1,56 @@
# need to redeploy
---
- name: Deploy Radarr
include_role:
name: docker
vars:
name: servarr_radarr
directories:
- "{{ data_dir }}/servarr"
- "{{ data_dir }}/servarr/sonarr_config"
- "{{ data_dir }}/servarr/radarr_config"
- "{{ data_dir }}/servarr/lidarr_config"
image:
name: lscr.io/linuxserver/radarr
tag: latest
volumes:
- "{{ data_dir }}/servarr/radarr_config:/config"
- "{{ media_path }}:/media"
- "{{ media_path }}/Downloads:/downloads"
networks:
- name: homelab
env:
PUID: "1000"
PGID: "1000"
TZ: "{{ TZ }}"
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
include_role:
name: docker
vars:
name: servarr_sonarr
image:
name: lscr.io/linuxserver/sonarr
tag: latest
volumes:
- "{{ data_dir }}/servarr/sonarr_config:/config"
- "{{ media_path }}:/data"
- "{{ media_path }}/Downloads:/downloads"
env:
PUID: "1000"
PGID: "1000"
TZ: "{{ TZ }}"
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"
+43
View File
@@ -0,0 +1,43 @@
---
- name: Deploy Weatherstar
include_role:
name: docker
vars:
name: weatherstar
image:
name: ghcr.io/netbymatt/ws4kp
tag: latest
networks:
- name: homelab
env:
TZ: "{{ TZ }}"
WSQS_latLonQuery: "Batavia, New York, USA"
WSQS_hazards_checkbox: "true"
WSQS_current_weather_checkbox: "true"
WSQS_settings_mediaVolume_select: "0.75"
WSQS_settings_scanLineMode_select: "thin"
WSQS_settings_mediaPlaying_boolean: "true"
WSQS_settings_wide_checkbox: "true"
labels:
traefik.enable: "true"
traefik.http.routers.weatherstar.rule: Host(`weatherstar.fntz.net`)
traefik.http.routers.weatherstar.entrypoints: webSecure
traefik.http.routers.weatherstar.tls.certresolver: letsencrypt
traefik.http.services.weatherstar.loadbalancer.server.port: "8080"
- name: Deploy WS4Channels
include_role:
name: docker
vars:
name: weatherstar_ws4channels
image:
name: ghcr.io/rice9797/ws4channels
tag: latest
networks:
- name: homelab
env:
WS4KP_HOST: "weatherstar"
WS4KP_PORT: "8080"
ZIP_CODE: "14020"
published_ports:
- "9798:9798"