{ config, lib, ... }: let cfg = config.vhack.taskchampion-sync; dataDirectory = "/var/lib/taskchampion-sync-server"; in { options.vhack.taskchampion-sync = { enable = lib.mkEnableOption "taskchampion-sync"; }; config = lib.mkIf cfg.enable { users = { users.taskchampion.uid = config.vhack.constants.ids.uids.taskchampion; groups.taskchampion.gid = config.vhack.constants.ids.uids.taskchampion; }; vhack.persist.directories = [ { directory = dataDirectory; user = "taskchampion"; group = "taskchampion"; mode = "0700"; } ]; services.taskchampion-sync-server = { enable = true; openFirewall = true; dataDir = dataDirectory; }; }; }