Commit Graph

13 Commits

Author SHA1 Message Date
647b20b934 refactor(flake): split assembly by concept 2026-08-29 17:05:43 -04:00
1ba3bdf8d6 refactor(flake): move assembly code out of lib 2026-08-29 17:05:43 -04:00
f767b613a0 refactor(reverse-proxy): move module under services 2026-08-28 00:11:29 -04:00
f45aa44ead refactor(registry): add stable uid registry 2026-08-25 21:45:56 -04:00
45c6d01b1f refactor(reverse-proxy): use route registry 2026-08-24 21:58:54 -04:00
2c6d586cf5 feat(copyparty): trust reverse proxy headers 2026-08-22 14:05:48 -04:00
c50e996851 feat(reverse-proxy): collect fleet routes 2026-08-17 23:04:13 -04:00
0141962fef fix(reverse-proxy): proxy Gitea SSH stream 2026-08-17 09:14:39 -04:00
114f0445cf feat(reverse-proxy): add Pikachu reverse proxy guest 2026-08-17 00:01:54 -04:00
409a3cbc7f feat(copyparty): add NixOS guest 2026-08-16 20:31:10 -04:00
2d43a9853d feat(actualbudget): add NixOS guest 2026-08-11 08:36:02 -04:00
969737b6b5 feat(guests): let a guest nest OCI containers (task 0009)
Add a `nesting` placement field to the Host-side guest interface, a bool
off by default. On, it grants the guest's container the prerequisites its
interior needs to run Podman and other OCI containers: the `CAP_NET_ADMIN`
capability an OCI runtime uses to build its bridges and firewall rules,
and the `/dev/net/tun` and `/dev/fuse` device nodes it reaches for to
network those containers and back their overlay storage. Off, both the
capability and device lists are empty, so a non-nesting guest is untouched.

cgroup delegation, the other nested prerequisite, the NixOS container
backend already grants every container unconditionally, so the Skeleton
records it with an absence pointer rather than re-emitting it.

Add a nesting-sample guest whose interior defines an `oci-containers`
workload on Podman, and enable it on neogaia with `nesting` on, so the
path builds end to end through the Host's `nix flake check` — which pulls
in podman and the generated container unit for the nested system.
2026-07-25 22:10:46 -04:00
e7d7eb14e1 feat: introduce guests as nested-container definitions
Add a third auto-loaded kind beside the host and the module: the guest, a
reusable definition under guests/ that a host enables like a module and that
realizes its interior as a systemd-nspawn nested container.

Split the shared base config so a guest can stand on it.
base.nix now holds the substrate both bases share — the primary user,
home-manager, and the unstable/stable overlays.
system.nix keeps the host-only machinery, and a new guest.nix is the slim
guest-base: it imports the full modules tree, pins the interior release, and
auto-enables the toolkit bundle and SSH so any guest is workable on sight.

Give modules.ssh a guest flavor.
A host restores its host keys from secrets as before, while a guest sets
hostKeys.restore = false, names no sops files, and self-generates a host key,
so it holds no age key of its own.

The lib grows a guest helper that declares the guests.<path> namespace with an
enable and a backend field.
Only the container backend is built; microvm is a reserved value that trips a
clear build-time assertion rather than silently building nothing.

A sample guest exercises the whole path, and neogaia enables it, so the guest
interior builds through the existing nix flake check seam.
2026-07-25 13:19:07 -04:00