{ lib, pkgs, ... }: { imports = [ ./fleet.nix ./utils/bento.nix ./utils/modules/sops.nix ./utils/modules/lego/lego.nix ./utils/modules/nginx.nix ./utils/modules/autoupgrade.nix ./utils/modules/promtail ./utils/modules/borgbackup.nix # ./utils/modules/netdata.nix # fw ./modules/network-prefix.nix ./modules/networking.nix ./modules/setupnetwork.nix ./modules/firewall.nix ./modules/dhcp4.nix ./modules/unbound.nix ./modules/avahi.nix ./modules/openconnect.nix ./modules/wireguard.nix ./modules/podman.nix ./modules/omada.nix ./modules/ddclient.nix # ./modules/wol.nix # microvm ./modules/microvm.nix ./modules/gitea-vm.nix ./modules/vscode-server.nix # Add VS Code Server microvm # web ./modules/web # git ./modules/gitea.nix ./modules/fwmetrics.nix # ha customers ./modules/ha-customers # ./modules/firefox-sync.nix # home assistant ./modules/home-assistant ./modules/deconz.nix # ./modules/mopidy.nix # ./modules/mosquitto.nix ./modules/snapserver.nix # gaming # ./modules/palworld.nix # ./modules/ark-survival-evolved.nix ./modules/foundry-vtt.nix # setup network ./modules/setupnetwork.nix ./hardware-configuration.nix ]; networkPrefix = "10.42"; nixpkgs.overlays = [ (import ./utils/overlays/packages.nix) ]; nixpkgs.config.permittedInsecurePackages = [ "openssl-1.1.1w" ]; nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "mongodb" ]; time.timeZone = "Europe/Vienna"; services.logind.extraConfig = "RuntimeDirectorySize=2G"; sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; sops.defaultSopsFile = ./secrets.yaml; environment.systemPackages = with pkgs; [ bento conntrack-tools # view network connection states ethtool # manage NIC settings (offload, NIC feeatures, ...) git htop # to see the system load tcpdump # view network traffic vim # my preferred editor wol inotify-tools ]; nix = { settings.auto-optimise-store = true; gc = { automatic = true; dates = "weekly"; options = "--delete-older-than 60d"; }; # Free up to 1GiB whenever there is less than 100MiB left. extraOptions = '' min-free = ${toString (100 * 1024 * 1024)} max-free = ${toString (1024 * 1024 * 1024)} ''; }; services.tlp = { enable = true; settings = { CPU_SCALING_GOVERNOR_ON_AC = "powersave"; # powersave or performance CPU_ENERGY_PERF_POLICY_ON_AC = "power"; # power or performance # CPU_MIN_PERF_ON_AC = 0; # CPU_MAX_PERF_ON_AC = 100; # max 100 }; }; systemd.services = { powertop = { wantedBy = [ "multi-user.target" ]; after = [ "multi-user.target" ]; description = "Powertop tunings"; path = [ pkgs.kmod ]; serviceConfig = { Type = "oneshot"; RemainAfterExit = "yes"; ExecStart = "${pkgs.powertop}/bin/powertop --auto-tune && for dev in /sys/class/net/*; do echo on > \"$dev/device/power/control\"; done'"; }; }; }; boot.tmp.cleanOnBoot = true; zramSwap.enable = true; networking.hostName = "fw"; services.openssh.enable = true; users.users.root.openssh.authorizedKeys.keys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDN/2SAFm50kraB1fepAizox/QRXxB7WbqVbH+5OPalDT47VIJGNKOKhixQoqhABHxEoLxdf/C83wxlCVlPV9poLfDgVkA3Lyt5r3tSFQ6QjjOJAgchWamMsxxyGBedhKvhiEzcr/Lxytnoz3kjDG8fqQJwEpdqMmJoMUfyL2Rqp16u+FQ7d5aJtwO8EUqovhMaNO7rggjPpV/uMOg+tBxxmscliN7DLuP4EMTA/FwXVzcFNbOx3K9BdpMRAaSJt4SWcJO2cS2KHA5n/H+PQI7nz5KN3Yr/upJN5fROhi/SHvK39QOx12Pv7FCuWlc+oR68vLaoCKYhnkl3DnCfc7A7" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIRQuPqH5fdX3KEw7DXzWEdO3AlUn1oSmtJtHB71ICoH Generated By Termius" ]; # backups borgbackup.repo = "u149513-sub2@u149513-sub2.your-backup.de:borg"; system.stateVersion = "22.05"; }