diff options
author | Félix Baylac-Jacqué <felix@alternativebit.fr> | 2022-03-16 10:25:41 +0100 |
---|---|---|
committer | Félix Baylac-Jacqué <felix@alternativebit.fr> | 2022-03-17 15:22:14 +0100 |
commit | 71d9048f72e4ec7afffbcd562f14d53714110522 (patch) | |
tree | 219f0dbce2ff2bac1a25a8202616f355e1ced361 /nixos | |
parent | 8b7845fee9097594ac84745a959528cae5dd0187 (diff) | |
download | nixpkgs-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.nix | 8 |
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 ''; |