1{
2 config,
3 pkgs,
4 lib,
5 ...
6}:
7let
8 cfg = config.services.spice-webdavd;
9in
10{
11 options = {
12 services.spice-webdavd = {
13 enable = lib.mkEnableOption "the spice guest webdav proxy daemon";
14
15 package = lib.mkPackageOption pkgs "phodav" { };
16 };
17 };
18
19 config = lib.mkIf cfg.enable {
20 # ensure the webdav fs this exposes can actually be mounted
21 services.davfs2.enable = true;
22
23 # add the udev rule which starts the proxy when the spice socket is present
24 services.udev.packages = [ cfg.package ];
25
26 systemd.services.spice-webdavd = {
27 description = "spice-webdav proxy daemon";
28
29 serviceConfig = {
30 Type = "simple";
31 ExecStart = "${cfg.package}/bin/spice-webdavd -p 9843";
32 Restart = "on-success";
33 };
34 };
35 };
36}