Feature: Init stack.nix for plex.

- Delete unused nvidia alternate config.
  - Delete Plex exporter.
This commit is contained in:
Joey Hafner 2025-02-01 00:55:30 -08:00
parent bd26c3ea0f
commit 979fafb0ec
Signed by: Jafner
GPG Key ID: 6D9A24EF2F389E55
6 changed files with 43 additions and 110 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,3 +0,0 @@
VERSION=latest
ADVERTISE_IP="https://plex.jafner.net:443"
NVIDIA_VISIBLE_DEVICES=all

View File

@ -1,3 +0,0 @@
PUID=1001
PGID=1001
TZ=America/Los_Angeles

View File

@ -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";
};
};
}