34 lines
678 B
Nix
34 lines
678 B
Nix
|
{ config, lib, ... }:
|
||
|
let
|
||
|
cfg = config.mj.services.minidlna;
|
||
|
in
|
||
|
{
|
||
|
options.mj.services.minidlna = with lib.types; {
|
||
|
enable = lib.mkEnableOption "Enable minidlna";
|
||
|
paths = lib.mkOption { type = listOf path; };
|
||
|
};
|
||
|
|
||
|
config = {
|
||
|
|
||
|
services.minidlna = {
|
||
|
enable = true;
|
||
|
openFirewall = true;
|
||
|
settings = {
|
||
|
media_dir = cfg.paths;
|
||
|
friendly_name = "${config.networking.hostName}.${config.networking.domain}";
|
||
|
inotify = "yes";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
systemd.services.minidlna = {
|
||
|
serviceConfig = {
|
||
|
ProtectSystem = "strict";
|
||
|
ProtectHome = "tmpfs";
|
||
|
BindReadOnlyPaths = cfg.paths;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
};
|
||
|
|
||
|
}
|