aboutsummaryrefslogtreecommitdiff
path: root/docs/nixos-rebuild-onsite.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'docs/nixos-rebuild-onsite.adoc')
-rw-r--r--docs/nixos-rebuild-onsite.adoc44
1 files changed, 44 insertions, 0 deletions
diff --git a/docs/nixos-rebuild-onsite.adoc b/docs/nixos-rebuild-onsite.adoc
new file mode 100644
index 0000000..80c8583
--- /dev/null
+++ b/docs/nixos-rebuild-onsite.adoc
@@ -0,0 +1,44 @@
+= NixOS rebuild on the router
+
+WARNING: This is pretty slow.
+
+To rebuild NixOS directly on device something like 2GB of memory is required.
+This pretty much is covered only by Turris Omnia 2G version and even that might
+not be enough. Thus if you want to rebuild NixOS on the device you need the
+SWAP. There is in default configure zram SWAP but that won't be enough. It is
+highly suggested to create swap file of something like 2GB or 4GB size.
+
+The creation and first addition of swap can be done like this (this expects that
+used file-system is BTRFS):
+
+[source,sh]
+----
+sudo truncate -s 4G /run/swap
+sudo chattr +C /run/swap
+sudo btrfs property set /run/swap compression none
+sudo chmod 600 /run/swap
+sudo mkswap /run/swap
+sudo swapnon -p 0 /run/swap
+----
+
+Few notes here... Swap file is created by root and set to be accessible only by
+root. For BTRFS the copy-on-write functionality is disabled and compression for
+it. The swap itself is then added with lowest priority to prefer zram swap and
+thus reduce real swap usage.
+
+Do not forget to add this swap file to your NixOS configuration so it is added
+on every boot. Edit file `/etc/nixos/configuration.nix` and add the following
+lines:
+
+[source,nix]
+----
+swapDevices = [
+ {
+ device = "/run/swap";
+ priority = 0;
+ }
+];
+----
+
+Then you can pretty much manage it as any other NixOS device using
+`nixos-rebuild` script running directly on the device, just very slowly.