dankserver: entropy read-only fleet-wide; jellyfin gets whole /mnt/entropy at /data

This commit is contained in:
Frank committed 2026-09-01 23:03:45 -07:00
1 parent 6302508dfe
commit 8895a02512
3 files changed
+8 -10

No files matched your search

+2 -3
View File
@@ -86,7 +86,7 @@ services:
ports: ports:
- "3923:3923" - "3923:3923"
volumes: volumes:
- /mnt/entropy:/w - /mnt/entropy:/w:ro
- /opt/copyparty/cfg:/cfg - /opt/copyparty/cfg:/cfg
healthcheck: healthcheck:
test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:3923/')"] test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:3923/')"]
@@ -112,8 +112,7 @@ services:
volumes: volumes:
- /opt/jellyfin/config:/config - /opt/jellyfin/config:/config
- /opt/jellyfin/cache:/cache - /opt/jellyfin/cache:/cache
- /mnt/entropy/Movies:/data/movies:ro - /mnt/entropy:/data:ro
- /mnt/entropy/TVShows:/data/shows:ro
devices: devices:
- /dev/dri:/dev/dri - /dev/dri:/dev/dri
group_add: group_add:
@@ -12,8 +12,8 @@
# that env file exists, so a missing env file fails the unit instead of # that env file exists, so a missing env file fails the unit instead of
# creating an admin account with a garbage password. # creating an admin account with a garbage password.
# #
# /w is the entropy volume: copyparty's dank admin account is the only write # /w is the entropy volume, mounted read-only: nothing writes into /mnt/entropy
# path into it; every other service mounts the share read-only or not at all. # anymore; every consumer of the share is a read-only client.
[Unit] [Unit]
Description=Copyparty file server container Description=Copyparty file server container
@@ -25,7 +25,7 @@ Image=ghcr.io/9001/copyparty-ac:latest
Network=dankserver_appnet Network=dankserver_appnet
EnvironmentFile=/home/dank/Containers/copyparty/env EnvironmentFile=/home/dank/Containers/copyparty/env
Exec=-a ${COPAY_ACCOUNT}:${COPAY_PASSWORD} -v /w::r:ra,dank Exec=-a ${COPAY_ACCOUNT}:${COPAY_PASSWORD} -v /w::r:ra,dank
Volume=/mnt/entropy:/w Volume=/mnt/entropy:/w:ro
Volume=/home/dank/Containers/copyparty/cfg:/cfg Volume=/home/dank/Containers/copyparty/cfg:/cfg
PublishPort=3923:3923 PublishPort=3923:3923
@@ -4,8 +4,8 @@
# Unit name: jellyfin.service (podman 5.x drops the container- prefix) # Unit name: jellyfin.service (podman 5.x drops the container- prefix)
# #
# Data roots migrated from /opt/jellyfin to /home/dank/Containers/jellyfin at # Data roots migrated from /opt/jellyfin to /home/dank/Containers/jellyfin at
# cutover. The entropy volume is mounted read-only: nothing automated ever # cutover. All of /mnt/entropy is mounted read-only at /data: nothing automated
# writes there; copyparty is the only write path for /mnt/entropy. Every # anywhere writes to the entropy volume. Every
# creation-time environment variable of the compose-era container is kept as # creation-time environment variable of the compose-era container is kept as
# an Environment= line (zero drift); none of them are secrets, so this unit # an Environment= line (zero drift); none of them are secrets, so this unit
# needs no EnvironmentFile. # needs no EnvironmentFile.
@@ -41,8 +41,7 @@ PublishPort=7359:7359/udp
PublishPort=1900:1900/udp PublishPort=1900:1900/udp
Volume=/home/dank/Containers/jellyfin/config:/config Volume=/home/dank/Containers/jellyfin/config:/config
Volume=/home/dank/Containers/jellyfin/cache:/cache Volume=/home/dank/Containers/jellyfin/cache:/cache
Volume=/mnt/entropy/Movies:/data/movies:ro Volume=/mnt/entropy:/data:ro
Volume=/mnt/entropy/TVShows:/data/shows:ro
AddDevice=/dev/dri AddDevice=/dev/dri
GroupAdd=keep-groups GroupAdd=keep-groups
HealthCmd=curl -f http://localhost:8096/health HealthCmd=curl -f http://localhost:8096/health