{ config , pkgs , lib , ... }: with lib; let secretsPath = config.dadada.secrets.path; wg0PrivKey = "${config.networking.hostName}-wg0-key"; wg0PresharedKey = "${config.networking.hostName}-wg0-preshared-key"; in { imports = [ ./hardware-configuration.nix ]; networking.hostName = "pruflas"; services.logind.lidSwitch = "ignore"; services.hydra = { enable = true; package = pkgs.hydra-unstable; hydraURL = "https://hydra.dadada.li"; notificationSender = "hydra@localhost"; buildMachinesFiles = [ ]; useSubstitutes = true; listenHost = "hydra.dadada.li"; port = 3000; }; nix.buildMachines = [ { hostName = "localhost"; system = "x86_64-linux"; supportedFeatures = [ "kvm" "nixos-test" "big-parallel" "benchmark" ]; maxJobs = 8; } ]; services.nginx = { recommendedTlsSettings = true; recommendedOptimisation = true; recommendedGzipSettings = true; logError = "/dev/null"; appendHttpConfig = '' access_log off; ''; }; dadada.admin.enable = true; dadada.backupClient = { bs.enable = true; }; age.secrets.${wg0PrivKey}.file = "${secretsPath}/${wg0PrivKey}.age"; age.secrets.${wg0PresharedKey}.file = "${secretsPath}/${wg0PresharedKey}.age"; networking.wireguard = { enable = true; interfaces.uwupn = { allowedIPsAsRoutes = true; privateKeyFile = config.age.secrets.${wg0PrivKey}.path; ips = [ "10.11.0.39/32" "fc00:1337:dead:beef::10.11.0.39/128" ]; peers = [ { publicKey = "tuoiOWqgHz/lrgTcLjX+xIhvxh9jDH6gmDw2ZMvX5T8="; allowedIPs = [ "10.11.0.0/22" "fc00:1337:dead:beef::10.11.0.0/118" "192.168.178.0/23" ]; endpoint = "53c70r.de:51820"; persistentKeepalive = 25; presharedKeyFile = config.age.secrets.${wg0PresharedKey}.path; } ]; }; }; networking.useDHCP = false; networking.interfaces."enp0s25".useDHCP = true; networking.firewall = { enable = true; allowPing = true; allowedTCPPorts = [ 22 # SSH 80 443 # HTTPS 3000 # Hydra ]; allowedUDPPorts = [ 51234 # Wireguard 51235 # Wireguard ]; }; boot.kernelModules = [ "kvm-intel" ]; # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; # Desktop things for media playback services.xserver.enable = true; services.xserver.displayManager.gdm.enable = true; services.xserver.desktopManager.gnome.enable = true; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; hardware.pulseaudio.enable = false; environment.systemPackages = [ pkgs.spotify pkgs.mpv ]; users.users."media" = { isNormalUser = true; description = "Media playback user"; extraGroups = [ "users" "video" ]; # allow anyone with physical access to log in password = "media"; }; networking.domain = "dadada.li"; networking.tempAddresses = "disabled"; networking.networkmanager.enable = false; users.mutableUsers = true; dadada.networking.localResolver.enable = true; dadada.networking.localResolver.uwu = true; dadada.networking.localResolver.s0 = true; dadada.autoUpgrade.enable = mkDefault true; documentation.enable = false; documentation.nixos.enable = false; services.journald.extraConfig = '' SystemKeepFree = 2G ''; system.stateVersion = "20.09"; }