{ pkgs, lib, config, ... }: let keys = import ../../../variables/keys.nix; passwords = import ../../../variables/passwords.crypt.nix; in { # TASK: new device networking.hostName = "vmd32387"; # Define your hostname. networking.domain = "contaboserver.net"; networking.firewall.enable = true; networking.firewall.allowedTCPPorts = [ # iperf3 5201 ]; networking.firewall.logRefusedConnections = false; networking.usePredictableInterfaceNames = false; networking.dhcpcd = { enable = true; persistent = true; }; networking.interfaces.eth0 = { useDHCP = true; ipv6.addresses = [ { address = "2a02:c207:3003:2387::1"; prefixLength = 64; } ]; }; networking.defaultGateway6 = { address = "fe80::1"; interface = "eth0"; }; networking.nat = { enable = true; internalInterfaces = ["ve-+"]; externalInterface = "eth0"; }; # Kubernetes # services.kubernetes.roles = ["master" "node"]; # virtualization virtualisation = {docker.enable = true;}; services.spice-vdagentd.enable = true; services.qemuGuest.enable = true; systemd.services."sshd-status" = { enable = true; description = "sshd-status service"; path = [pkgs.systemd]; script = '' systemctl status sshd | grep -i tasks ''; }; systemd.services.sshd.serviceConfig = {TasksMax = 32;}; systemd.timers."sshd-status" = { description = "Timer to trigger sshd-status periodically"; enable = true; wantedBy = ["timer.target" "multi-user.target"]; timerConfig = { OnActiveSec = "5s"; OnUnitActiveSec = "5s"; AccuracySec = "1s"; Unit = "sshd-status.service"; }; }; nix.gc = {automatic = true;}; boot.initrd.network = { enable = true; udhcpc.extraArgs = ["-x hostname:${config.networking.hostName}"]; ssh = { enable = true; authorizedKeys = keys.users.steveej.openssh; hostKeys = [ "/etc/secrets/initrd/ssh_host_rsa_key" "/etc/secrets/initrd/ssh_host_ed25519_key" ]; }; }; boot.initrd.postMountCommands = '' for iface in $(cd /sys/class/net && ls); do echo "Bringing down $iface..." ip address flush dev $iface ip link set $iface down done ''; networking.useHostResolvConf = true; containers = {}; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "20.03"; # Did you read the comment? }