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:
parent
8a149c3533
commit
4e783c052b
45 changed files with 97 additions and 63 deletions
32
modules/servers/bragi/services/audiobookshelf.nix
Normal file
32
modules/servers/bragi/services/audiobookshelf.nix
Normal 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"];
|
||||
};
|
||||
}
|
||||
37
modules/servers/bragi/services/navidrome.nix
Normal file
37
modules/servers/bragi/services/navidrome.nix
Normal 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"];
|
||||
};
|
||||
}
|
||||
19
modules/servers/bragi/services/storage-box.nix
Normal file
19
modules/servers/bragi/services/storage-box.nix
Normal 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}"
|
||||
];
|
||||
};
|
||||
}
|
||||
9
modules/servers/bragi/services/umurmur.nix
Normal file
9
modules/servers/bragi/services/umurmur.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{...}: {
|
||||
services.umurmur = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
settings = {
|
||||
welcometext = "Welcome to crony's nutsack.";
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue