{ inputs, config, ... }: { imports = [ inputs.sops-nix.nixosModules.sops ]; services.davfs2.enable = true; sops = { defaultSopsFile = ./../../secrets.yaml; defaultSopsFormat = "yaml"; age.keyFile = "/home/jonas/.config/sops/age/keys.txt"; templates = { "davtemp" = { owner = "root"; content = "${config.sops.placeholder.webdav_secret}"; mode = "0600"; path = "/etc/davfs2/secrets"; }; }; secrets = { webdav_secret = { owner = "jonas"; }; }; }; # Ensure the mountpoint directory exists systemd.tmpfiles.rules = [ "d /mnt/webdav 0755 jonas users -" ]; # Just works systemd.mounts = [{ description = "Webdav mount point"; wants = [ "network-online.target" ]; what = "https://dav.hahn1.one"; where = "/mnt/webdav"; type = "davfs"; options = "uid=1000,gid=1000,file_mode=0664,dir_mode=2775,_netdev"; mountConfig.TimeoutSec = "5s"; }]; systemd.automounts = [{ where = "/mnt/webdav"; wantedBy = [ "multi-user.target" ]; automountConfig = { TimeoutIdleSec = "20m"; }; }]; }