feat: Nebula mesh network overlay #12

Merged
greg merged 9 commits from klaatu/nixos:feat/nebula-mesh into main 2026-04-04 03:03:53 +00:00
7 changed files with 20 additions and 44 deletions
Showing only changes of commit 84e4c68f0e - Show all commits
-6
View File
@@ -32,12 +32,6 @@
gnome.enable = true;
nebula = {
enable = true;
unsafeRoutes = [
{
route = "10.42.0.0/16";
via = "10.157.0.2"; # genesis
}
];
};
greg marked this conversation as resolved
Review

Move this to be a default value in the module.

Move this to be a default value in the module.
podman.enable = true;
print.enable = true;
+3
View File
@@ -37,6 +37,9 @@ in
gnome.enable = false;
nebula = {
enable = true;
# genesis IS the routing node for the home LAN — it does not route through itself.
# Override the module default (which points at genesis) to avoid a routing loop.
unsafeRoutes = [ ];
greg marked this conversation as resolved Outdated
Outdated
Review

Override the default value of unsafeRoutes here, because this node is the routing node.

Override the default value of unsafeRoutes here, because this node is the routing node.
# genesis routes the home LAN (10.42.0.0/16) into the Nebula overlay.
# Sign genesis's cert with -subnets '10.42.0.0/16' (see secrets/nebula/README.md).
routesSubnet = "10.42.0.0/16";
+1 -9
View File
@@ -49,15 +49,7 @@ in
greg = {
home = true;
nebula = {
enable = true;
unsafeRoutes = [
{
route = "10.42.0.0/16";
via = "10.157.0.2"; # genesis
}
];
};
nebula.enable = true;
proxies = {
"jellyfin.home".target = "http://localhost:8096/";
"jellyfin.thehellings.lan".target = "http://localhost:8096/";
+1 -9
View File
@@ -42,15 +42,7 @@
vip = metadata.hosts.${config.networking.hostName}.ip;
priority = 255;
};
nebula = {
enable = true;
unsafeRoutes = [
{
route = "10.42.0.0/16";
via = "10.157.0.2"; # genesis
}
];
};
nebula.enable = true;
podman.enable = true;
tailscale = {
enable = true;
+1 -9
View File
@@ -85,15 +85,7 @@ in
vip = ip;
priority = 254;
};
nebula = {
enable = true;
unsafeRoutes = [
{
route = "10.42.0.0/16";
via = "10.157.0.2"; # genesis
}
];
};
nebula.enable = true;
tailscale = {
enable = true;
tags = [ "home" ];
+1 -9
View File
@@ -26,15 +26,7 @@
vipInterface = "enp12s0";
priority = 253;
};
nebula = {
enable = true;
unsafeRoutes = [
{
route = "10.42.0.0/16";
via = "10.157.0.2"; # genesis
}
];
};
nebula.enable = true;
remote-builder.enable = true;
runner = {
enable = true;
+13 -2
View File
@@ -94,8 +94,19 @@ in
};
}
);
default = [ ];
description = "List of unsafe_routes to configure on this host (for reaching non-Nebula subnets)";
# Default: route the home LAN through genesis (the home router node).
# Hosts that ARE genesis (or any other routing node) should override this to [].
default = [
{
route = "10.42.0.0/16";
via = "10.157.0.2"; # genesis's Nebula IP
}
];
description = ''
List of unsafe_routes to configure on this host (for reaching non-Nebula subnets).
Defaults to routing the home LAN (10.42.0.0/16) through genesis (10.157.0.2).
Override to [] on hosts that are themselves a routing node (e.g. genesis).
'';
};
# Whether this host IS the router for an unsafe subnet