36 lines
846 B
Nix
36 lines
846 B
Nix
{ lib, config, ... }:
|
|
let
|
|
inherit (lib) flatten optional mkIf mkDefault mkMerge;
|
|
inherit (lib.my) mkOpt' mkBoolOpt';
|
|
|
|
cfg = config.my.network;
|
|
in
|
|
{
|
|
options = with lib.types; {
|
|
my.network = {
|
|
ipv4 = mkOpt' str null "Internal network IPv4 address.";
|
|
ipv6 = mkOpt' str null "Internal network IPv6 address.";
|
|
};
|
|
};
|
|
|
|
config = mkMerge [
|
|
{
|
|
networking = {
|
|
domain = mkDefault "int.nul.ie";
|
|
useDHCP = false;
|
|
enableIPv6 = mkDefault true;
|
|
useNetworkd = mkDefault true;
|
|
};
|
|
}
|
|
|
|
(mkIf config.my.build.isDevVM {
|
|
networking.interfaces.eth0.useDHCP = mkDefault true;
|
|
virtualisation = {
|
|
forwardPorts = flatten [
|
|
(optional config.services.openssh.openFirewall { from = "host"; host.port = 2222; guest.port = 22; })
|
|
];
|
|
};
|
|
})
|
|
];
|
|
}
|