1 { pkgs, lib, config, inputs, ... }:
3 domain = "sourcephile.fr";
9 (inputs.julm-nix + "/share/nebula/sourcephile.fr.nix")
11 services.nebula.networks.${domain} = {
17 outbound = [{ port = "any"; proto = "any"; host = "any"; }];
18 inbound = [{ port = "any"; proto = "any"; host = "any"; }];
21 networking.nftables.ruleset = ''
23 services.fail2ban.ignoreIP = [
26 networking.networkmanager.unmanaged = [ config.services.nebula.networks.${domain}.tun.device ];
27 # Apparently required to get NAT reflection.
28 services.upnpc.enable = true;
29 services.upnpc.redirections = [
31 description = "Nebula ${domain}";
35 service.requiredBy = [ "nebula@${domain}.service" ];
36 service.before = [ "nebula@${domain}.service" ];
39 systemd.services."nebula@${domain}" = {
41 Upholds = [ "upnpc-${toString port}.service" ];
44 #boot.kernel.sysctl."net.ipv4.ip_forward" = 1;