summaryrefslogtreecommitdiffstats
path: root/nixos/modules/services/admin
diff options
context:
space:
mode:
authorMaciej Krüger <mkg20001@gmail.com>2024-03-23 18:25:55 +0100
committerMaciej Krüger <mkg20001@gmail.com>2024-03-23 18:25:55 +0100
commit94d6d4e93a3ce6b467d4b165aa74a71482d344e3 (patch)
tree723cfbdc32f149a6d72a726a8d56dacd8438b708 /nixos/modules/services/admin
parenta26fa45c8028180d4cc18608bf4f1804606d5f21 (diff)
nixos/docuum: add module for docuum package
Co-Authored-By: Martin Weinelt <mweinelt@users.noreply.github.com>
Diffstat (limited to 'nixos/modules/services/admin')
-rw-r--r--nixos/modules/services/admin/docuum.nix45
1 files changed, 45 insertions, 0 deletions
diff --git a/nixos/modules/services/admin/docuum.nix b/nixos/modules/services/admin/docuum.nix
new file mode 100644
index 000000000000..6f6cd4e02733
--- /dev/null
+++ b/nixos/modules/services/admin/docuum.nix
@@ -0,0 +1,45 @@
+{ config, pkgs, lib, utils, ... }:
+
+let
+ cfg = config.services.docuum;
+ inherit (lib) mkIf mkEnableOption mkOption getExe types;
+in
+{
+ options.services.docuum = {
+ enable = mkEnableOption "docuum daemon";
+
+ threshold = mkOption {
+ description = "Threshold for deletion in bytes, like `10 GB`, `10 GiB`, `10GB` or percentage-based thresholds like `50%`";
+ type = types.str;
+ default = "10 GB";
+ example = "50%";
+ };
+ };
+
+ config = mkIf cfg.enable {
+ assertions = [
+ {
+ assertion = config.virtualisation.docker.enable;
+ message = "docuum requires docker on the host";
+ }
+ ];
+
+ systemd.services.docuum = {
+ after = [ "docker.socket" ];
+ requires = [ "docker.socket" ];
+ wantedBy = [ "multi-user.target" ];
+ path = [ config.virtualisation.docker.package ];
+ environment.HOME = "/var/lib/docuum";
+
+ serviceConfig = {
+ DynamicUser = true;
+ StateDirectory = "docuum";
+ SupplementaryGroups = [ "docker" ];
+ ExecStart = utils.escapeSystemdExecArgs [
+ (getExe pkgs.docuum)
+ "--threshold" cfg.threshold
+ ];
+ };
+ };
+ };
+}