59 lines
1.1 KiB
Nix
59 lines
1.1 KiB
Nix
{...}: let
|
|
musicDir = "/srv/music";
|
|
in {
|
|
users = {
|
|
users.music = {
|
|
isSystemUser = true;
|
|
group = "music";
|
|
};
|
|
# Intended for other programs to get write permission
|
|
groups.music = {
|
|
members = ["toast"];
|
|
};
|
|
};
|
|
systemd.tmpfiles.settings = {
|
|
music."${musicDir}" = {
|
|
d = {
|
|
age = "-";
|
|
user = "music";
|
|
group = "music";
|
|
mode = "2775";
|
|
};
|
|
};
|
|
};
|
|
|
|
services.copyparty = {
|
|
volumes."/Music" = {
|
|
path = "/srv/music";
|
|
access.r = "*";
|
|
};
|
|
};
|
|
|
|
home-manager.users.toast = {config, ...}: {
|
|
programs.beets = {
|
|
enable = true;
|
|
settings = {
|
|
directory = musicDir;
|
|
library = "${config.xdg.dataHome}/beets/library.db";
|
|
|
|
import = {
|
|
move = true;
|
|
};
|
|
ui.color = true;
|
|
|
|
plugins = [
|
|
"unimported"
|
|
"fetchart"
|
|
"chroma"
|
|
"permissions"
|
|
"mbsync"
|
|
"random"
|
|
];
|
|
permissions = {
|
|
file = "644";
|
|
folder = "755";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|