about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorphaer <hello@phaer.org>2024-03-01 22:55:27 +0100
committerphaer <hello@phaer.org>2024-03-01 22:55:27 +0100
commitfa34964ef195eb1ae99248e179fee3daae321f9b (patch)
tree09e6cfd7fbf27b26856ed9d1bf6e7bc4319e62e0 /nixos
parentaa04a4d12449f8e49afdc271b8fb7acdca8b1ad0 (diff)
downloadnixlib-fa34964ef195eb1ae99248e179fee3daae321f9b.tar
nixlib-fa34964ef195eb1ae99248e179fee3daae321f9b.tar.gz
nixlib-fa34964ef195eb1ae99248e179fee3daae321f9b.tar.bz2
nixlib-fa34964ef195eb1ae99248e179fee3daae321f9b.tar.lz
nixlib-fa34964ef195eb1ae99248e179fee3daae321f9b.tar.xz
nixlib-fa34964ef195eb1ae99248e179fee3daae321f9b.tar.zst
nixlib-fa34964ef195eb1ae99248e179fee3daae321f9b.zip
etebase: make proper package...
and remove the ad-hoc python environment.
Also remove daphne and use uvicorn just as upstream does
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/misc/etebase-server.nix28
1 files changed, 10 insertions, 18 deletions
diff --git a/nixos/modules/services/misc/etebase-server.nix b/nixos/modules/services/misc/etebase-server.nix
index 1500b538754e..f5a5e8a780d4 100644
--- a/nixos/modules/services/misc/etebase-server.nix
+++ b/nixos/modules/services/misc/etebase-server.nix
@@ -5,9 +5,6 @@ with lib;
 let
   cfg = config.services.etebase-server;
 
-  pythonEnv = cfg.pythonPackage.withPackages (ps: with ps;
-    [ cfg.package daphne ]);
-
   iniFmt = pkgs.formats.ini {};
 
   configIni = iniFmt.generate "etebase-server.ini" cfg.settings;
@@ -48,18 +45,11 @@ in
 
       package = mkOption {
         type = types.package;
-        default = cfg.pythonPackage.pkgs.etebase-server;
-        defaultText = literalExpression "pkgs.etebase-server";
+        default = pkgs.python3.pkgs.etebase-server;
+        defaultText = literalExpression "pkgs.python3.pkgs.etebase-server";
         description = lib.mdDoc "etebase-server package to use.";
       };
 
-      pythonPackage = mkOption {
-        type = types.package;
-        default = pkgs.python3;
-        defaultText = literalExpression "pkgs.python3";
-        description = lib.mdDoc "python interpreter to run etebase-server with.";
-      };
-
       dataDir = mkOption {
         type = types.str;
         default = "/var/lib/etebase-server";
@@ -178,7 +168,7 @@ in
       (runCommand "etebase-server" {
         nativeBuildInputs = [ makeWrapper ];
       } ''
-        makeWrapper ${pythonEnv}/bin/etebase-server \
+        makeWrapper ${cfg.package}/bin/etebase-server \
           $out/bin/etebase-server \
           --chdir ${escapeShellArg cfg.dataDir} \
           --prefix ETEBASE_EASY_CONFIG_PATH : "${configIni}"
@@ -192,8 +182,8 @@ in
     systemd.services.etebase-server = {
       description = "An Etebase (EteSync 2.0) server";
       after = [ "network.target" "systemd-tmpfiles-setup.service" ];
+      path = [ cfg.package ];
       wantedBy = [ "multi-user.target" ];
-      path = [ pythonEnv ];
       serviceConfig = {
         User = cfg.user;
         Restart = "always";
@@ -201,6 +191,7 @@ in
       };
       environment = {
         ETEBASE_EASY_CONFIG_PATH = configIni;
+        PYTHONPATH = cfg.package.pythonPath;
       };
       preStart = ''
         # Auto-migrate on first run or if the package has changed
@@ -213,12 +204,13 @@ in
       '';
       script =
         let
+          python = cfg.package.python;
           networking = if cfg.unixSocket != null
-          then "-u ${cfg.unixSocket}"
-          else "-b 0.0.0.0 -p ${toString cfg.port}";
+          then "--uds ${cfg.unixSocket}"
+          else "--host 0.0.0.0 --port ${toString cfg.port}";
         in ''
-          cd "${pythonEnv}/lib/etebase-server";
-          daphne ${networking} \
+          ${python.pkgs.uvicorn}/bin/uvicorn ${networking} \
+            --app-dir ${cfg.package}/${cfg.package.python.sitePackages} \
             etebase_server.asgi:application
         '';
     };