diff --git a/flake.lock b/flake.lock index ce0e043..016496d 100644 --- a/flake.lock +++ b/flake.lock @@ -20,6 +20,22 @@ "type": "github" } }, + "nixos-hardware": { + "locked": { + "lastModified": 1723149858, + "narHash": "sha256-3u51s7jdhavmEL1ggtd8wqrTH2clTy5yaZmhLvAXTqc=", + "owner": "nixos", + "repo": "nixos-hardware", + "rev": "107bb46eef1f05e86fc485ee8af9b637e5157988", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "master", + "repo": "nixos-hardware", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1722062969, @@ -54,6 +70,7 @@ "root": { "inputs": { "home-manager": "home-manager", + "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs", "nur": "nur" } diff --git a/flake.nix b/flake.nix index 8369617..ae17900 100644 --- a/flake.nix +++ b/flake.nix @@ -10,6 +10,8 @@ }; nur.url = "github:nix-community/NUR"; + + nixos-hardware.url = "github:nixos/nixos-hardware/master"; }; outputs = { ... } @ inputs: { diff --git a/hosts/default.nix b/hosts/default.nix index eaffe8b..5ea9044 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -14,4 +14,12 @@ inputs.home-manager.nixosModules.home-manager ]; }; + "rpi" = inputs.nixpkgs.lib.nixosSystem { + modules = [ + ./rpi + ../modules + inputs.home-manager.nixosModules.home-manager + inputs.nixos-hardware.nixosModules.raspberry-pi-4 + ]; + }; } diff --git a/hosts/rpi/default.nix b/hosts/rpi/default.nix new file mode 100644 index 0000000..c526ca0 --- /dev/null +++ b/hosts/rpi/default.nix @@ -0,0 +1,57 @@ +{ config, pkgs, ... }: +{ + config = { + boot = { + kernelPackages = pkgs.linuxKernel.packages.linux_rpi4; + initrd.availableKernelModules = [ "xhci_pci" "usbhid" "usb_storage" ]; + loader = { + grub.enable = false; + generic-extlinux-compatible.enable = true; + }; + }; + + fileSystems = { + "/" = { + device = "/dev/disk/by-label/NIXOS_SD"; + fsType = "ext4"; + options = [ "noatime" ]; + }; + }; + + hardware.raspberry-pi."4" = { + bluetooth.enable = false; + # let me sleep + leds.eth.disable = true; + leds.act.disable = true; + leds.pwr.disable = true; + }; + + chuj = { + system = { + user = "krizej"; + host = "rpi"; + platform = "aarch64-linux"; + }; + + # home manger on a server xd + home-manager.enable = true; + + stuff = { + git.enable = true; + vim.enable = true; + ssh = { + enable = true; + authKeys = [ + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDXxtwm+YoSIXfT9OJtU3O/EHf1Lg4IwoLe0CO2/Oapl7efTNZO5qVCh7aG0T5Hy4RD5CmVpxZVei44NM1dpNf3c+5976eH1BKgMmklA4EwAVc3o259YfJoOowBvyzBqO4CZWJmuUUjZwaQ152gPh1iCVe8bcR25S7cCTRN/6qU+rGn2zsbkV/GKdtJmhS5OLic5iXMdL56B7+hqFdL5NxPcWpnaSilIPus2xhI4u29I/FrM8RcR3Uzkqyx385js5MqhkVP3SVc7V8hSKEO8LRzmBYuBKkBPW9gmCUHKyxhSxZOvcretUFB87W/P/HDw3I4tk4naQPiPnASj6NvqTRMuhErIvXd1w+3MEEsfnXLeyq7CIhO01+d3/JEl7br5HOLZO+64IjSWYY7N0a0zhMjf147yEJ+JBOwXzN6px7y2rLI9CLY6jMs+Ye63nl7ALqN9dLJiaqxOMqTxrSNdRqWEj+FnFTd6sTb5eOZH7yabF/EApwdV3TGRGEaaZGS/GE= krizej@krizej-pc" + ]; + }; + fish = { + enable = true; + extraAliases = { + "rebuild" = "sudo nixos-rebuild switch --flake ~/nix#rpi -v"; + }; + }; + }; + }; + }; +} diff --git a/modules/stuff/gaming.nix b/modules/stuff/gaming.nix index 7506262..444f0ae 100644 --- a/modules/stuff/gaming.nix +++ b/modules/stuff/gaming.nix @@ -12,7 +12,7 @@ in { steam = mkEnableOption "steam"; }; - config = { + config = mkIf cfg.enable { programs.steam.enable = cfg.steam; home-manager.users.${user}.home.packages = with pkgs; ([ diff --git a/modules/stuff/git.nix b/modules/stuff/git.nix index 94086d6..d17f133 100644 --- a/modules/stuff/git.nix +++ b/modules/stuff/git.nix @@ -6,7 +6,7 @@ in { options.chuj.stuff.git = { enable = mkEnableOption "git"; }; - config = { + config = mkIf cfg.enable { environment.systemPackages = [ pkgs.git ]; home-manager.users.${user}.programs.git = { enable = true; diff --git a/modules/stuff/ssh.nix b/modules/stuff/ssh.nix index 1a1d4f9..9b1b4a8 100644 --- a/modules/stuff/ssh.nix +++ b/modules/stuff/ssh.nix @@ -9,9 +9,19 @@ in { type = lib.types.attrs; default = {}; }; + authKeys = mkOption { + type = lib.types.listOf lib.types.str; + default = []; + }; }; config = mkIf cfg.enable { - services.openssh.enable = true; + services.openssh = { + enable = true; + settings.PasswordAuthentication = false; + }; + + users.users.${user}.openssh.authorizedKeys.keys = cfg.authKeys; + home-manager.users.${user}.programs.ssh = { enable = true; matchBlocks = mapAttrs' diff --git a/modules/system.nix b/modules/system.nix index f957f92..92eac83 100644 --- a/modules/system.nix +++ b/modules/system.nix @@ -64,7 +64,7 @@ in { zip unzip - rar + # rar unrar p7zip p7zip-rar