dotfiles/modules/nixos/nas/default.nix

101 lines
2 KiB
Nix
Raw Normal View History

2025-12-07 04:37:17 -06:00
{
flake,
2025-12-08 03:32:04 -06:00
config,
2025-12-07 04:37:17 -06:00
pkgs,
lib,
...
}:
let
2025-12-08 03:32:04 -06:00
inherit (flake.config.people) user0;
nasHelpers = {
ipAddress = ip: "192.168.50.${ip}";
guestPath = user: "/mnt/storage/users/${user}/guests";
docsPath = user: "/mnt/storage/users/${user}/home/docs";
mediaPath = user: "/mnt/storage/users/${user}/home/media";
miscPath = user: "/mnt/storage/users/${user}/home/misc";
firefly = {
id0 = 70;
id1 = 71;
id2 = 72;
ssh0 = 2570;
ssh1 = 2571;
ssh2 = 2572;
};
onlyoffice = {
id0 = 73;
id1 = 74;
id2 = 75;
ssh0 = 2573;
ssh1 = 2574;
ssh2 = 2575;
};
opencloud = {
id0 = 76;
id1 = 77;
id2 = 78;
ssh0 = 2576;
ssh1 = 2577;
ssh2 = 2578;
};
photoprism = {
id0 = 79;
id1 = 80;
id2 = 81;
ssh0 = 2579;
ssh1 = 2580;
ssh2 = 2581;
};
syncthing = {
id0 = 82;
id1 = 83;
id2 = 84;
ssh0 = 2582;
ssh1 = 2583;
ssh2 = 2584;
};
vaultwarden = {
id0 = 85;
id1 = 86;
id2 = 87;
ssh0 = 2585;
ssh1 = 2586;
ssh2 = 2587;
};
};
firefly-iii = import ./guests/firefly-iii {
inherit
nasHelpers
config
flake
pkgs
;
};
opencloud = import ./guests/opencloud { inherit nasHelpers flake pkgs; };
photoprism = import ./guests/photoprism { inherit nasHelpers flake lib; };
syncthing = import ./guests/syncthing { inherit nasHelpers flake; };
vaultwarden = import ./guests/vaultwarden { inherit nasHelpers flake; };
2025-12-07 04:37:17 -06:00
in
{
imports = [
2025-12-08 03:32:04 -06:00
firefly-iii
2025-12-07 04:37:17 -06:00
opencloud
2025-12-08 03:32:04 -06:00
photoprism
syncthing
vaultwarden
2025-12-07 04:37:17 -06:00
];
2025-12-08 03:32:04 -06:00
systemd.tmpfiles.rules =
let
inherit (nasHelpers) docsPath mediaPath miscPath;
homePaths = user: [
"d ${docsPath user} 0751 microvm wheel - -"
"d ${mediaPath user} 0751 microvm wheel - -"
"d ${miscPath user} 0751 microvm wheel - -"
];
in
homePaths user0;
2025-12-07 04:37:17 -06:00
}