summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorFélix Baylac-Jacqué <felix@alternativebit.fr>2022-03-16 10:25:41 +0100
committerFélix Baylac-Jacqué <felix@alternativebit.fr>2022-03-17 15:22:14 +0100
commit71d9048f72e4ec7afffbcd562f14d53714110522 (patch)
tree219f0dbce2ff2bac1a25a8202616f355e1ced361 /nixos
parent8b7845fee9097594ac84745a959528cae5dd0187 (diff)
downloadnixpkgs-71d9048f72e4ec7afffbcd562f14d53714110522.tar
nixpkgs-71d9048f72e4ec7afffbcd562f14d53714110522.tar.gz
nixpkgs-71d9048f72e4ec7afffbcd562f14d53714110522.tar.bz2
nixpkgs-71d9048f72e4ec7afffbcd562f14d53714110522.tar.lz
nixpkgs-71d9048f72e4ec7afffbcd562f14d53714110522.tar.xz
nixpkgs-71d9048f72e4ec7afffbcd562f14d53714110522.tar.zst
nixpkgs-71d9048f72e4ec7afffbcd562f14d53714110522.zip
nixos/pleroma: inject release cookie path to the pleroma package
We inject the release cookie path to the pleroma derivation in order
to wrap pleroma_ctl with it. Doing this allows us to remove the
systemd-injected RELEASE_COOKIE path, which was sadly
buggy (RELEASE_COOKIE should point to the *content* of the cookie, not
the file containing it).

We take advantage of this to factor out the cookie path.
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/networking/pleroma.nix8
1 files changed, 4 insertions, 4 deletions
diff --git a/nixos/modules/services/networking/pleroma.nix b/nixos/modules/services/networking/pleroma.nix
index 9b8382392c0..d94cfb17999 100644
--- a/nixos/modules/services/networking/pleroma.nix
+++ b/nixos/modules/services/networking/pleroma.nix
@@ -1,6 +1,7 @@
 { config, options, lib, pkgs, stdenv, ... }:
 let
   cfg = config.services.pleroma;
+  cookieFile = "/var/lib/pleroma/.cookie";
 in {
   options = {
     services.pleroma = with lib; {
@@ -8,7 +9,7 @@ in {
 
       package = mkOption {
         type = types.package;
-        default = pkgs.pleroma;
+        default = pkgs.pleroma.override { inherit cookieFile; };
         defaultText = literalExpression "pkgs.pleroma";
         description = "Pleroma package to use.";
       };
@@ -100,7 +101,6 @@ 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;
@@ -118,10 +118,10 @@ in {
         # Better be safe than sorry migration-wise.
         ExecStartPre =
           let preScript = pkgs.writers.writeBashBin "pleromaStartPre" ''
-            if [ ! -f /var/lib/pleroma/.cookie ]
+            if [ ! -f "${cookieFile}" ]
             then
               echo "Creating cookie file"
-              dd if=/dev/urandom bs=1 count=16 | hexdump -e '16/1 "%02x"' > /var/lib/pleroma/.cookie
+              dd if=/dev/urandom bs=1 count=16 | ${pkgs.hexdump}/bin/hexdump -e '16/1 "%02x"' > "${cookieFile}"
             fi
             ${cfg.package}/bin/pleroma_ctl migrate
           '';