Because of recent events, I've been thinking someone should make an s6 based replacement for nixos.

It turns out, it almost exists:
https://www.liminix.org/

"Almost", because this project focuses on routers.

#nix #nixos #liminix #s6 #s6rc

Liminix

Being an account of the victories, failures, twists, turns, and blind alleys on the path to implementing Liminix, a Nix-based system for configuring consumer wifi routers.

Liminix

Seriously looking into flashing OpenWRT onto my ER-X since the last firmware upgrade. #Liminix would be even better, but I don't have a spare to test with and it would be a new hardware target. #theFoundary

I'll have to look at my budget, maybe I can replace my main router with one of the supported liminix devices.

#liminix CI is green against nixpkgs 24.11 and unstable and I'm running out of reasons to put off releasing 1.0 any longer
https://build.liminix.org/project/liminix
Hydra - Project liminix

I have now thought long enough about the remaining shortcomings (IMO) in #liminix docs that I believe they are sufficiently well-defined to capture in a TODO list

(And no, list item #1 is not just "fix the docs")
Declaration of intent: I am working towards a #liminix 1.0 release

https://www.liminix.org/2025/03/27/pen-test.html

There, I said it out loud.
The pen (test) is mightier than the sword

The NGI0 Entrust Fund, of which Liminix is a beneficiary, also offers technical services and expertise, and one of the services on offer is a security audit.

Liminix
@algernon @wolf480pl

> eyes hurt

Right.

I use self-hosted nix hydra for #liminix and I'm glad it works because I wouldn't like to have to fix it if it didn't

#liminix had an external security audit last year (thanks to Radically Open Security for performing and to NGI0 for enabling).

Both of the actual findings they produced were to do with sloppy path handling, and now fixed, but they also offered advice on the default firewall rules

Which I am now working on but haven't actually fixed because when I started looking at it I realised that the default firewall rules have int and ppp0 hardcoded as interface names. Which although usually correct, might not be the actual interfaces if you've had some connectivity problems/failures/general weird shit because it could be ppp1 or ppp23. Or maybe your upstream wasn't a PPP connection in the first place.

So, when I've cleaned this up and merged the branch we're going to have a "zone" notation to the firewall so that you will be able to specify which interface services are associated with which zones. It's backed by a longrun service that maintains some nftables sets called @lan, @wan, @dmz or whatever other names you chose, and adds the interface managed by each service once the service knows what it is. So everything will be fine and dandy even if the interface name isn't static/known at build time.

https://gti.telent.net/dan/liminix/compare/main...firescape#diff-0c73ccdd98654afbd21fe4c4276307a13b604f62

Abbreviated Telent

@dcz @janvlug @conservancy @karen same [re federation]. Though I'm happy to give out accounts on my private gitea for established #liminix contributors, there's no way for people new to the project to get started except by old-school patch-based workflows or by using their own hosting that I can pull from.

I do mirror to github (this was fairly straightforward to set up), and it's possible that some people looking at it "over there" think that's the canonical repo
BTW I use AArch(64)

Been a while since I did one of these, but I found some time during the Christmas holidays to advance the state of Liminix a bit by finishing off the port to Belkin RT3200. It turned out to be a lot closer to finished already than I remember it, which was gratifying.

Liminix
Second attempt at dogfooding the rt3200 with #liminix is going much better

There appears to be a bug in `update.sh --fast` which is _supposed_ to restart only the affected services but in practice seems to be making the hostapd services do a restart loop. So, having to do a lot of reboots while I fiddle with firewall rules