!dGrjXvKnCwVLevgmzo:matrix.org

Stockholm NixOS meetup group

49 Members
Monthly meetups in Stockholm, Sweden around Nix releated topics(nixos.org)14 Servers

Load older messages


SenderMessageTime
16 Sep 2025
@lillecarl:matrix.orglillecarlSounds good to me! ๐Ÿ˜ 16:11:59
@lillecarl:matrix.orglillecarlRedacted or Malformed Event17:26:06
@markuskowa:matrix.orgmarkuskowaWe were alternating between Tuesday and Wednesday to make it the decision easier. 18:15:49
18 Sep 2025
@lillecarl:matrix.orglillecarlhttps://github.com/Lillecarl/dinix I wrote a little thing that generates dinit (the init system) configuration from Nix (using the module system). Dinit is VERY light, the overhead is ~4MB RAM and "no CPU". This enables writing OS and init independent "service collections". It can run as pid1 in Linux (but don't try this), pid1 in containers (reaps zombies and such) or random pid in user mode where it's just a process supervisor. Also works on MacOS (I don't have a Mac machine so I can't verify though). So you could create a service collection with nginx, postgres, whatever and run it from a single nix command. You could even run dinit from a systemd unit if you'd want. So you can run the same service collection from: Containers, Systemd, commandline and Nix brings the executables ๐Ÿ˜„ Here's an example nginx module that runs on 8080 and presents "Hello World" https://github.com/Lillecarl/dinix/blob/main/config.nix06:57:54
@lillecarl:matrix.orglillecarl *

https://github.com/Lillecarl/dinix I wrote a little thing that generates dinit (the init system) configuration from Nix (using the module system).

