summary refs log tree commit diff
path: root/nixos/modules/services/misc/gogs.nix
diff options
context:
space:
mode:
authorRodney Lorrimar <dev@rodney.id.au>2017-04-23 15:02:08 +0100
committerRodney Lorrimar <dev@rodney.id.au>2017-04-23 15:05:44 +0100
commit0e90a05a526be87ecf8c3d8d3849bd42d1cd4539 (patch)
treece079a34dacc28f437297bf58cac11391bf2e171 /nixos/modules/services/misc/gogs.nix
parentcfa1faa37c808f0a63093b1af8e03b6624b68872 (diff)
downloadnixpkgs-0e90a05a526be87ecf8c3d8d3849bd42d1cd4539.tar
nixpkgs-0e90a05a526be87ecf8c3d8d3849bd42d1cd4539.tar.gz
nixpkgs-0e90a05a526be87ecf8c3d8d3849bd42d1cd4539.tar.bz2
nixpkgs-0e90a05a526be87ecf8c3d8d3849bd42d1cd4539.tar.lz
nixpkgs-0e90a05a526be87ecf8c3d8d3849bd42d1cd4539.tar.xz
nixpkgs-0e90a05a526be87ecf8c3d8d3849bd42d1cd4539.tar.zst
nixpkgs-0e90a05a526be87ecf8c3d8d3849bd42d1cd4539.zip
gogs service: generate the secret key only once, then reuse
Diffstat (limited to 'nixos/modules/services/misc/gogs.nix')
-rw-r--r--nixos/modules/services/misc/gogs.nix10
1 files changed, 8 insertions, 2 deletions
diff --git a/nixos/modules/services/misc/gogs.nix b/nixos/modules/services/misc/gogs.nix
index 76e6254856b..e966a50b9ec 100644
--- a/nixos/modules/services/misc/gogs.nix
+++ b/nixos/modules/services/misc/gogs.nix
@@ -180,17 +180,23 @@ in
 
       preStart = let
         runConfig = "${cfg.stateDir}/custom/conf/app.ini";
+        secretKey = "${cfg.stateDir}/custom/conf/secret_key";
       in ''
         # copy custom configuration and generate a random secret key if needed
         ${optionalString (cfg.useWizard == false) ''
           mkdir -p ${cfg.stateDir}/custom/conf
           cp -f ${configFile} ${runConfig}
-          KEY=$(head -c 16 /dev/urandom | base64)
+
+          if [ ! -e ${secretKey} ]; then
+              head -c 16 /dev/urandom | base64 > ${secretKey}
+          fi
+
+          KEY=$(head -n1 ${secretKey})
           DBPASS=$(head -n1 ${cfg.database.passwordFile})
           sed -e "s,#secretkey#,$KEY,g" \
               -e "s,#dbpass#,$DBPASS,g" \
               -i ${runConfig}
-          chmod 440 ${runConfig}
+          chmod 440 ${runConfig} ${secretKey}
         ''}
 
         mkdir -p ${cfg.repositoryRoot}