From 979fafb0ec717b53a32a3d17ca8309dee14ae94d Mon Sep 17 00:00:00 2001 From: Joey Hafner Date: Sat, 1 Feb 2025 00:55:30 -0800 Subject: [PATCH] Feature: Init stack.nix for plex. - Delete unused nvidia alternate config. - Delete Plex exporter. --- homelab/stacks/plex/.env | 4 -- homelab/stacks/plex/docker-compose-nvidia.yml | 72 ------------------- homelab/stacks/plex/docker-compose.yml | 51 ++++++------- homelab/stacks/plex/plex.env | 3 - homelab/stacks/plex/plex_stack.env | 3 - homelab/stacks/plex/stack.nix | 20 ++++++ 6 files changed, 43 insertions(+), 110 deletions(-) delete mode 100644 homelab/stacks/plex/.env delete mode 100644 homelab/stacks/plex/docker-compose-nvidia.yml delete mode 100644 homelab/stacks/plex/plex.env delete mode 100644 homelab/stacks/plex/plex_stack.env create mode 100644 homelab/stacks/plex/stack.nix diff --git a/homelab/stacks/plex/.env b/homelab/stacks/plex/.env deleted file mode 100644 index f3f3e507..00000000 --- a/homelab/stacks/plex/.env +++ /dev/null @@ -1,4 +0,0 @@ -DOCKER_DATA=/home/admin/data/plex -MOVIES_DIR=/mnt/nas/movies -SHOWS_DIR=/mnt/nas/shows -MUSIC_DIR=/mnt/nas/music \ No newline at end of file diff --git a/homelab/stacks/plex/docker-compose-nvidia.yml b/homelab/stacks/plex/docker-compose-nvidia.yml deleted file mode 100644 index e4442bdb..00000000 --- a/homelab/stacks/plex/docker-compose-nvidia.yml +++ /dev/null @@ -1,72 +0,0 @@ -services: - plex: - image: linuxserver/plex - container_name: plex_plex - restart: "no" - deploy: - resources: - reservations: - devices: - - driver: nvidia - count: all - capabilities: [gpu] - networks: - - web - ports: - - 32400:32400/tcp - - 32400:32400/udp - - 3005:3005/tcp - - 8324:8324/tcp - - 32469:32469/tcp - - 1900:1900/udp - - 32410:32410/udp - - 32412:32412/udp - - 32413:32413/udp - - 32414:32414/udp - env_file: - - plex_stack.env - - plex.env - - plex_secrets.env - volumes: - - "${MOVIES_DIR}:/movies" - - "${SHOWS_DIR}:/shows" - - "${MUSIC_DIR}:/music" - - "${DOCKER_DATA}/plex:/config" - labels: - - traefik.http.routers.plex.rule=Host(`plex.jafner.net`) - - traefik.http.routers.plex.tls.certresolver=lets-encrypt - - traefik.http.services.plex.loadbalancer.server.port=32400 - ombi: - image: ghcr.io/linuxserver/ombi - container_name: plex_ombi - restart: "no" - networks: - - web - env_file: - - plex_stack.env - volumes: - - "${DOCKER_DATA}/ombi:/config" - labels: - - traefik.http.routers.ombi.rule=Host(`ombi.jafner.net`) - - traefik.http.routers.ombi.tls.certresolver=lets-encrypt - - traefik.http.routers.ombi.tls.options=tls12@file - - traefik.http.routers.ombi.middlewares=securityheaders@file - - traefik.http.services.ombi.loadbalancer.server.port=3579 - exporter-plex: - image: granra/plex_exporter - container_name: plex_exporter - restart: "no" - networks: - - monitoring - command: - - "--plex-server=https://plex.jafner.net" - - "--token=***REMOVED***" - - "--auto-discover" - labels: - - traefik.enable=false - -networks: - web: - external: true - monitoring: - external: true diff --git a/homelab/stacks/plex/docker-compose.yml b/homelab/stacks/plex/docker-compose.yml index 6f2101ea..78c08225 100644 --- a/homelab/stacks/plex/docker-compose.yml +++ b/homelab/stacks/plex/docker-compose.yml @@ -3,6 +3,13 @@ services: image: linuxserver/plex:latest container_name: plex_plex restart: "no" + # deploy: + # resources: + # reservations: + # devices: + # - driver: nvidia + # count: all + # capabilities: [gpu] networks: - web ports: @@ -16,18 +23,18 @@ services: - 32412:32412/udp - 32413:32413/udp - 32414:32414/udp - env_file: - - path: ./plex.env - required: true - - path: ./plex_stack.env - required: true - - path: ./plex_secrets.env - required: false + environment: + PUID: 1001 + PGID: 1001 + TZ: America/Los_Angeles + VERSION: latest + ADVERTISE_IP: "https://plex.jafner.net:443" + #NVIDIA_VISIBLE_DEVICES: all volumes: - - "${MOVIES_DIR}:/movies" - - "${SHOWS_DIR}:/shows" - - "${MUSIC_DIR}:/music" - - "${DOCKER_DATA}/plex:/config" + - "$MOVIES_DIR:/movies" + - "$SHOWS_DIR:/shows" + - "$MUSIC_DIR:/music" + - "$APPDATA/plex:/config" labels: - traefik.http.routers.plex.rule=Host(`plex.jafner.net`) - traefik.http.routers.plex.tls.certresolver=lets-encrypt @@ -39,11 +46,12 @@ services: restart: "no" networks: - web - env_file: - - path: ./plex_stack.env - required: true + environment: + PUID: 1001 + PGID: 1001 + TZ: America/Los_Angeles volumes: - - "${DOCKER_DATA}/ombi:/config" + - "$APPDATA/ombi:/config" labels: - traefik.http.routers.ombi.rule=Host(`ombi.jafner.net`) - traefik.http.routers.ombi.tls.certresolver=lets-encrypt @@ -51,19 +59,6 @@ services: - traefik.http.routers.ombi.middlewares=securityheaders@file - traefik.http.services.ombi.loadbalancer.server.port=3579 - exporter-plex: - image: granra/plex_exporter:latest - container_name: plex_exporter - restart: "no" - networks: - - monitoring - command: - - "--plex-server=https://plex.jafner.net" - - "--token=***REMOVED***" - - "--auto-discover" - labels: - - traefik.enable=false - networks: web: external: true diff --git a/homelab/stacks/plex/plex.env b/homelab/stacks/plex/plex.env deleted file mode 100644 index 33ffb7ac..00000000 --- a/homelab/stacks/plex/plex.env +++ /dev/null @@ -1,3 +0,0 @@ -VERSION=latest -ADVERTISE_IP="https://plex.jafner.net:443" -NVIDIA_VISIBLE_DEVICES=all \ No newline at end of file diff --git a/homelab/stacks/plex/plex_stack.env b/homelab/stacks/plex/plex_stack.env deleted file mode 100644 index 42793181..00000000 --- a/homelab/stacks/plex/plex_stack.env +++ /dev/null @@ -1,3 +0,0 @@ -PUID=1001 -PGID=1001 -TZ=America/Los_Angeles diff --git a/homelab/stacks/plex/stack.nix b/homelab/stacks/plex/stack.nix new file mode 100644 index 00000000..694a5f76 --- /dev/null +++ b/homelab/stacks/plex/stack.nix @@ -0,0 +1,20 @@ +{ sys, ... }: let stack = "plex"; in { + home-manager.users."${sys.username}".home.file = { + "${stack}" = { + enable = true; + recursive = true; + source = ./.; + target = "stacks/${stack}/"; + }; + "${stack}/.env" = { + enable = true; + text = '' + APPDATA=${sys.dataDirs.appdata}/${stack} + MOVIES_DIR=${sys.dataDirs.library.movies} + SHOWS_DIR=${sys.dataDirs.library.shows} + MUSIC_DIR=${sys.dataDirs.library.music} + ''; + target = "stacks/${stack}/.env"; + }; + }; +} \ No newline at end of file