refactor: reorganize server modules

- Moved each individual service definition into a dedicated `services/`
  directory under every server module (e.g.
`modules/servers/bragi/services/`).
- Updated the corresponding `default.nix` files to import the renamed
  service modules from the new location.
- Applied the same changes across all server modules, ensuring
  the API and import paths remain consistent.
This commit is contained in:
CronyAkatsuki 2026-01-19 19:21:11 +01:00
parent 8a149c3533
commit 4e783c052b
45 changed files with 97 additions and 63 deletions

View file

@ -0,0 +1,32 @@
{...}: {
services.audiobookshelf = {
enable = true;
};
systemd.services.audiobookshelf = {
after = ["mnt.mount"];
bindsTo = ["mnt.mount"];
};
services.traefik.dynamicConfigOptions.http = {
services.audiobookshelf.loadBalancer.servers = [
{
url = "http://localhost:8000";
}
];
routers.audiobookshelf = {
rule = "Host(`abs.cronyakatsuki.xyz`)";
tls = {
certResolver = "porkbun";
};
service = "audiobookshelf";
entrypoints = "websecure";
};
};
services.restic.backups = {
local.paths = ["/var/lib/audiobookshelf"];
server.paths = ["/var/lib/audiobookshelf"];
};
}

View file

@ -0,0 +1,37 @@
{config, ...}: {
services.navidrome = {
enable = true;
settings = {
MusicFolder = "/mnt/music";
BaseUrl = "https://nd.cronyakatsuki.xyz";
};
environmentFile = "${config.age.secrets.navidrome.path}";
};
systemd.services.navidrome = {
after = ["mnt.mount"];
bindsTo = ["mnt.mount"];
};
services.traefik.dynamicConfigOptions.http = {
services.navidrome.loadBalancer.servers = [
{
url = "http://localhost:4533";
}
];
routers.navidrome = {
rule = "Host(`nd.cronyakatsuki.xyz`)";
tls = {
certResolver = "porkbun";
};
service = "navidrome";
entrypoints = "websecure";
};
};
services.restic.backups = {
local.paths = ["/var/lib/navidrome"];
server.paths = ["/var/lib/navidrome"];
};
}

View file

@ -0,0 +1,19 @@
{
config,
pkgs,
...
}: {
environment.systemPackages = [pkgs.rclone];
fileSystems."/mnt" = {
device = "storage:";
fsType = "rclone";
options = [
"nodev"
"nofail"
"allow_other"
"args2env"
"config=${config.age.secrets.rclone.path}"
];
};
}

View file

@ -0,0 +1,9 @@
{...}: {
services.umurmur = {
enable = true;
openFirewall = true;
settings = {
welcometext = "Welcome to crony's nutsack.";
};
};
}