Compare commits

..

11 commits

Author SHA1 Message Date
f471cfc438
vanadium/sane-nix: init
Setup memory && storage protection mechanisms
2026-01-01 21:42:55 +01:00
41d9620820
hetzner_benchmark: set up as nix builder 2026-01-01 21:42:54 +01:00
dd15a482a5
identities/vanadium: add a root ssh key 2026-01-01 21:08:11 +01:00
8eb649216d
overlays/nix-monitored: never noisy 2026-01-01 17:44:44 +01:00
643687e477
overlays/nix-monitored: hack to drop system override of nix package 2026-01-01 17:44:44 +01:00
02f68dfc1b
vanadium: +nix-output-monitor 2026-01-01 17:44:44 +01:00
54ce4cf229
overlays/nix-monitored: don't override globally
Overriding globally would break nix-shell shebangs
2026-01-01 17:44:44 +01:00
a3884f79fd
Revert "vanadium: remove nix-monitored"
This reverts commit b9636d4cdc.
2026-01-01 17:44:44 +01:00
621944c7d2
Revert "tree-wide: remove nix-monitored"
This reverts commit da7e72db64.
2026-01-01 17:44:44 +01:00
efbb62df7e
tree-wide: remove nix-tree 2026-01-01 17:44:44 +01:00
da7e72db64
tree-wide: remove nix-monitored 2026-01-01 16:17:55 +01:00
11 changed files with 77 additions and 37 deletions

View file

@ -44,8 +44,6 @@ in
];
};
nix.package = pkgs.nix-monitored;
system.nixos =
let
rev = lib.substring 0 8 sources.nixpkgs.revision;
@ -59,6 +57,7 @@ in
./hetzner_benchmark/nixos/hardware-configuration.nix
./hetzner_benchmark/nixos/misc.nix
./hetzner_benchmark/nixos/programs.nix
./hetzner_benchmark/nixos/builder.nix
../nixosModules/common/fish.nix
../nixosModules/common/disable-command-not-found.nix

View file

@ -0,0 +1,31 @@
# https://nix.dev/tutorials/nixos/distributed-builds-setup.html
{ config, ... }:
{
users.users.remotebuild = {
isSystemUser = true;
group = "remotebuild";
useDefaultShell = true;
openssh.authorizedKeys.keys = config.users.users.root.openssh.authorizedKeys.keys;
};
users.groups.remotebuild = { };
nix = {
nrBuildUsers = 64; # defaults to 32
settings = {
trusted-users = [ "remotebuild" ];
min-free = 50 * 1024 * 1024 * 1024; # start gc when < 10 GB is available
max-free = 100 * 1024 * 1024 * 1024; # stop gc when 20 GB is available
max-jobs = "auto";
cores = 0;
};
};
systemd.services.nix-daemon.serviceConfig = {
MemoryAccounting = true;
MemoryMax = "90%";
OOMScoreAdjust = 500;
};
}

View file

@ -41,7 +41,6 @@ in
overlays = map import [
../overlays/agenix.nix
../overlays/nur.nix
../overlays/nix-tree.nix
../packages/overlay.nix
# use lix everywhere and wrap it with nom
@ -50,8 +49,6 @@ in
];
};
nix.package = pkgs.nix-monitored;
system.nixos =
let
rev = lib.substring 0 8 sources.nixpkgs.revision;

View file

@ -38,7 +38,6 @@ in
../overlays/agenix.nix
../overlays/disko.nix
../overlays/nur.nix
../overlays/nix-tree.nix
../packages/overlay.nix
];

View file

@ -52,7 +52,6 @@ in
../overlays/disko.nix
../overlays/nur.nix
../overlays/wired-notify.nix
../overlays/nix-tree.nix
../overlays/wallpapers.nix
../overlays/nil.nix
../overlays/dix.nix
@ -71,6 +70,7 @@ in
# use lix everywhere and wrap it with nom
../overlays/lix.nix
../overlays/nix-monitored.nix
];
};
@ -88,6 +88,7 @@ in
# NixOS modules
#
./vanadium/nixos/hardware-configuration.nix # generated
./vanadium/nixos/sane-nix.nix
./vanadium/nixos/fs.nix
./vanadium/nixos/restic.nix

