servo: switch from jellyfin -> minidlna
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
./komga.nix
|
||||
./lemmy.nix
|
||||
./matrix
|
||||
./minidlna.nix
|
||||
./mumble.nix
|
||||
./navidrome.nix
|
||||
./nginx.nix
|
||||
|
@@ -13,8 +13,9 @@
|
||||
# - config/system.xml: misc preferences like log file duration, audiobook resume settings, etc.
|
||||
# - data/jellyfin.db: maybe account definitions? internal state?
|
||||
|
||||
{ config, lib, ... }:
|
||||
{ lib, ... }:
|
||||
|
||||
lib.mkIf false #< XXX(2024-11-17): disabled because it hasn't been working for months; web UI hangs on load, TVs see no files
|
||||
{
|
||||
# https://jellyfin.org/docs/general/networking/index.html
|
||||
sane.ports.ports."1900" = {
|
||||
@@ -43,6 +44,10 @@
|
||||
sane.persist.sys.byStore.plaintext = [
|
||||
{ user = "jellyfin"; group = "jellyfin"; mode = "0700"; path = "/var/lib/jellyfin"; method = "bind"; }
|
||||
];
|
||||
|
||||
services.jellyfin.enable = true;
|
||||
users.users.jellyfin.extraGroups = [ "media" ];
|
||||
|
||||
sane.fs."/var/lib/jellyfin/config/logging.json" = {
|
||||
# "Emby.Dlna" logging: <https://jellyfin.org/docs/general/networking/dlna>
|
||||
symlink.text = ''
|
||||
@@ -71,6 +76,10 @@
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.services.jellyfin.unitConfig.RequiresMountsFor = [
|
||||
"/var/media"
|
||||
];
|
||||
|
||||
# Jellyfin multimedia server
|
||||
# this is mostly taken from the official jellfin.org docs
|
||||
services.nginx.virtualHosts."jelly.uninsane.org" = {
|
||||
@@ -80,6 +89,7 @@
|
||||
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:8096";
|
||||
# TODO: just use `recommendedProxySettings = true;`?
|
||||
extraConfig = ''
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
@@ -121,9 +131,4 @@
|
||||
};
|
||||
|
||||
sane.dns.zones."uninsane.org".inet.CNAME."jelly" = "native";
|
||||
|
||||
services.jellyfin.enable = true;
|
||||
systemd.services.jellyfin.unitConfig.RequiresMountsFor = [
|
||||
"/var/media"
|
||||
];
|
||||
}
|
||||
|
38
hosts/by-name/servo/services/minidlna.nix
Normal file
38
hosts/by-name/servo/services/minidlna.nix
Normal file
@@ -0,0 +1,38 @@
|
||||
# - `man 5 minidlna.conf`
|
||||
# - `man 8 minidlnad`
|
||||
#
|
||||
# this is an extremely simple (but limited) DLNA server:
|
||||
# - no web UI
|
||||
# - no runtime configuration -- just statically configure media directories instead
|
||||
# - no transcoding
|
||||
# compatibility:
|
||||
# - LG TV: music: all working
|
||||
# - LG TV: videos: mixed. i can't see the pattern; HEVC works; H.264 sometimes works.
|
||||
{ ... }:
|
||||
{
|
||||
sane.ports.ports."1900" = {
|
||||
protocol = [ "udp" ];
|
||||
visibleTo.lan = true;
|
||||
description = "colin-upnp-for-minidlna";
|
||||
};
|
||||
sane.ports.ports."8200" = {
|
||||
protocol = [ "tcp" ];
|
||||
visibleTo.lan = true;
|
||||
description = "colin-minidlna-http";
|
||||
};
|
||||
|
||||
services.minidlna.enable = true;
|
||||
|
||||
services.minidlna.settings = {
|
||||
media_dir = [
|
||||
# A/V/P to restrict a directory to audio/video/pictures
|
||||
"A,/var/media/Music"
|
||||
"V,/var/media/Videos/Film"
|
||||
# "V,/var/media/Videos/Milkbags"
|
||||
"V,/var/media/Videos/Shows"
|
||||
];
|
||||
notify_interval = 60;
|
||||
};
|
||||
|
||||
users.users.minidlna.extraGroups = [ "media" ];
|
||||
}
|
Reference in New Issue
Block a user