{ config, pkgs, lib, ... }: { # NixOS wants to enable GRUB by default boot.loader.grub.enable = false; # Enables the generation of /boot/extlinux/extlinux.conf boot.loader.generic-extlinux-compatible.enable = true; # A bunch of boot parameters needed for optimal runtime on RPi 3B boot.kernelParams = ["cma=32M"]; boot.loader.raspberryPi = { enable = true; version = 3; uboot.enable = true; firmwareConfig = '' hdmi_force_hotplug=1 ''; }; environment.systemPackages = with pkgs; [ raspberrypi-tools git htop vim ]; # !!! Adding a swap file is optional, but strongly recommended! swapDevices = [ { device = "/swapfile"; size = 1024; } ]; # Configure basic SSH access services.openssh = { enable = true; permitRootLogin = "yes"; }; # Cleanup tmp on startup boot.cleanTmpDir = true; # Set hostname networking.hostName = "zion"; # Create coolneng user users.users.coolneng = { isNormalUser = true; home = "/home/coolneng"; extraGroups = [ "wheel" "lp" "scanner" "docker" ]; openssh.authorizedKeys.keys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDG7JtfAqcbZV28wkNTfSWSqTOo5buH+dyT0w6SlTqq+KFh5DxREB0yGuM1UfjLpyLQ0XI7UbhCwNG28Li4yv/hwPGq63TF1kl+w4sjQKFn4bOUv1NvsfSN3oTamjfYoVsrapCiXqOvZkzEKMF47MSwOfPkqZ6ihU5V3INA0IZbl1Ri+r9MsIzvY76ZHBiF6rVqQJjdXVDbcLMViOrM56FpyK+ICo+uTkErsEbYFwevVTv9memOh778RRPesBobpZjggWOI4HXXxqk35myInYjHve9K4ox6YZMjwnwnEftONr2HyoBBcBNT+wWd1jtYxCoCWQ3vVkn4LGBDOQ3+HKb4rT3JxI66VfFyQWGJPdgJL5/ZNRlBqA7CpAtE7JaR6l7d3mCCoGW2B0atWiEXecwb8dz4CzzYm1r9Wz27L74OtPzUqcV7mQjCVDcnRsY/MtfhzyWzhB3tujVqnRtF3VrFSrm0YXS1ZWG4dltX1cfgud8s8XwwBKcFw5NdCrVxq3nRMNlGcSqbXC+RnrkK/i6ciAriZdXgFrmnBl+6qEmqIO15u2IPvDhnQs18DzRkHnPQegphhHhHix5aaqNbLfSRZNCTQaqE774X+0kuU/RWylI4muIyf4k9x+et4txeU2OC6l0W0LMpbsELzXIRr/ZBFrGHbE7/KLi8HNiAJ0KmAQ== coolneng@monolith" ]; shell = "/run/current-system/sw/bin/fish"; }; # Set vim as default editor programs.vim.defaultEditor = true; # Set timezone and synchronize NTP time.timeZone = "Europe/Brussels"; services.timesyncd.enable = true; # Enable zfs support networking.hostId = "bb26c304"; boot.supportedFilesystems = [ "zfs" ]; boot.zfs.extraPools = [ "vault" ]; # Scrub zpool monthly services.zfs.autoScrub = { enable = true; interval = "monthly"; }; # Auto-upgrade the system and reboot if needed system.autoUpgrade = { enable = true; allowReboot = true; }; # Enable zeroconf services.avahi = { enable = true; nssmdns = true; publish = { enable = true; userServices = true; }; }; # Run Nix garbage collector daily nix.gc = { automatic = true; dates = "03:15"; options = "--delete-older-than 14d"; }; # Configure fish shell programs.fish.enable = true; users.users.root.shell = "/run/current-system/sw/bin/fish"; # Import other configuration modules imports = [ ./modules/printing.nix ./modules/networking.nix ./modules/datasync.nix ./modules/hardware-configuration.nix ./modules/webstack.nix ./modules/devops.nix ./modules/containers.nix ]; }