docs(gateway): describe what is, not what changed
Per review: docs represent current state. Every "used to" / "no longer" clause this branch introduced is gone — including the History section in network.md, which was a whole subsection about a sync mechanism that doesn't exist. Where the removed clause was carrying a real constraint, the constraint stays and is stated in the present tense instead of as a delta: nothing narrows what the gateway's nginx can reach except the directory permissions in front of a socket, and nothing bounds `ReloadGatewayNginx` except the hard-coded unit name. Those read as rules now rather than as the story of how they came to be rules.
This commit is contained in:
parent
07852cabc1
commit
98d895cf9e
15 changed files with 77 additions and 146 deletions
|
|
@ -1,10 +1,9 @@
|
|||
# Single nginx in front of every hyperhive web surface — dashboard,
|
||||
# per-agent UIs (sub-path), forge + matrix (sub-domain), .well-known
|
||||
# delegations — plus the hive-internal dnsmasq resolver. Both run on the
|
||||
# HOST, next to hive-c0re. They used to live in a `hive-gateway`
|
||||
# container that shared the host netns anyway, so the boundary bought no
|
||||
# network isolation and cost a resolv.conf sync, a reload that had to
|
||||
# cross the machine bus, and four bind mounts.
|
||||
# HOST, next to hive-c0re: nginx binds the host's :80/:443 and dnsmasq
|
||||
# answers on the hive bridge, so neither can be confined to a network
|
||||
# namespace of its own.
|
||||
# Full vhost map + discovery flow + design rationale in
|
||||
# `docs/gateway.md`. Layout: ./options.nix (option declarations),
|
||||
# ./vhosts.nix (the nginx virtual-host tree), ./error-pages.nix
|
||||
|
|
@ -106,11 +105,9 @@ in
|
|||
];
|
||||
|
||||
# Ensure the gateway state dirs exist at host boot, before anything
|
||||
# reads or writes them. They used to double as bind-mount sources
|
||||
# for the container (nspawn would auto-create a missing one); the
|
||||
# rules stay because they still cover the fresh-boot window before
|
||||
# c0re has run, and they pin owner + mode rather than leaving it to
|
||||
# whoever creates the path first.
|
||||
# reads or writes them: these rules cover the fresh-boot window
|
||||
# before c0re has run, and pin owner + mode rather than leaving it
|
||||
# to whoever creates the path first.
|
||||
#
|
||||
# /run/hive-agent — per-agent UDS socket dir, written by c0re's
|
||||
# set_nspawn_flags when agents start. Owned by `hive-core` (the
|
||||
|
|
@ -273,11 +270,8 @@ in
|
|||
# unprivileged and cannot act on a system unit).
|
||||
#
|
||||
# It stays an explicit trigger rather than a systemd path unit
|
||||
# watching the file. That used to be impossible — an IN_MOVED_TO
|
||||
# from the atomic rename did not cross the nspawn mount-namespace
|
||||
# boundary — and with one machine it would now work. It is still
|
||||
# not wanted: the write and the reload belong in one causal chain
|
||||
# c0re can retry and report on (see RELOAD_PENDING), not two
|
||||
# watching the file: the write and the reload belong in one causal
|
||||
# chain c0re can retry and report on (see RELOAD_PENDING), not two
|
||||
# independent units racing on an inotify event.
|
||||
|
||||
services.nginx = {
|
||||
|
|
@ -289,10 +283,9 @@ in
|
|||
inherit (nginxTree) appendHttpConfig virtualHosts;
|
||||
};
|
||||
|
||||
# dnsmasq moves with nginx rather than staying behind: it was only in
|
||||
# the container because nginx was, and leaving it there would keep the
|
||||
# whole resolv.conf sync machine alive for a resolver that no longer
|
||||
# needs it. Host-side it reads the one /etc/resolv.conf directly.
|
||||
# dnsmasq is a host service alongside nginx, so it reads the host's
|
||||
# /etc/resolv.conf directly and picks up network changes as they
|
||||
# happen — no copy to keep in sync.
|
||||
services.dnsmasq = import ./dnsmasq.nix {
|
||||
inherit
|
||||
lib
|
||||
|
|
|
|||
Loading…
Reference in a new issue