summary refs log tree commit diff
path: root/nixos/modules/services/networking
diff options
context:
space:
mode:
authorMalte Voos <malte@malvo.org>2021-08-14 22:16:58 +0200
committerMalte Voos <malte@malvo.org>2021-08-23 14:22:56 +0200
commit59d7d726f11b8c759ab1b804fa71c15cc1b25627 (patch)
tree9fe4858b4084457a773617b1f687f19c6db4b8e2 /nixos/modules/services/networking
parent069cd2bdc5303b9aafece12544138bac35160f7c (diff)
downloadnixpkgs-59d7d726f11b8c759ab1b804fa71c15cc1b25627.tar
nixpkgs-59d7d726f11b8c759ab1b804fa71c15cc1b25627.tar.gz
nixpkgs-59d7d726f11b8c759ab1b804fa71c15cc1b25627.tar.bz2
nixpkgs-59d7d726f11b8c759ab1b804fa71c15cc1b25627.tar.lz
nixpkgs-59d7d726f11b8c759ab1b804fa71c15cc1b25627.tar.xz
nixpkgs-59d7d726f11b8c759ab1b804fa71c15cc1b25627.tar.zst
nixpkgs-59d7d726f11b8c759ab1b804fa71c15cc1b25627.zip
nixos/gnunet: improve service configuration
Co-authored-by: Michele Guerini Rocco <rnhmjoj@users.noreply.github.com>
Co-authored-by: Aaron Andersen <aaron@fosslib.net>
Diffstat (limited to 'nixos/modules/services/networking')
-rw-r--r--nixos/modules/services/networking/gnunet.nix22
1 files changed, 13 insertions, 9 deletions
diff --git a/nixos/modules/services/networking/gnunet.nix b/nixos/modules/services/networking/gnunet.nix
index 69d4ed04775..cf3d1841a97 100644
--- a/nixos/modules/services/networking/gnunet.nix
+++ b/nixos/modules/services/networking/gnunet.nix
@@ -6,12 +6,15 @@ let
 
   cfg = config.services.gnunet;
 
-  homeDir = "/var/lib/gnunet";
+  stateDir = "/var/lib/gnunet";
 
-  configFile = with cfg; pkgs.writeText "gnunetd.conf"
+  configFile = with cfg;
     ''
       [PATHS]
-      SERVICEHOME = ${homeDir}
+      GNUNET_HOME = ${stateDir}
+      GNUNET_RUNTIME_DIR = /run/gnunet
+      GNUNET_USER_RUNTIME_DIR = /run/gnunet
+      GNUNET_DATA_HOME = ${stateDir}/data
 
       [ats]
       WAN_QUOTA_IN = ${toString load.maxNetDownBandwidth} b
@@ -137,8 +140,6 @@ in
     users.users.gnunet = {
       group = "gnunet";
       description = "GNUnet User";
-      home = homeDir;
-      createHome = true;
       uid = config.ids.uids.gnunet;
     };
 
@@ -148,17 +149,20 @@ in
     # so install them globally.
     environment.systemPackages = [ cfg.package ];
 
+    environment.etc."gnunet.conf".text = configFile;
+
     systemd.services.gnunet = {
       description = "GNUnet";
       after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
+      restartTriggers = [ configFile ];
       path = [ cfg.package pkgs.miniupnpc ];
-      environment.TMPDIR = "/tmp";
-      serviceConfig.PrivateTmp = true;
-      serviceConfig.ExecStart = "${cfg.package}/lib/gnunet/libexec/gnunet-service-arm -c ${configFile}";
+      serviceConfig.ExecStart = "${cfg.package}/lib/gnunet/libexec/gnunet-service-arm -c /etc/gnunet.conf";
       serviceConfig.User = "gnunet";
       serviceConfig.UMask = "0007";
-      serviceConfig.WorkingDirectory = homeDir;
+      serviceConfig.WorkingDirectory = stateDir;
+      serviceConfig.RuntimeDirectory = "gnunet";
+      serviceConfig.StateDirectory = "gnunet";
     };
 
   };