Dinit is VERY light, the overhead is ~4MB RAM and "no CPU". This enables writing OS and init independent "service collections". It can run as pid1 in Linux (but don't try this), pid1 in containers (reaps zombies and such) or random pid in user mode where it's just a process supervisor.

Also works on MacOS (I don't have a Mac machine so I can't verify though). So you could create a service collection with nginx, postgres, whatever and run it from a single nix command. You could even run dinit from a systemd unit if you'd want.

So you can run the same service collection from: Containers, Systemd, commandline and Nix brings the executables ๐Ÿ˜„

Here's an example nginx module that runs on 8080 and presents "Hello World" https://github.com/Lillecarl/dinix/blob/main/config.nix

Edit:

//github.com/lillecarl/dinix.git";}){}).config.out.script'```
07:19:54
@lillecarl:matrix.orglillecarl *

https://github.com/Lillecarl/dinix I wrote a little thing that generates dinit (the init system) configuration from Nix (using the module system).

Dinit is VERY light, the overhead is ~4MB RAM and "no CPU". This enables writing OS and init independent "service collections". It can run as pid1 in Linux (but don't try this), pid1 in containers (reaps zombies and such) or random pid in user mode where it's just a process supervisor.

Also works on MacOS (I don't have a Mac machine so I can't verify though). So you could create a service collection with nginx, postgres, whatever and run it from a single nix command. You could even run dinit from a systemd unit if you'd want.

So you can run the same service collection from: Containers, Systemd, commandline and Nix brings the executables ๐Ÿ˜„

Here's an example nginx module that runs on 8080 and presents "Hello World" https://github.com/Lillecarl/dinix/blob/main/config.nix

Edit:

nix run --impure --expr '(import (builtins.fetchTree{type="git";url="https:
//github.com/lillecarl/dinix.git";}){}).config.out.script'
07:20:26
@lillecarl:matrix.orglillecarl *

https://github.com/Lillecarl/dinix I wrote a little thing that generates dinit (the init system) configuration from Nix (using the module system).

Dinit is VERY light, the overhead is ~4MB RAM and "no CPU". This enables writing OS and init independent "service collections". It can run as pid1 in Linux (but don't try this), pid1 in containers (reaps zombies and such) or random pid in user mode where it's just a process supervisor.

Also works on MacOS (I don't have a Mac machine so I can't verify though). So you could create a service collection with nginx, postgres, whatever and run it from a single nix command. You could even run dinit from a systemd unit if you'd want.

So you can run the same service collection from: Containers, Systemd, commandline and Nix brings the executables ๐Ÿ˜„

Here's an example nginx module that runs on 8080 and presents "Hello World" https://github.com/Lillecarl/dinix/blob/main/config.nix

Edit:

nix run --impure --expr '(import (builtins.fetchTree{type="git";url="https://github.com/lillecarl/dinix.git";}){}).config.out.script'
07:20:37
@markuskowa:matrix.orgmarkuskowaIf the generation of config files would be reusable (I.e. separated in the module system), we could reuse them for dinix, or container image generation. 09:37:16
@kacper.uminski:matrix.orgKacper Uminski Hi, all! I am currently trying to build a stateless cluster using Nixos. The main thing is that I want all things to be wiped on each boot. The idea is to have one management node serving an ipxe image over pxe, a kernel, and an initrd. The ipxe would pull the kernel and initrd, which would then torrent a root tarball, extract it, and kexec/switch_root into it. Does anyone have an idea where to even start with this? I did try nix-generators for the root kexec tarball, but that doesn't seem to work well when you already have a /nix in root already... Any suggestions would be most appreciated! :) 10:45:05
@lillecarl:matrix.orglillecarl
In reply to @markuskowa:matrix.org
If the generation of config files would be reusable (I.e. separated in the module system), we could reuse them for dinix, or container image generation.
Yep, reusable across local dev and in containers, but also if someone makes a dinix module for the "LAMP" stack we could easily stick it into systemd on a VM of your choice
13:23:30
@lillecarl:matrix.orglillecarl
In reply to @kacper.uminski:matrix.org
Hi, all! I am currently trying to build a stateless cluster using Nixos. The main thing is that I want all things to be wiped on each boot. The idea is to have one management node serving an ipxe image over pxe, a kernel, and an initrd. The ipxe would pull the kernel and initrd, which would then torrent a root tarball, extract it, and kexec/switch_root into it. Does anyone have an idea where to even start with this? I did try nix-generators for the root kexec tarball, but that doesn't seem to work well when you already have a /nix in root already... Any suggestions would be most appreciated! :)
Sounds like you've made a few "too many" decisions already. I couldn't help you, I would probably try to make a nixos iPXE image and make the iPXE server a nix build cache instead, build new images when you need new systemd or kernel
13:25:57
@lillecarl:matrix.orglillecarlnixos-anywhere does the kexec thing already work to install nixos over "any" Linux distro, so you could investigate their thing. If you wanna use nix, use nix :p torrents don't belong in Nix (even though they map well to the store immutability) 13:27:19
@julienmalka:matrix.orgJulienMaybe some simple stuff that could work is to setup syncthing on the nixos machine such that when itโ€™s brought up it downloads P2P all the state of the machine13:29:39
@markuskowa:matrix.orgmarkuskowahttps://github.com/markuskowa/nix-system/blob/master/modules%2Fkea.nix Kacper Uminski: you can generate pxe capable image directly with nixos (see my example above)13:30:05
@lillecarl:matrix.orglillecarl (ask in #users:nixos.org too, we're a small community) 13:31:26
@lillecarl:matrix.orglillecarl
In reply to @markuskowa:matrix.org

https://github.com/markuskowa/nix-system/blob/master/modules%2Fkea.nix

Kacper Uminski: you can generate pxe capable image directly with nixos (see my example above)

I love you man! โค๏ธโค๏ธ๐Ÿ˜„
13:32:00
@lillecarl:matrix.orglillecarl
In reply to @julienmalka:matrix.org
Maybe some simple stuff that could work is to setup syncthing on the nixos machine such that when itโ€™s brought up it downloads P2P all the state of the machine
Yes, let nix do the nixy bits, how you manage state is free-for-all ๐Ÿ˜
13:33:14
@kacper.uminski:matrix.orgKacper UminskiYes, I realize the idea is quite cursed. The main idea is to minimize stress on the control node, so a centralized cache or pxe server for the full filesystem is a no-no. All filesystems have to be reformatted on reboot, including /nix/store. We already have a setup like this working with Debian, but it's hacked together using shell-scripts, python, and preseed files. Hence I am investigating alternatives. :)13:35:28
@kacper.uminski:matrix.orgKacper UminskiThanks! I will investigate this, at least for the minimal bootup. :)13:36:27
@lillecarl:matrix.orglillecarl @kacper.uminski:matrix.org: do you work for a VPN company perhaps? ๐Ÿ˜„ 13:37:46
@kacper.uminski:matrix.orgKacper UminskiNo, I'm just a member of Lysator (lysator.liu.se), a computer association in Linkรถping, and we are currently building an HPC cluster. Just as a cool tidbit, Nationella Superdatorcentrum (NSC) does the torrent-boot thing. 13:39:00
@markuskowa:matrix.orgmarkuskowa
In reply to @kacper.uminski:matrix.org
Yes, I realize the idea is quite cursed. The main idea is to minimize stress on the control node, so a centralized cache or pxe server for the full filesystem is a no-no. All filesystems have to be reformatted on reboot, including /nix/store. We already have a setup like this working with Debian, but it's hacked together using shell-scripts, python, and preseed files. Hence I am investigating alternatives. :)
I do not have the overview over your setup/requirements, but i use this PXE setup as an installer. There are many options, such as overlayfs, that you use here to customize it.
13:40:15
@lillecarl:matrix.orglillecarl @kacper.uminski:matrix.org: Boot off iPXE, dd the image to disk, kexec, rebuild. You can have multiple cache servers and will easily be able to saturate your links with NGINX from *a few* cache servers. You can share the same signing key across them and use RR DNS for loadbalancing. The torrent thing sounds like a solution to "immutable Debian" rather than content delivery 13:46:19
@lillecarl:matrix.orglillecarlIt'll be faster, no torrent startup time, only fetch what your node needs etc... :) 13:50:16
@kacper.uminski:matrix.orgKacper UminskiHmm, I will try this. Thank you!13:53:24
@kacper.uminski:matrix.orgKacper UminskiJust by the way, I am quite new to netbooting as a whole, so I do ask for leniency anytime I utter something unspeakably stupid. :)13:58:58
@markuskowa:matrix.orgmarkuskowaKacper Uminski: I run a small hpc cluster (20 nodes) at Fysikum, SU fully on NixOS. If you're interested i can show, how it is setup.15:42:05
@kacper.uminski:matrix.orgKacper UminskiThat would be very cool! Do you have a git repo for it or something?15:47:29
@markuskowa:matrix.orgmarkuskowaNo, I did not publish the configuration for security reasons.15:49:23
@kacper.uminski:matrix.orgKacper UminskiAh, yeah, that's reasonable.15:49:51

Show newer messages


Back to Room ListRoom Version: 10