{ lib, config, ... }: let cfg = config.my.servers.kavita; setup = import ./setup.nix { inherit lib config; }; in { options.my.servers.kavita = setup.mkOptions "kavita" "library" config.services.kavita.settings.Port; config = lib.mkIf (cfg.enable && config.my.secureHost) { sops.secrets.kavita-token = { owner = config.users.users.kavita.name; inherit (config.users.users.kavita) group; }; users.users.kavita = { isSystemUser = true; group = "kavita"; extraGroups = [ "users" "piracy" ]; }; services.kavita = { inherit (cfg) enable; tokenKeyFile = config.sops.secrets.kavita-token.path; }; }; }