diff options
author | Rodney Lorrimar <dev@rodney.id.au> | 2017-04-23 15:02:08 +0100 |
---|---|---|
committer | Rodney Lorrimar <dev@rodney.id.au> | 2017-04-23 15:05:44 +0100 |
commit | 0e90a05a526be87ecf8c3d8d3849bd42d1cd4539 (patch) | |
tree | ce079a34dacc28f437297bf58cac11391bf2e171 /nixos/modules/services/misc/gogs.nix | |
parent | cfa1faa37c808f0a63093b1af8e03b6624b68872 (diff) | |
download | nixpkgs-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.nix | 10 |
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} |