85 lines
2.1 KiB
Nix
85 lines
2.1 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
...
|
|
}: {
|
|
services.navidrome = {
|
|
enable = true;
|
|
settings = {
|
|
MusicFolder = "/data/music/tagged";
|
|
DataFolder = "/var/lib/navidrome";
|
|
};
|
|
};
|
|
|
|
services.nginx = {
|
|
virtualHosts = {
|
|
"music.moritz.place" = {
|
|
forceSSL = true;
|
|
useACMEHost = "any.moritz.place";
|
|
locations."/" = {
|
|
proxyPass = "http://${config.services.navidrome.settings.Address}:${builtins.toString config.services.navidrome.settings.Port}";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
home-manager.users.moritz.programs.beets = {
|
|
enable = true;
|
|
settings = {
|
|
directory = config.services.navidrome.settings.MusicFolder;
|
|
library = "/data/music/beet/musiclibrary.db";
|
|
plugins = [
|
|
"autobpm"
|
|
"mbsync"
|
|
"badfiles"
|
|
"chroma"
|
|
"duplicates"
|
|
"lyrics"
|
|
"replaygain"
|
|
];
|
|
musicbrainz.genres = true;
|
|
lyrics.synced = true;
|
|
replaygain.backend = "ffmpeg";
|
|
};
|
|
};
|
|
|
|
services.borgbackup.jobs = {
|
|
music = {
|
|
paths = [
|
|
config.services.navidrome.settings.MusicFolder
|
|
config.services.navidrome.settings.DataFolder
|
|
config.home-manager.users.moritz.programs.beets.settings.library
|
|
];
|
|
repo = "u461386-sub1@u461386.your-storagebox.de:music";
|
|
doInit = true;
|
|
encryption = {
|
|
mode = "repokey";
|
|
passCommand = "cat ${config.clan.core.vars.generators.borg-music.files.password.path}";
|
|
};
|
|
environment = {BORG_RSH = "ssh -i ${config.clan.core.vars.generators.borg-music.files."ssh.id_ed25519".path} -p 23";};
|
|
compression = "auto,zstd";
|
|
startAt = "hourly";
|
|
persistentTimer = true;
|
|
prune.keep = {
|
|
within = "1d"; # Keep all archives from the last day
|
|
daily = 7;
|
|
weekly = 3;
|
|
monthly = 3;
|
|
};
|
|
};
|
|
};
|
|
|
|
clan.core.vars.generators.borg-music = {
|
|
prompts.password.persist = true;
|
|
|
|
files."ssh.id_ed25519" = {};
|
|
files."ssh.id_ed25519.pub".secret = false;
|
|
runtimeInputs = [
|
|
pkgs.coreutils
|
|
pkgs.openssh
|
|
];
|
|
script = ''
|
|
ssh-keygen -t ed25519 -N "" -f "$out"/ssh.id_ed25519
|
|
'';
|
|
};
|
|
}
|