From 316da060e9d8011cb351bc87ce667e9178578496 Mon Sep 17 00:00:00 2001
From: Florian Sesser <florian@private.storage>
Date: Wed, 11 Aug 2021 14:10:11 +0000
Subject: [PATCH] Make systemd create a directory for our state

---
 morph/lib/issuer.nix     | 2 +-
 nixos/modules/issuer.nix | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/morph/lib/issuer.nix b/morph/lib/issuer.nix
index 2c30f075..2399310a 100644
--- a/morph/lib/issuer.nix
+++ b/morph/lib/issuer.nix
@@ -54,6 +54,6 @@ rec {
     ristrettoSigningKeyPath = deployment.secrets.ristretto-signing-key.destination;
     stripeSecretKeyPath = deployment.secrets.stripe-secret-key.destination;
     database = "SQLite3";
-    databasePath = "/var/db/vouchers.sqlite3";
+    databasePath = "/var/lib/zkapissuer/vouchers.sqlite3";
   };
 }
diff --git a/nixos/modules/issuer.nix b/nixos/modules/issuer.nix
index f28bec2d..2666f452 100644
--- a/nixos/modules/issuer.nix
+++ b/nixos/modules/issuer.nix
@@ -162,6 +162,13 @@ in {
         Group = "zkapissuer";
       };
 
+      # Make systemd create a User/Group owned directory for PaymentServer
+      # state. According to the docs at
+      # https://www.freedesktop.org/software/systemd/man/systemd.exec.html#RuntimeDirectory=
+      # "The specified directory names must be relative" ... this
+      # makes systemd create /var/lib/zkapissuer/ for us:
+      serviceConfig.StateDirectory = "zkapissuer";
+
       script =
         let
           # Compute the right command line arguments to pass to it.  The
-- 
GitLab