about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorFinn Behrens <me@kloenk.dev>2021-12-07 17:32:55 +0100
committerGitHub <noreply@github.com>2021-12-07 17:32:55 +0100
commit673ad7eb36ddbc2e2e150aae1d3b7d7778090e92 (patch)
tree636f49f18348c3bc5a196a9734ec77df609bde04 /nixos
parent64ed431483d384a50ebb0f515669a6d77d6f2672 (diff)
nixos/pleroma: create cookie if not existing (#149368)
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/networking/pleroma.nix11
1 files changed, 9 insertions, 2 deletions
diff --git a/nixos/modules/services/networking/pleroma.nix b/nixos/modules/services/networking/pleroma.nix
index 2f32faf387ca6..9b8382392c0a7 100644
--- a/nixos/modules/services/networking/pleroma.nix
+++ b/nixos/modules/services/networking/pleroma.nix
@@ -100,6 +100,7 @@ in {
       after = [ "network-online.target" "postgresql.service" ];
       wantedBy = [ "multi-user.target" ];
       restartTriggers = [ config.environment.etc."/pleroma/config.exs".source ];
+      environment.RELEASE_COOKIE = "/var/lib/pleroma/.cookie";
       serviceConfig = {
         User = cfg.user;
         Group = cfg.group;
@@ -116,8 +117,14 @@ in {
         # has not been updated. But the no-op process is pretty fast.
         # Better be safe than sorry migration-wise.
         ExecStartPre =
-          let preScript = pkgs.writers.writeBashBin "pleromaStartPre"
-            "${cfg.package}/bin/pleroma_ctl migrate";
+          let preScript = pkgs.writers.writeBashBin "pleromaStartPre" ''
+            if [ ! -f /var/lib/pleroma/.cookie ]
+            then
+              echo "Creating cookie file"
+              dd if=/dev/urandom bs=1 count=16 | hexdump -e '16/1 "%02x"' > /var/lib/pleroma/.cookie
+            fi
+            ${cfg.package}/bin/pleroma_ctl migrate
+          '';
           in "${preScript}/bin/pleromaStartPre";
 
         ExecStart = "${cfg.package}/bin/pleroma start";