{ config, pkgs, lib, ... }: { environment.systemPackages = [ pkgs.wireguard pkgs.mosh ]; networking.nat = { enable = true; externalInterface = "ens3"; internalInterfaces = [ "wg0" ]; }; networking.firewall = { allowedUDPPorts = [ 60990 ]; }; networking.wireguard.interfaces.wg0 = { ips = [ "10.0.69.1/24" ]; listenPort = 60990; privateKeyFile = "/var/lib/wireguard/private"; generatePrivateKeyFile = true; # TODO agenix secret peers = [ { # box publicKey = "Ra78mOc110K7URN5uB3m9d78iBKgeRHzT+3HkiFp9BU="; allowedIPs = [ "10.0.69.4/32" ]; } { # line publicKey = "fsb1FuGmYi89p4CVXytKw2FYamONKtoanxrgs/dJjC8="; allowedIPs = [ "10.0.69.3/32" ]; } { # curve publicKey = "XmV4AcPPND/eeSI6d9M1iahCjtymqY6DdUDEFNP/x3g="; allowedIPs = [ "10.0.69.2/32" ]; } ]; }; }