{ config, ... }:
{

  sops.secrets = {
    "webdav/photosync/password" = { };
  };

  sops.templates."webdav.env" = {
    content = ''
      PHOTOSYNC_PASSWORD=${config.sops.placeholder."webdav/photosync/password"}
    '';
  };

  services.webdav = {
    enable = true;
    settings = {
      address = "127.0.0.1";
      port = "16065";
      permissions = "CRUD";
      behindProxy = true;
      users = [
        {
          username = "photosync";
          password = "{env}PHOTOSYNC_PASSWORD";
        }
      ];
    };
    group = "privimg";
    environmentFile = config.sops.templates."webdav.env".path;
  };

  systemd.services.webdav.serviceConfig = {
    BindPaths = [
      "/mnt/photos/xin/originals:%t/webdav/photosync"
    ];
    RuntimeDirectory = "webdav";
    WorkingDirectory = "%t/webdav";
  };

  users.users."${config.services.webdav.user}".extraGroups = [
    "privimg"
  ];

  services.caddy.virtualHosts."https://weilite.coho-tet.ts.net:6065".extraConfig = ''
    reverse_proxy 127.0.0.1:16065
  '';
}
