This repository contains nix flake to get NixOS running on Turris routers.
Using NixOS on router has few shortcomings, and you should know about them right away so here is a list of issues you should expect:
-
NixOS is pretty memory hungry. There are few reasons for this such as Systemd and specially Journald as those simply required more memory than other alternatives. But but but… The biggest issue is NixOS itself. The wide range of configuration options in NixOS result in pretty significant memory being required on evaluation. The peak is around 2 GB and thus device with 512 MB is pretty much screwed. Thankfully Nix is not using that memory most of the time, and thus we can use swap without hampering the performance that much.
-
Stability is not ensured. This is community project and it is possible that system can get unstable with update. There are no tests, right now, outside of what users are deploying at home. Thankfully NixOS allows rollbacks but you should be prepared to use serial console, because it is not integrated with rollback functionality of Turris.
This repository provides the following functionality on top of the standard NixOS:
-
Minimal system configuration to support Turris Omnia and Mox.
-
Simple module for LEDs configurations for Turris Omnia and Mox.
-
Simple way to cross build NixOS with path:
buildPlatform.${system}.config.system.build.toplevel
-
Simple way to build tarball to deploy NixOS to Turris:
config.system.built.tarball
Important
|
This repository required Nix with flakes support thus update your Nix to the latest version and allow flakes. |