gateway: per-vhost public flag, private listen addresses, and IPv6 listeners
This commit is contained in:
parent
74754d1584
commit
fbbdf26a19
1 changed files with 364 additions and 25 deletions
|
|
@ -616,6 +616,33 @@ set `deploy.bao.openFirewall` without `deploy.bao.clientCaFile`. Point
|
|||
`nats.<swarm.domain>` and `bao.<swarm.domain>` in your upstream DNS at the
|
||||
address the other hives reach.
|
||||
|
||||
### Keeping a vhost off the public address
|
||||
|
||||
The gateway is one nginx per host, and a vhost answers on every address of the
|
||||
host by default, IPv4 and IPv6. To serve some vhosts only inside a private
|
||||
network (a VPN, say), list the host's addresses on that network in
|
||||
`services.hyperhive.gateway.privateListenAddresses` and set `public = false`
|
||||
on the vhosts that should stay inside:
|
||||
|
||||
```nix
|
||||
services.hyperhive.gateway = {
|
||||
privateListenAddresses = [ "10.100.0.1" "fd00:100::1" ];
|
||||
vhosts."grafana.myswarm.example".public = false;
|
||||
};
|
||||
```
|
||||
|
||||
A `public = false` vhost listens on those addresses only. The public address
|
||||
never serves it, and a request for its name there closes without a response.
|
||||
Vhosts that keep the default `public = true` answer on the private addresses
|
||||
too. The addresses can be IPv4 or IPv6 (`fd00::1` or `[fd00::1]`), and each
|
||||
must exist on the host when nginx starts. The firewall stays your call: this
|
||||
decides which vhosts nginx serves on which address, not which ports are open.
|
||||
|
||||
The gateway also listens on `[::]` by default, so the vhosts are reachable
|
||||
over IPv6. `gateway.listenIPv6` follows `networking.enableIPv6`; turn it off
|
||||
on a host whose kernel can't open an IPv6 socket. Details are in
|
||||
[`gateway.md`](../../4-implementation/networking/gateway.md#listen-addresses).
|
||||
|
||||
### WireGuard inter-hive mesh (optional)
|
||||
|
||||
The peer config above uses public HTTPS for all inter-hive traffic.
|
||||
|
|
|
|||
Loading…
Reference in a new issue