summaryrefslogtreecommitdiff
path: root/modules/nixos/profiles
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nixos/profiles')
-rw-r--r--modules/nixos/profiles/server.nix14
1 files changed, 11 insertions, 3 deletions
diff --git a/modules/nixos/profiles/server.nix b/modules/nixos/profiles/server.nix
index a4eae44..fe369ef 100644
--- a/modules/nixos/profiles/server.nix
+++ b/modules/nixos/profiles/server.nix
@@ -6,6 +6,11 @@
}:
let
cfg = config.profiles.server;
+
+ # 2^30
+ # Why doesn't nix have a `pow`???
+ gb = 1024 * 1024 * 1024;
+ minimumStorageKb = 15 * gb;
in
{
options.profiles.server = {
@@ -35,9 +40,12 @@ in
};
nix.gc = {
- # Every ~2 days
- dates = "Mon,Wed,Fri *-*-* 00:00:00";
- options = "-d --delete-older-than 2d";
+ dates = "*:0/30"; # Every 30 minutes
+ # GC to stay above minimumStorageBytes
+ options = toString [
+ "--delete-older-than 5d"
+ "--max-freed \"$((${toString minimumStorageKb} - 1024 * $(df -k --output=avail /nix/store | tail -n 1)))\""
+ ];
};
traits = {