]> git.immae.eu Git - perso/Immae/Config/Nix.git/commitdiff
WIP: Add cleanup task for mastodon
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Tue, 1 Mar 2022 00:11:13 +0000 (01:11 +0100)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Sun, 9 Apr 2023 15:16:16 +0000 (17:16 +0200)
modules/webapps/mastodon.nix

index df2dbb23dac2a2eec289a037de296790071f3c1d..76c17b4cfd07f932354d2efd1226e8fc84cbb420 100644 (file)
@@ -198,6 +198,35 @@ in
       unitConfig.RequiresMountsFor = cfg.dataDir;
     };
 
+    # To be run manually because computationnally heavy
+    systemd.services.mastodon-cleanup-manual = {
+      description = "Cleanup mastodon";
+
+      environment.RAILS_ENV = "production";
+      environment.BUNDLE_PATH = "${cfg.workdir.gems}/${cfg.workdir.gems.ruby.gemPath}";
+      environment.BUNDLE_GEMFILE = "${cfg.workdir.gems.confFiles}/Gemfile";
+      environment.SOCKET = cfg.sockets.rails;
+
+      path = [ cfg.workdir.gems cfg.workdir.gems.ruby pkgs.file ];
+
+      script = ''
+        exec ./bin/tootctl statuses remove --days 365
+      '';
+
+      serviceConfig = {
+        User = cfg.user;
+        EnvironmentFile = cfg.configFile;
+        PrivateTmp = true;
+        Type = "oneshot";
+        WorkingDirectory = cfg.workdir;
+        StateDirectory = cfg.systemdStateDirectory;
+        RuntimeDirectory = cfg.systemdRuntimeDirectory;
+        RuntimeDirectoryPreserve = "yes";
+      };
+
+      unitConfig.RequiresMountsFor = cfg.dataDir;
+    };
+
     systemd.services.mastodon-cleanup = {
       description = "Cleanup mastodon";
       startAt = "daily";