mirror of
https://github.com/TheWanderingCrow/CrOS.git
synced 2026-01-11 17:54:08 -05:00
40 lines
1.1 KiB
Nix
40 lines
1.1 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
inputs,
|
|
...
|
|
}: let
|
|
s = inputs.nix-secrets.network.mesh;
|
|
in {
|
|
warnings =
|
|
if !builtins.hasAttr "${config.hostSpec.hostName}" s.hosts
|
|
then [''Hey you don't have a nebula config for this host, you should fix this ASAP so you can be connected to the mesh. If you don't know how to do this then contact your admin'']
|
|
else [];
|
|
|
|
sops.secrets."keys/nebula" = lib.mkIf (builtins.hasAttr "${config.hostSpec.hostName}" s.hosts) {
|
|
owner = "nebula-wce";
|
|
inherit (config.users.users.${config.hostSpec.username}) group;
|
|
};
|
|
services.nebula.networks.wce = lib.mkIf (builtins.hasAttr "${config.hostSpec.hostName}" s.hosts) {
|
|
inherit (s) ca lighthouses staticHostMap;
|
|
inherit (s.hosts.${config.hostSpec.hostName}) cert isLighthouse;
|
|
key = config.sops.secrets."keys/nebula".path;
|
|
enable = true;
|
|
firewall = lib.mkIf (!config.services.nebula.networks.wce.isLighthouse) {
|
|
inbound = [
|
|
{
|
|
host = "any";
|
|
port = "any";
|
|
proto = "any";
|
|
}
|
|
];
|
|
outbound = [
|
|
{
|
|
host = "any";
|
|
port = "any";
|
|
proto = "any";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|