nix-config/modules/nixos/wrtagweb.nix
Lander Van den Bulcke 82d1358e0a
feat: fix wrtagweb api key
Signed-off-by: Lander Van den Bulcke <landervandenbulcke@gmail.com>
2025-10-05 23:22:50 +02:00

61 lines
1.7 KiB
Nix

{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.wrtagweb;
settingsFormat = pkgs.formats.keyValue {
mkKeyValue = lib.generators.mkKeyValueDefault { } " ";
listsAsDuplicateKeys = true;
};
in
{
options = {
services.wrtagweb = {
enable = lib.mkEnableOption "wrtag web";
settings = lib.mkOption rec {
type = settingsFormat.type;
apply = lib.recursiveUpdate default;
default = {
web-listen-addr = "127.0.0.1:7373";
path-format = "/data/music/{{ artists .Release.Artists | sort | join \"; \" | safepath }}/({{ .Release.ReleaseGroup.FirstReleaseDate.Year }}) {{ .Release.Title | safepath }}{{ if not (eq .ReleaseDisambiguation \"\") }} ({{ .ReleaseDisambiguation | safepath }}){{ end }}/{{ pad0 2 .TrackNum }}.{{ len .Tracks | pad0 2 }} {{ if .IsCompilation }}{{ artistsString .Track.Artists | safepath }} - {{ end }}{{ .Track.Title | safepath }}{{ .Ext }}";
};
description = ''
Configuration for wrtagweb
'';
};
envFile = lib.mkOption {
type = lib.types.path;
description = ''
File with environment variables for wrtagweb
'';
};
};
};
config = lib.mkIf cfg.enable {
users.users.wrtagweb = {
enable = true;
isSystemUser = true;
group = "wrtagweb";
};
users.groups.wrtagweb = { };
systemd.services.wrtagweb = {
description = "wrtagweb";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
User = "wrtagweb";
ExecStart = "${pkgs.unstable.wrtag}/bin/wrtagweb -config-path ${settingsFormat.generate "wrtagweb" cfg.settings}";
EnvironmentFile = cfg.envFile;
};
};
};
}