{ config, pkgs, ... }: let transcode = pkgs.callPackage ../packages/transcode.nix {}; flacPath = "/data/music/flac"; mp3Path = "/data/music/mp3"; oggPath = "/data/music/ogg"; in { systemd.services.transcode = { description = "Transcode music form FLAC to MP3 and OGG"; onFailure = [ "status-email@%n.service" ]; serviceConfig = { Type = "simple"; ExecStart = "${transcode}/bin/transcode --mp3-out \"${mp3Path}\" --ogg-out \"${oggPath}\" \"${flacPath}\""; DynamicUser = true; Group = "music"; UMask = "002"; ReadOnlyDirectories = [ flacPath ]; ReadWriteDirectories = [ mp3Path oggPath ]; Nice = 19; NoNewPrivileges = true; PrivateTmp = true; PrivateDevices = true; PrivateUsers = true; ProtectClock = true; ProtectSystem = "strict"; ProtectHome = true; ProtectKernelLogs = true; ProtectKernelModules = true; ProtectProc = "invisible"; }; }; }