From d3bee2a63a127de1ffe2b38acda6b1a5d92e5319 Mon Sep 17 00:00:00 2001 From: Ryan Mulligan Date: Thu, 23 Sep 2021 08:22:53 -0700 Subject: [PATCH] discourse: enable restoring backups bigger than RAM When restoring a backup, discourse decompresses the backup archive in the /share/discourse/tmp dir. Before this change, it is linked to /run which is typically backed by memory, so the backup will fail to restore if you do not have enough memory on your system to contain the backup. This has already happened to me on two small forums. This moves tmp to the StateDirectory /var/lib/discourse/tmp which is typically backed by disk. (cherry picked from commit f933c68374b9c6195dc74d26c95fc9bf240fead8) --- nixos/modules/services/web-apps/discourse.nix | 6 ++++-- pkgs/servers/web-apps/discourse/default.nix | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/web-apps/discourse.nix b/nixos/modules/services/web-apps/discourse.nix index 93298af2e3e..b28e3cf0deb 100644 --- a/nixos/modules/services/web-apps/discourse.nix +++ b/nixos/modules/services/web-apps/discourse.nix @@ -746,6 +746,8 @@ in umask u=rwx,g=rx,o= + rm -rf /var/lib/discourse/tmp/* + cp -r ${cfg.package}/share/discourse/config.dist/* /run/discourse/config/ cp -r ${cfg.package}/share/discourse/public.dist/* /run/discourse/public/ ln -sf /var/lib/discourse/uploads /run/discourse/public/uploads @@ -767,7 +769,7 @@ in ) discourse-rake db:migrate >>/var/log/discourse/db_migration.log - chmod -R u+w /run/discourse/tmp/ + chmod -R u+w /var/lib/discourse/tmp/ ${lib.optionalString (!cfg.admin.skipCreate) mkAdmin} @@ -782,7 +784,6 @@ in RuntimeDirectory = map (p: "discourse/" + p) [ "config" "home" - "tmp" "assets/javascripts/plugins" "public" "sockets" @@ -791,6 +792,7 @@ in StateDirectory = map (p: "discourse/" + p) [ "uploads" "backups" + "tmp" ]; StateDirectoryMode = 0750; LogsDirectory = "discourse"; diff --git a/pkgs/servers/web-apps/discourse/default.nix b/pkgs/servers/web-apps/discourse/default.nix index 59e3d4b18e9..0bc40d45a56 100644 --- a/pkgs/servers/web-apps/discourse/default.nix +++ b/pkgs/servers/web-apps/discourse/default.nix @@ -289,7 +289,7 @@ let cp -r . $out/share/discourse rm -r $out/share/discourse/log ln -sf /var/log/discourse $out/share/discourse/log - ln -sf /run/discourse/tmp $out/share/discourse/tmp + ln -sf /var/lib/discourse/tmp $out/share/discourse/tmp ln -sf /run/discourse/config $out/share/discourse/config ln -sf /run/discourse/assets/javascripts/plugins $out/share/discourse/app/assets/javascripts/plugins ln -sf /run/discourse/public $out/share/discourse/public