servo: switch from jellyfin -> minidlna
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
./komga.nix
|
./komga.nix
|
||||||
./lemmy.nix
|
./lemmy.nix
|
||||||
./matrix
|
./matrix
|
||||||
|
./minidlna.nix
|
||||||
./mumble.nix
|
./mumble.nix
|
||||||
./navidrome.nix
|
./navidrome.nix
|
||||||
./nginx.nix
|
./nginx.nix
|
||||||
|
@@ -13,8 +13,9 @@
|
|||||||
# - config/system.xml: misc preferences like log file duration, audiobook resume settings, etc.
|
# - config/system.xml: misc preferences like log file duration, audiobook resume settings, etc.
|
||||||
# - data/jellyfin.db: maybe account definitions? internal state?
|
# - 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
|
# https://jellyfin.org/docs/general/networking/index.html
|
||||||
sane.ports.ports."1900" = {
|
sane.ports.ports."1900" = {
|
||||||
@@ -43,6 +44,10 @@
|
|||||||
sane.persist.sys.byStore.plaintext = [
|
sane.persist.sys.byStore.plaintext = [
|
||||||
{ user = "jellyfin"; group = "jellyfin"; mode = "0700"; path = "/var/lib/jellyfin"; method = "bind"; }
|
{ 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" = {
|
sane.fs."/var/lib/jellyfin/config/logging.json" = {
|
||||||
# "Emby.Dlna" logging: <https://jellyfin.org/docs/general/networking/dlna>
|
# "Emby.Dlna" logging: <https://jellyfin.org/docs/general/networking/dlna>
|
||||||
symlink.text = ''
|
symlink.text = ''
|
||||||
@@ -71,6 +76,10 @@
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systemd.services.jellyfin.unitConfig.RequiresMountsFor = [
|
||||||
|
"/var/media"
|
||||||
|
];
|
||||||
|
|
||||||
# Jellyfin multimedia server
|
# Jellyfin multimedia server
|
||||||
# this is mostly taken from the official jellfin.org docs
|
# this is mostly taken from the official jellfin.org docs
|
||||||
services.nginx.virtualHosts."jelly.uninsane.org" = {
|
services.nginx.virtualHosts."jelly.uninsane.org" = {
|
||||||
@@ -80,6 +89,7 @@
|
|||||||
|
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://127.0.0.1:8096";
|
proxyPass = "http://127.0.0.1:8096";
|
||||||
|
# TODO: just use `recommendedProxySettings = true;`?
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
@@ -121,9 +131,4 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
sane.dns.zones."uninsane.org".inet.CNAME."jelly" = "native";
|
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