Lora SDR data

nixOS and reticulum: setup from scratch

An excellent intro to flakes is provided in this video.

If you already have a flake setup, then you can try to automatically import just the reticulum tools into your setup: see the readme file, section 'Integration with Existing NixOS Systems', in this flake repo.

The NixOS sytem in my flake (linked below) has no root user you can log in as over the Gnome desktop environment. The desktop environment requires at all times at least one user that has all root priveleges. If you want a machine to be exactly like that defined by someone else's complete machine flake (like mine cited below), but with a different machine architecture, different machine name, and different username you need to adapt the flake. You need to use the flake with your machine architecture specified by a special file, your username speicified where needed and your machine name specified. Because there is no root user to log in as via the desktop login environment, and the requirement to have one user with root priveleges defined at the first instalation of nixOS via the GUI installer, you cannot just change the flake parameters and run the flake on a new machine with the new username you chose, overwriting the only extant root-privelged user in a one-step process or 'hot swap'. One way to take someone else's flake and use the flake identically on a new machine is for the root-priveleged user, that was set at the first nixOS ISO installation, (call that user 'adingbatponder'), to stay extant on the machine while you set up the new user with the name of that new user e.g. called 'newuser'. Then you can remove the user 'adingbatponder' and leave just the user 'newuser'.

The default setting in NixOS is for a flake never to remove a user, even if that user is not stated in the flake. Therefore if the user 'adingbatponder' is to be removed from the machine. In view of the (default) way users and root priveleges are dealt with in NixOS, there are two changes that have to be made to the flake you wish to copy to your machine: first, inject your parameters (username 'me', machine architecture, and machine name); and secondly expunge 'adingbatponder' from the flake. These are 'just' edits of the flake. However a flake intended to be used like that is best designed with care to make the operations of injection and removal as sytactically easy as possible and with as many SSOTs (single source of truth) for all parameters and using DRY (do not repeat yourself) Nix code.

To achieve the desired effect of duplicating a flake from a repository onto a new machine with new username, machine name, and machine architecture, it is best to make a list of the changes you need to make to the flake and why. This list is just as well done in a stuctured way using a bash script to run the commands and make the changes to the flake files to make the process error free, reproducible and documented as possible. To make a script one pays the price of a syntax and logical flow labyrinth, so this is best navigated using Claude Code which can operate in the flake's directory and help fix the nitty gritty, but with liberal doses of cross-checking using ChatGPT. ChatGPT is an utterly remarkable tool to check code ideas. The testing of the AI results, and making improvements iteratively, is sufficinetly time-consuming that the time taken is not necessarily vastly reduced as compared to if you knew what you were doing. The remarkable thing about using AI tools to help the programming is that in fact the process, far from being a cheat, actually teaches you in a patient and priceless manner: you can ask questions, you can provide guidance, and you can point to foolish ideas to stop any rot. That infinitely patient and detailed interaction between you and the AI tool means that using Claude Ai and ChatGPT is far from being automated: it is simply a fabulous learning experience (if you have the time to spare).

The user is me, adingbatponder. The beta flake is designed to allow for it to be copied and to spawn a new user on a new machine with exactly the same comptuer setup. This process is aided by two bash scripts also listed in the cited flake repository. One script makes a second user with root priveleges; and the second script is designed to be used by that second user to remove me, adingbatponder, from the flake and computer. The result in the end is a the machine set-up, determined by the flake, but for the new machine and new user; where the software setup is essentially identical to the one in the repository.

Note that the way to run the flake is to do it on a dedicated mini computer, single board computer (SBC), or old laptop, whose contents are no longer needed, because the flake, when used in the manner described, sets up the entire compter from scratch and so assumes a completely fresh install of nixOS has been done (or replacement of the existing nixOS version). Using a virtual machine (VM) is also a good idea (Proxmox or XLC) if you only want to test things out or save getting yet another piece of harware.

These videos below show how a fresh niXOS install can be converted by use of the flake, and the bash scripts in the flake repository, to provide the reticulum tools meshchat and Nomadnet on a fresh installation.

The videos below show steps to install nixOS with Gnome Desktop on a fresh machine using this beta flake.

The video below shows the installation of the NixOS ISO:

The video below shows the use of a script from the repository to set up the computer with two users, and the removal of adingbatponder using a second script, leaving a new machine with a new user:

The script is run by running the command below (this runs a bash script, only do this on a fresh machine which can be completely wiped of all data):

curl -fL --retry 3 --retry-delay 2 https://codeberg.org/adingbatponder/reticulum_nixos_flake/raw/branch/main/bootstrap-fresh-nixos.sh -o bootstrap.sh && chmod +x bootstrap.sh && sudo ./bootstrap.sh

The video below shows some of the features of the NiOX configuration flake that was installed:

The video below shows how to use Claude to help configure your system:

Last edit 09-13-2025 MMDDYYY 06:00:00 EST

Lora SDR announce data