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