X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Fwebapps%2Fdiaspora.nix;h=65599b73b228e43333cb13773cd3d33c0b894368;hb=04b2ab97a0206dedb2135be26cbc097d164072b2;hp=8451c6d341da11139e3a58857b507995305a2753;hpb=7009832ab635a664e26c73cdc0ca0f8689a57774;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/modules/webapps/diaspora.nix b/modules/webapps/diaspora.nix index 8451c6d..65599b7 100644 --- a/modules/webapps/diaspora.nix +++ b/modules/webapps/diaspora.nix @@ -52,6 +52,26 @@ in ''; }; # Output variables + systemdStateDirectory = lib.mkOption { + type = lib.types.str; + # Use ReadWritePaths= instead if varDir is outside of /var/lib + default = assert lib.strings.hasPrefix "/var/lib/" cfg.dataDir; + lib.strings.removePrefix "/var/lib/" cfg.dataDir; + description = '' + Adjusted Diaspora data directory for systemd + ''; + readOnly = true; + }; + systemdRuntimeDirectory = lib.mkOption { + type = lib.types.str; + # Use ReadWritePaths= instead if socketsDir is outside of /run + default = assert lib.strings.hasPrefix "/run/" cfg.socketsDir; + lib.strings.removePrefix "/run/" cfg.socketsDir; + description = '' + Adjusted Diaspora sockets directory for systemd + ''; + readOnly = true; + }; workdir = lib.mkOption { type = lib.types.package; default = cfg.package.override { @@ -121,6 +141,11 @@ in path = [ cfg.workdir.gems pkgs.nodejs cfg.workdir.gems.ruby pkgs.curl pkgs.which pkgs.gawk ]; preStart = '' + install -m 0755 -d ${cfg.dataDir}/uploads ${cfg.dataDir}/tmp ${cfg.dataDir}/log + install -m 0700 -d ${cfg.dataDir}/tmp/pids + if [ ! -f ${cfg.dataDir}/schedule.yml ]; then + echo "{}" > ${cfg.dataDir}/schedule.yml + fi ./bin/bundle exec rails db:migrate ''; @@ -134,26 +159,13 @@ in Restart = "always"; Type = "simple"; WorkingDirectory = cfg.workdir; + StateDirectory = cfg.systemdStateDirectory; + RuntimeDirectory = cfg.systemdRuntimeDirectory; StandardInput = "null"; KillMode = "control-group"; }; unitConfig.RequiresMountsFor = cfg.dataDir; }; - - system.activationScripts.diaspora = { - deps = [ "users" ]; - text = '' - install -m 0755 -o ${cfg.user} -g ${cfg.group} -d ${cfg.socketsDir} - install -m 0755 -o ${cfg.user} -g ${cfg.group} -d ${cfg.dataDir} \ - ${cfg.dataDir}/uploads ${cfg.dataDir}/tmp \ - ${cfg.dataDir}/log - install -m 0700 -o ${cfg.user} -g ${cfg.group} -d ${cfg.dataDir}/tmp/pids - if [ ! -f ${cfg.dataDir}/schedule.yml ]; then - echo "{}" | $wrapperDir/sudo -u ${cfg.user} tee ${cfg.dataDir}/schedule.yml - fi - ''; - }; - }; }