From ccfb9d2056d0c82632db96607968f4917f4b94a0 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Thu, 3 Apr 2025 13:39:33 +0200 Subject: [PATCH 1/3] python312Packages.docling-serve: add `withUI` boolean parameter --- .../python-modules/docling-serve/default.nix | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/docling-serve/default.nix b/pkgs/development/python-modules/docling-serve/default.nix index 3d8d487cf8ff..4a521fbadbec 100644 --- a/pkgs/development/python-modules/docling-serve/default.nix +++ b/pkgs/development/python-modules/docling-serve/default.nix @@ -12,6 +12,10 @@ python-multipart, uvicorn, websockets, + gradio, + nodejs, + which, + withUI ? false, }: buildPythonPackage rec { @@ -43,7 +47,15 @@ buildPythonPackage rec { python-multipart uvicorn websockets - ]; + ] ++ lib.optionals withUI optional-dependencies.ui; + + optional-dependencies = { + ui = [ + gradio + nodejs + which + ]; + }; pythonImportsCheck = [ "docling_serve" From 5cf67a73d860a62b9f9d636633a03893759fa0b3 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Thu, 3 Apr 2025 13:40:15 +0200 Subject: [PATCH 2/3] docling-serve: add `withUI` boolean parameter --- pkgs/by-name/do/docling-serve/package.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/do/docling-serve/package.nix b/pkgs/by-name/do/docling-serve/package.nix index df0fb39a4724..ff8e4514d60e 100644 --- a/pkgs/by-name/do/docling-serve/package.nix +++ b/pkgs/by-name/do/docling-serve/package.nix @@ -1,6 +1,10 @@ -{ python3Packages, nixosTests }: +{ + python3Packages, + nixosTests, + withUI ? false, +}: -(python3Packages.toPythonApplication python3Packages.docling-serve) +(python3Packages.toPythonApplication (python3Packages.docling-serve.override { inherit withUI; })) // { passthru.tests = { docling-serve = nixosTests.docling-serve; From d62fd5fa6c82f3d153448b417f17aec1ae936130 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Thu, 3 Apr 2025 13:30:03 +0200 Subject: [PATCH 3/3] nixos/docling-serve: update environment variables --- nixos/modules/services/misc/docling-serve.nix | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/misc/docling-serve.nix b/nixos/modules/services/misc/docling-serve.nix index e717c1fe5e80..b9b7274047e0 100644 --- a/nixos/modules/services/misc/docling-serve.nix +++ b/nixos/modules/services/misc/docling-serve.nix @@ -15,6 +15,13 @@ in enable = lib.mkEnableOption "Docling Serve server"; package = lib.mkPackageOption pkgs "docling-serve" { }; + stateDir = lib.mkOption { + type = types.path; + default = "/var/lib/docling-serve"; + example = "/home/foo"; + description = "State directory of Docling Serve."; + }; + host = lib.mkOption { type = types.str; default = "127.0.0.1"; @@ -36,11 +43,11 @@ in environment = lib.mkOption { type = types.attrsOf types.str; default = { - DOCLING_SERVE_ENABLE_UI = "True"; + DOCLING_SERVE_ENABLE_UI = "False"; }; example = '' { - DOCLING_SERVE_ENABLE_UI = "False"; + DOCLING_SERVE_ENABLE_UI = "True"; } ''; description = '' @@ -77,11 +84,19 @@ in wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; - environment = cfg.environment; + environment = { + HF_HOME = "."; + EASYOCR_MODULE_PATH = "."; + MPLCONFIGDIR = "."; + } // cfg.environment; serviceConfig = { ExecStart = "${lib.getExe cfg.package} run --host \"${cfg.host}\" --port ${toString cfg.port}"; EnvironmentFile = lib.optional (cfg.environmentFile != null) cfg.environmentFile; + WorkingDirectory = cfg.stateDir; + StateDirectory = "docling-serve"; + RuntimeDirectory = "docling-serve"; + RuntimeDirectoryMode = "0755"; PrivateTmp = true; DynamicUser = true; DevicePolicy = "closed";