1.1 KiB
1.1 KiB
1. Add port info to hosts
Re-use hosts
setup and add domain and port information to each host
"overseerr" = {
ip = "192.168.0.105";
mac = "8E:21:7F:88:3A:83";
# new stuff
exposes = {
requests = {
domain = "requests.xirion.net";
port = 3000;
};
...
};
}
which then can get translated to nginx config:
virtualHosts."requests.xirion.net" = proxy "http://192.168.0.105:80";
Ideally hosts should also be able to access their own host information more easily so
that in service config one could use thisHost.exposes.requests.port
or similar,
and the firewall can automatically be opened
2. Authoritative nameserver
Using the definitions from (1), we can then also build authoritative DNS records
by folding over hosts[i].exposes.requests.domain
and collating that with its realm (and therefore external IP)
This also means I should probably put the external IP in some kind of meta block per realm.
dns.nix seems to be a nice DSL for DNS stuff