{ 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/networking.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 # web ./modules/web # git ./modules/gitea.nix ./modules/fwmetrics.nix # ./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 ./hardware-configuration.nix ]; 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.gc = { automatic = true; options = "--delete-older-than 60d"; }; services.auto-cpufreq.enable = true; services.auto-cpufreq.settings = { charger = { governor = "powersave"; turbo = "auto"; }; }; boot = { kernelPackages = pkgs.linuxPackagesFor (pkgs.callPackage ./pkgs/kernel/vendor.nix {}); # kernelParams copy from Armbian's /boot/armbianEnv.txt & /boot/boot.cmd kernelParams = [ "rootwait" "earlycon" # enable early console, so we can see the boot messages via serial port / HDMI "consoleblank=0" # disable console blanking(screen saver) "console=ttyS2,1500000" # serial port "console=tty1" # HDMI # docker optimizations "cgroup_enable=cpuset" "cgroup_memory=1" "cgroup_enable=memory" "swapaccount=1" ]; }; 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"; }