Files
nixos/modules/services/webdav.nix
2025-08-31 16:52:24 +02:00

43 lines
1.1 KiB
Nix

{ 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"; };
}];
}