feat: refactor the modules/servers directory.

This commit is contained in:
CronyAkatsuki 2026-01-19 21:36:24 +01:00
parent 4e783c052b
commit 8b754d3a7e
69 changed files with 61 additions and 62 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.";
};
};
}