main
1{
2 den.hosts.hyacine = {
3 address = {
4 ipv4.secret = {
5 name = "host-ipv4-hyacine";
6 file = ./ipv4.age;
7 };
8 ipv4.tailscale = "100.81.111.146";
9 ipv6.tailscale = "fd7a:115c:a1e0:77b2:8216:b5d3:7144:9abe";
10 };
11 };
12
13 den.aspects.hyacine = {
14 nixos = {
15 host,
16 config,
17 ...
18 }: {
19 networking = {
20 useNetworkd = true;
21 useDHCP = false;
22 usePredictableInterfaceNames = false; # Useless in VPS
23 };
24
25 systemd.network.networks = {
26 "40-eth0" = {
27 matchConfig.Name = "eth0";
28 linkConfig.RequiredForOnline = "routable";
29 };
30 };
31
32 environment.etc."systemd/network/40-eth0.network.d/99-address-n-routes.conf" = {
33 source = config.vaultix.templates.networkd-secrets.path;
34 };
35
36 vaultix.templates.networkd-secrets = {
37 content = ''
38 [Network]
39 Address=${config.vaultix.placeholder.${host.address.ipv4.secret.name}}/24
40
41 [Route]
42 Gateway=${config.vaultix.placeholder.host-gateway4-hyacine}
43 Destination=0.0.0.0/0
44 '';
45 owner = "systemd-network";
46 group = "systemd-network";
47 mode = "0440";
48 };
49 vaultix.secrets.${host.address.ipv4.secret.name}.file = host.address.ipv4.secret.file;
50 vaultix.secrets.host-gateway4-hyacine.file = ./gateway4.age;
51 };
52 };
53}