Clone this repository
For self-hosted knots, clone URLs may differ based on your setup.
pairprogramming, radio, realwallpaper and the htgen users no longer get
their ids from stockholm's genid. NixOS keeps the ids existing users
already have in /etc/passwd and /etc/group, so nothing changes on
deployed machines; fresh installs allocate them.
The copied htgen, reaktor2 and realwallpaper modules use nixpkgs option
types instead of stockholm's, htgen's user is a small name/home
submodule (home still defaults to /home/<name>), and reaktor2 carries
its own stripAttr.
The option only fed lassul.us/ssh.pub, lassul.us/gpg.pub and makefu's
key for the download user. ssh.pub now lists every key lass logs in
with on neoprism, gpg.pub serves keys/pgp/yubi_pgp.pgp, and makefu's
key is read from kartei directly.
krebs.enable and krebs.sitemap were unused. krebs.ssl only trusted the
krebs intermediate CA, which expired on 2026-06-29, so that trust
validated nothing.
radio's playlist ACLs move from krebs.acl (setfacl -R at boot) to
systemd-tmpfiles: rwx on the playlist directory, default ACLs on its
tree so new files get rw and new directories rwx, and traverse on the
parents for lass. Existing content keeps the ACLs it already has; X is
avoided because tmpfiles applies it to existing files with an r-- mask.
Let's Encrypt refuses .r names and the vhosts on ca.r keep failing to
renew, so serve paste/cyberlocker (c.r, p.r), radio.r, radio-news.r and
yellow's flix vhosts over plain http instead.
Every machine now uses networking.firewall on networking.nftables with
the same defaults krebs.iptables had: input and forward drop, all ICMP
accepted, no reverse path filter. Open ports and trusted interfaces are
unchanged on all machines.
- interface port rules become firewall.interfaces.<if>.allowed*Ports,
interface-wide accepts trustedInterfaces
- forwarding goes through extraForwardRules; yellow keeps forward
unfiltered for the transmission namespace
- NAT rules become per-module networking.nftables.tables
- ssh-redirect: 45621 redirects to 22, new connections to 22 are reset
unless they come from lo, retiolum or wiregrill
- xerxes: the JOOL xtables target is added by jool-iptables through
ip6tables-nft, with XTABLES_LIBDIR pointing at jool's extension
- flushRuleset = false so libvirt/podman/jool tables survive reloads;
extraDeletions drops the iptables-nft tables krebs.iptables left
Rules that were silently ignored while networking.firewall was disabled,
such as clan's yggdrasil filter, now take effect.
Reference the stockholm packages we still use through
stockholm.packages.<system> instead of its overlay.
nixpkgs' pkgs.writers replaces nix-writers' top-level writeDash,
writeDashBin, writeBashBin and write (now linkFarm).
Nothing uses them; red-host reads the clan vars secretLocation directly.