liminix

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit b847d26bdff6deefe4ce411d2e7b9314b8f8e3b4
parent 64c80eefa54d2be93ffe4a99a23226e22de328bb
Author: Daniel Barlow <dan@telent.net>
Date:   Sun,  1 Nov 2026 23:02:24 +0000

think

Diffstat:
MTHOUGHTS.txt | 101+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 101 insertions(+), 0 deletions(-)

diff --git a/THOUGHTS.txt b/THOUGHTS.txt @@ -9165,3 +9165,104 @@ evaluation model as TeX why did we decide to make outputRef a function anyway and not a attrset? + +Thu Sep 24 21:50:49 BST 2026 + +we can't build a filesystem image using btrfs because I didn't implement it + +the tftpboot image for rotuer on turris is pretty big, because ext2fs + +Tue Sep 29 22:13:15 BST 2026 + +dnsmasq won't start, because it is trying to add an inotify watch to +the directory containing its resolv.conf, which is an output of the +resonvconf service, and outputs are root:system 2751. I don't seem to +have documented why these perms except that it used to be 2750 and tbh +they're not _unreasonable_: read-only for group and execute-only for +other. + +however, dnsmasq is operating as dnsmasq:dnsmasq + +I am thinking that the least invasive way to deal with this would be +to make an `outputs` group for the outputs and make dnsmasq (or any +other non-root daemon) a member of it. + +.... no, I have misdiagnosed. + +# cat /etc/group +dnsmasq:x:51:dnsmasq +root:x:0:root +system:x:1:root,dnsmasq + +Further investigation revealed that dnsmasq has code to drop its +supplementary groups. Admittedly it does this before setuid so they +wwould have been root's supplementary groups anyway, but insofar as I +understand it, just calling setuid() doesn't add the new user's +supplementary groups + +What we might try: creating a subdir "etc" in +/run/services/outputs/resolvconf with permissions that dnsmasq can read, +and putting the resolv.conf file inside that. It should be noted that +there are a bunch of examples that expect it not to move, so +maybe we need it in both places + +Or the dnsmasq service could copy the resolvconf into some directory +it owns before starting the daemon, but i think that's not as good a +solution as it won't pick up changes to the resolvconf without +restarting. (Unless it gets restarted anyway? dnsmasq longrun +doesn't have resolvconf as a dependency (it can't be, otherwise lan +name resoution would break when the internet is down) + +Or we could say that services whose outputs are "public" are +responsible for setting permissions on their outputs directory + + +Sat Oct 3 23:32:10 BST 2026 + +let's try and set up rotuer with logging and secrets + +we will need to dick around with name resolution so that loghost, +undercroft, certifix are all available + +ideally we would do this without changing the configuration, such that +the same device could be plugged into the test lan or into my actual lan +without needing a rebuild + +this is made a tiny(sic) bit more complicated because rotuer expects to +be authoritative for .lan (so maybe we need undercroft.telent.net) + +this would mean we are sending logs across the internet, is this a big deal? + +to log without going to the internet ... the only connection from the +device is its wan port, which provides a default route for everything +that's not 192.168.8.x, so we would have to look into the + +Sun Oct 11 13:23:21 BST 2026 + +I think it might be a lot easier if we give up and have two configurations +for dev and live. + +For dev, we will give the wan port an address as well as using it for +pppoe, and we will make alias loghost,undercroft,certifix to bordervm, +and bordervm will need an sni-aware proxy to steer those requests to the +actual services. That means we can continue to use *.lan addresses + +Sun Oct 25 20:17:30 GMT 2026 + +Added rotuer.test.nix which imports the real rotuer as +a module, will mkForce the differences between dev and live + +note that certifix is plain http so sni won't help there + +we can add hosts entries in rotuer.test.nix to point +loghost,undercroft,certifix at bordervm, so we don't need anything +too fancy on that vm + +loghost.telent.net:443 +undercroft.lan:19614/ +certifix.lan:19614/ # actually this is loaclhost.lan, no host alias yet + +Tue Oct 27 23:42:45 GMT 2026 + +certifix server.crt had expired, and doesn't have certifix.lan as a SAN +which we should probably add. I did recreate it but without that extra name