{ flake, config, pkgs, lib, ... }: let 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; }; in { imports = [ firefly-iii opencloud photoprism syncthing vaultwarden ]; 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; }