feat(home): adjust vicinae and eilmeldung configurations feat(neovim): enable folding in neovim configuration fix(nixos): disable resolved dns and remove fallback dns on tako chore(nixos): add pihole and resolved services to tsuba chore(home): remove unused packages from programs chore(nixos): add gamescope-wsi and vulkan-tools to steam configuration chore(nixos): update navidrome service with sops integration and systemd tmpfiles chore(darwin): use dynamic user in shiro configuration chore(secrets): add lastfm and pihole secrets to secrets.yaml
73 lines
1.7 KiB
Nix
73 lines
1.7 KiB
Nix
{
|
|
device,
|
|
config,
|
|
...
|
|
}: let
|
|
socket = "/run/navidrome/navidrome.sock";
|
|
in {
|
|
sops = {
|
|
secrets."lastfm/api_key" = {};
|
|
secrets."lastfm/shared_secret" = {};
|
|
templates."lastfm.env".content = ''
|
|
ND_LASTFM_APIKEY=${config.sops.placeholder."lastfm/api_key"}
|
|
ND_LASTFM_SECRET=${config.sops.placeholder."lastfm/shared_secret"}
|
|
'';
|
|
};
|
|
services = {
|
|
navidrome = {
|
|
enable = true;
|
|
settings = {
|
|
MusicFolder = "/media/music";
|
|
ReverseProxyUserHeader = "Remote-User";
|
|
ReverseProxyWhitelist = "@";
|
|
Address = "unix:${socket}";
|
|
BaseUrl = "https://music.darksailor.dev";
|
|
};
|
|
environmentFile = config.sops.templates."lastfm.env".path;
|
|
};
|
|
caddy = {
|
|
virtualHosts."music.darksailor.dev".extraConfig = ''
|
|
import auth
|
|
reverse_proxy unix/${socket}
|
|
'';
|
|
};
|
|
authelia = {
|
|
instances.darksailor = {
|
|
settings = {
|
|
access_control = {
|
|
rules = [
|
|
{
|
|
domain = "music.darksailor.dev";
|
|
policy = "bypass";
|
|
resources = [
|
|
"^/(rest|share)([/?].*)?$"
|
|
];
|
|
}
|
|
{
|
|
domain = "music.darksailor.dev";
|
|
policy = "one_factor";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
systemd.services.navidrome.requires = ["systemd-tmpfiles-setup.service"];
|
|
systemd.tmpfiles.settings = {
|
|
navidromeDirs = {
|
|
"/run/navidrome".d = {
|
|
mode = "775";
|
|
user = "navidrome";
|
|
group = "navidrome";
|
|
};
|
|
};
|
|
};
|
|
users.users.${device.user} = {
|
|
extraGroups = ["navidrome"];
|
|
};
|
|
users.users.caddy = {
|
|
extraGroups = ["navidrome"];
|
|
};
|
|
}
|