{ outputs = { self, nixpkgs }: { # miscellaneous stuff that's important nixosModules.base = {lib, ...}: { boot.swraid.enable = lib.mkForce false; networking.hostName = "chopper"; networking.firewall.enable = true; system.stateVersion = "24.05"; sdImage.firmwarePartitionOffset = 32; nix.settings = { extra-experimental-features = [ "nix-command" "flakes" ]; }; }; # Configuration of individual users nixosModules.users = {...}: { users.users = { taneb = { isNormalUser = true; extraGroups = [ "wheel" ]; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIV9ymP4tpq11a8wfUvn8eEEwAPvZZSPZTbASLh7YxOw nvd1234@gmail.com" ]; hashedPassword = "$y$j9T$9pxQ4Zj7OirGMmgclhUb0/$YCfaYmIaaHRrkqiqdNbQSlJ7puX8bGrMCLavq6Pe1e3"; }; }; users.mutableUsers = false; }; # Configuration of SSH server nixosModules.ssh = {...}: { services.openssh = { enable = true; openFirewall = true; settings.PasswordAuthentication = false; }; }; nixosModules.zfs = {...}: { boot.supportedFilesystems = [ "zfs" ]; boot.zfs.forceImportRoot = false; boot.zfs.extraPools = [ "storage" ]; # zfs needs this for some reason networking.hostId = "488ecad2"; }; nixosModules.plex = {...}: { services.plex = { enable = true; dataDir = "/storage/data"; openFirewall = true; }; nixpkgs.config.allowUnfree = true; }; nixosConfigurations.chopper = nixpkgs.lib.nixosSystem { system = "aarch64-linux"; modules = [ (nixpkgs + "/nixos/modules/installer/sd-card/sd-image-aarch64.nix") self.nixosModules.base self.nixosModules.users self.nixosModules.ssh self.nixosModules.zfs self.nixosModules.plex ]; }; }; }