View file

@ -79,6 +79,7 @@
pkgs.niv
pkgs.npins
pkgs.nix-tree
pkgs.nix-output-monitor
pkgs.nh
# productivity / media

View file

@ -0,0 +1,13 @@
# Protect my system from running out of storage or memory
{
nix.settings = {
min-free = 50 * 1024 * 1024 * 1024;
max-free = 100 * 1024 * 1024 * 1024;
};
systemd.services.nix-daemon.serviceConfig = {
MemoryAccounting = true;
MemoryMax = "90%";
OOMScoreAdjust = 500;
};
}

View file

@ -1,6 +1,7 @@
[
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGPq2o9pbmLRGrOpAP76eYCAscmfakDC7wPm9fmsCCQM leana@vanadium"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF5OgvihLpGaenFmZpbflF+UFsyYTZDwBZqTmSYdquC3 root@vanadium"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOcIprcqvTCicHdtn9GFM77n7fTzhG0/nAEqMp5n6W+m root@vanadium"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF5OgvihLpGaenFmZpbflF+UFsyYTZDwBZqTmSYdquC3 root@vanadium" # host
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEXzNdCA0zZ+WmeKZnhQSQtUcxnQhhDl59E3BPQfLj7Q leana@hydrogen"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIMVDmEt/12u9U4QGDZBx/Sx8itzqfQ4zWJvcC3pRZqP root@hydrogen"

View file

@ -1,10 +1,32 @@
let
sources = import ../../npins;
in
# The final nix is lix in this case
final: prev: {
nix-monitored = sources.nix-monitored.asFlake.packages.${final.stdenv.hostPlatform.system}.default.override {
inherit (final) nix;
withNotify = false; # noisy, spams "command completed" even for nix shells
final: prev:
let
nix-monitored =
sources.nix-monitored.asFlake.packages.${final.stdenv.hostPlatform.system}.default.override
{
inherit (final)
nix # Use the nix the user wants, whether it's lix or nix
nix-output-monitor # don't use the nom pinned by nix-monitored
;
withNotify = false;
};
keepNixOverride =
drv:
drv
// {
override = args: drv.override (builtins.removeAttrs args [ "nix" ]);
};
in
{
nixos-rebuild-ng = keepNixOverride (
prev.nixos-rebuild-ng.override {
nix = nix-monitored;
}
);
nix-direnv = prev.nix-direnv.override {
nix = nix-monitored;
};
}

View file

@ -1,8 +0,0 @@
# The one in nixpkgs doesn't work
# Getting nix-tree: user error (Failed parsing nix path-info output.)
let
sources = import ../../npins;
in
final: _: {
nix-tree = (import sources.nix-tree).packages.${final.stdenv.hostPlatform.system}.default;
}

View file

@ -162,22 +162,6 @@
"hash": "1rdyjmxkvyqd5blbzbwfv2b99krx6rkpdzi1ckyby8i676gf9hv7",
"frozen": true
},
"nix-tree": {
"type": "GitRelease",
"repository": {
"type": "GitHub",
"owner": "utdemir",
"repo": "nix-tree"
},
"pre_releases": false,
"version_upper_bound": null,
"release_prefix": null,
"submodules": false,
"version": "v0.8.0",
"revision": "e7ef6623cf944b80e48196d74c6531dd79943652",
"url": "https://api.github.com/repos/utdemir/nix-tree/tarball/v0.8.0",
"hash": "1ag68xnszianrfinm56mf9bhvm0pglvnmlyffjr1pxrkji8d52nc"
},
"nixos-hardware": {
"type": "Git",
"repository": {