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 = [ ];
# 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