]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - nixops/modules/websites/tools/peertube/default.nix
Avoid using possibly non-existent file in activation script for peertube
[perso/Immae/Config/Nix.git] / nixops / modules / websites / tools / peertube / default.nix
index c4f38179b8edb662d99a918d5b3eef169c80f750..bb601af6176bb3070e20aa27fa09f5645359c68b 100644 (file)
@@ -22,6 +22,7 @@ in {
       description = "Peertube user";
       home = peertube.varDir;
       useDefaultShell = true;
+      extraGroups = [ "keys" ];
     };
 
     users.groups.peertube.gid = config.ids.gids.peertube;
@@ -29,8 +30,8 @@ in {
     systemd.services.peertube = {
       description = "Peertube";
       wantedBy = [ "multi-user.target" ];
-      after = [ "network.target" "postgresql.service" ];
-      wants = [ "postgresql.service" ];
+      after = [ "network.target" "postgresql.service" "tools-peertube-key.service" ];
+      wants = [ "postgresql.service" "tools-peertube-key.service" ];
 
       environment.NODE_CONFIG_DIR = "${peertube.varDir}/config";
       environment.NODE_ENV = "production";
@@ -57,12 +58,20 @@ in {
       unitConfig.RequiresMountsFor = peertube.varDir;
     };
 
+    deployment.keys.tools-peertube = {
+      destDir = "/run/keys/webapps";
+      user = "peertube";
+      group = "peertube";
+      permissions = "0640";
+      text = peertube.config;
+    };
+
     system.activationScripts.peertube = {
       deps = [ "users" ];
       text = ''
-        install -m 0755 -o peertube -g peertube -d ${peertube.varDir}
-        install -m 0755 -o peertube -g peertube -d ${peertube.varDir}/config
-        install -m 0644 -o peertube -g peertube -T ${peertube.config} ${peertube.varDir}/config/production.yaml
+        install -m 0750 -o peertube -g peertube -d ${peertube.varDir}
+        install -m 0750 -o peertube -g peertube -d ${peertube.varDir}/config
+        ln -sf /run/keys/webapps/tools-peertube ${peertube.varDir}/config/production.yaml
         '';
     };