dotfiles/modules/nixos/homelab/nasDirs/default.nix
2025-12-13 13:44:24 -06:00

77 lines
2.2 KiB
Nix
Executable file

{ flake, ... }:
let
inherit (import ../helpers.nix { inherit flake; }) labHelpers nasUsers;
inherit (labHelpers)
guestPath
mediaPath
docsPath
homePath
miscPath
userPath
groupPath
mntPath
;
nasDirs = user: [
"d ${userPath user} 0751 microvm wheel - -"
"d ${homePath user} 0751 microvm wheel - -"
"d ${guestPath user} 0751 microvm wheel - -"
"d ${docsPath user} 0751 microvm wheel - -"
"d ${mediaPath user} 0751 microvm wheel - -"
"d ${miscPath user} 0751 microvm wheel - -"
];
nasUserList = [
nasUsers.nasUser0
nasUsers.nasUser1
nasUsers.nasUser2
];
nasDirBuilder = builtins.concatLists (builtins.map (user: nasDirs user) nasUserList);
defaultDirs = [
"d ${mntPath} 0751 microvm wheel - -"
"d ${groupPath} 0751 microvm wheel - -"
];
in
{
systemd.tmpfiles.rules = defaultDirs ++ nasDirBuilder;
}
# /storage/ # restic backup for entire dir
# ├── users/
# │ ├── nick/
# │ │ ├── home/ # mountable over samba/sshfs
# │ │ │ ├── docs/ # paperless user datadir
# │ │ │ ├── media/ # photoprism user datadir
# │ │ │ └── misc/ # files not used by any guests
# │ │ └── guests/ # guest dirs (users should never have to see this)
# │ │ ├── firefly-iii/
# │ │ │ ├── config/ # app config
# │ │ │ └── data/ # app data
# │ │ ├── glance/
# │ │ ├── photoprism/
# │ │ ├── syncthing/
# │ │ └── vaultwarden/
# │ ├── stacie/
# │ │ ├── home/
# │ │ │ ├── docs/
# │ │ │ └── media/
# │ │ └── guests/
# │ │ ├── paperless/
# │ │ ├── photoprism/
# │ │ ├── syncthing/
# │ │ └── vaultwarden/
# │ └── garnet/
# │ ├── home/
# │ │ ├── docs/
# │ │ ├── media/
# │ │ └── minecraft/
# │ └── guests/
# │ ├── paperless/
# │ ├── photoprism/
# │ ├── syncthing/
# │ └── vaultwarden/
# └── shared/
# ├── frigate/
# └── home-assistant/