diff --git a/flake.lock b/flake.lock index 3914a22..0ad7ec1 100644 --- a/flake.lock +++ b/flake.lock @@ -78,6 +78,29 @@ "type": "github" } }, + "gatekeeper": { + "inputs": { + "nixpkgs": [ + "nixpkgs-unstable" + ], + "pyproject-build-systems": "pyproject-build-systems", + "pyproject-nix": "pyproject-nix", + "uv2nix": "uv2nix" + }, + "locked": { + "lastModified": 1785429358, + "narHash": "sha256-uWUZm9iRqPkkNWrgtpsN9GyDQsiz80eHvuE14wOKp+Q=", + "ref": "refs/heads/master", + "rev": "40312020c8e17c78ac345def6ac95cb1ed8f344f", + "revCount": 110, + "type": "git", + "url": "https://git.dynamicdiscord.de/malobeo/gatekeeper" + }, + "original": { + "type": "git", + "url": "https://git.dynamicdiscord.de/malobeo/gatekeeper" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -255,11 +278,78 @@ "type": "github" } }, + "nixpkgs_4": { + "locked": { + "lastModified": 1783522502, + "narHash": "sha256-iffAls3iaNTyJC2faYcUXSI+Gp02cDjYl+MygxKl2GI=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "0bb7ec54c8483066ec9d7720e780a5caa71f8612", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "pyproject-build-systems": { + "inputs": { + "nixpkgs": [ + "gatekeeper", + "nixpkgs" + ], + "pyproject-nix": [ + "gatekeeper", + "pyproject-nix" + ], + "uv2nix": [ + "gatekeeper", + "uv2nix" + ] + }, + "locked": { + "lastModified": 1776659114, + "narHash": "sha256-qapCOQmR++yZSY43dzrp3wCrkOTLpod+ONtJWBk6iKU=", + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "rev": "ffaa2161dd5d63e0e94591f86b54fc239660fb2e", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "type": "github" + } + }, + "pyproject-nix": { + "inputs": { + "nixpkgs": [ + "gatekeeper", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1778901413, + "narHash": "sha256-GSKXTAnFqRAMlZkJrIPcQMYf+lpMr66K3i60mB9STvc=", + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "rev": "a228447c3e179d477c1b6246ef3efa8cfe3c469a", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "type": "github" + } + }, "root": { "inputs": { "disko": "disko", "dns": "dns", "ep3-bs": "ep3-bs", + "gatekeeper": "gatekeeper", "home-manager": "home-manager", "mfsync": "mfsync", "microvm": "microvm", @@ -461,11 +551,34 @@ "type": "github" } }, - "zineshop": { + "uv2nix": { "inputs": { "nixpkgs": [ + "gatekeeper", "nixpkgs" ], + "pyproject-nix": [ + "gatekeeper", + "pyproject-nix" + ] + }, + "locked": { + "lastModified": 1779269674, + "narHash": "sha256-P1LHCRdYpdtHAEzuEsNHrI6d9mVPl5a2fyFDZGHNVbI=", + "owner": "pyproject-nix", + "repo": "uv2nix", + "rev": "69aec536f6d1acc415ed2e20299312802aba98c6", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "uv2nix", + "type": "github" + } + }, + "zineshop": { + "inputs": { + "nixpkgs": "nixpkgs_4", "utils": "utils_4" }, "locked": { diff --git a/flake.nix b/flake.nix index decbc2c..20c41a9 100644 --- a/flake.nix +++ b/flake.nix @@ -37,6 +37,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + gatekeeper = { + url = "git+https://git.dynamicdiscord.de/malobeo/gatekeeper"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; + }; + nixos-generators = { url = "github:nix-community/nixos-generators"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/machines/goldman/configuration.nix b/machines/goldman/configuration.nix new file mode 100644 index 0000000..e6a935d --- /dev/null +++ b/machines/goldman/configuration.nix @@ -0,0 +1,66 @@ +{ config, pkgs, inputs, modulesPath, ... }: + +let + sshKeys = import ../ssh_keys.nix; +in +{ + networking.hostName = "goldman"; # Define your hostname. + nixpkgs.hostPlatform = { system = "aarch64-linux"; }; + imports = + [ + inputs.gatekeeper.nixosModules.gatekeeper + ../modules/malobeo_user.nix + #inputs.nixos-hardware.nixosModules.raspberry-pi-3 + (modulesPath + "/profiles/minimal.nix") + ]; + + #Try to reduce size + services.nixosManual.enable = false; + documentation.man.enable = false; + + services.openssh.enable = true; + services.openssh.ports = [ 22 ]; + services.openssh.settings.PasswordAuthentication = false; + services.openssh.settings.PermitRootLogin = "prohibit-password"; + users.users.root.openssh.authorizedKeys.keys = sshKeys.admins; + + # Use the extlinux boot loader. (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; + + networking.dhcpcd.enable = true; + + # Set your time zone. + time.timeZone = "Europe/Berlin"; + + services = { + gatekeeper = { + enable = true; + }; + }; + + environment.systemPackages = with pkgs; [ + htop + wget + git + pciutils + nix-tree + ]; + + services.avahi = { + enable = true; + nssmdns4 = true; + publish = { + enable = true; + addresses = true; + userServices = true; + }; + }; + + networking.firewall.allowedTCPPorts = [ 80 443 ]; + + system.stateVersion = "23.05"; +} + diff --git a/machines/hosts.nix b/machines/hosts.nix index e194ed1..4482706 100644 --- a/machines/hosts.nix +++ b/machines/hosts.nix @@ -58,6 +58,15 @@ in address = "192.168.1.105"; }; }; + + goldman = { + type = "rpi"; + network = { + local = true; + hostId = "16"; + address = "192.168.1.106"; + }; + }; durruti = { type = "microvm";