summaryrefslogtreecommitdiff
path: root/machines/fourmi
diff options
context:
space:
mode:
authorMel <mel@rnrd.eu>2025-04-09 22:13:08 +0200
committerMel <mel@rnrd.eu>2025-04-09 22:13:08 +0200
commit75addcd6257f9f02669f3cf11422a61dea1c7323 (patch)
tree5e25598b299fed9d1ffe2c1983ee673b28cb6dd3 /machines/fourmi
parente27680dde6f8ecdf2db345cae4f165e68a2de8f3 (diff)
downloadnetwork-75addcd6257f9f02669f3cf11422a61dea1c7323.tar.zst
network-75addcd6257f9f02669f3cf11422a61dea1c7323.zip
Introduce new small-scale local 'fourmi' machine
Signed-off-by: Mel <mel@rnrd.eu>
Diffstat (limited to 'machines/fourmi')
-rw-r--r--machines/fourmi/default.nix23
-rw-r--r--machines/fourmi/devices.nix38
-rw-r--r--machines/fourmi/hardware.nix32
-rw-r--r--machines/fourmi/home.nix9
4 files changed, 102 insertions, 0 deletions
diff --git a/machines/fourmi/default.nix b/machines/fourmi/default.nix
new file mode 100644
index 0000000..780838d
--- /dev/null
+++ b/machines/fourmi/default.nix
@@ -0,0 +1,23 @@
+{ pkgs, ... }:
+
+{
+ imports = [
+ ../../modules/common.nix
+
+ ./hardware.nix
+ ./devices.nix
+ ];
+
+ foundation.monitoring = {
+ client.enable = false;
+ };
+
+ # extra packages for dealing with the device
+ # hardware.
+ environment.systemPackages = with pkgs; [
+ libraspberrypi
+ raspberrypi-eeprom
+ ];
+
+ system.stateVersion = "24.11";
+}
diff --git a/machines/fourmi/devices.nix b/machines/fourmi/devices.nix
new file mode 100644
index 0000000..3738553
--- /dev/null
+++ b/machines/fourmi/devices.nix
@@ -0,0 +1,38 @@
+{ lib, nixos-hardware, ... }:
+
+{
+ # correctly configure hardware in this pi server.
+ imports = [
+ nixos-hardware.nixosModules.raspberry-pi-4
+ ];
+
+ # boot settings
+ boot = {
+ loader = {
+ grub.enable = false;
+ generic-extlinux-compatible.enable = true;
+ };
+
+ kernelModules = [ "wireguard" ];
+ };
+
+ # apply rpi4-specific device tree from nixos-hardware.
+ hardware = {
+ raspberry-pi."4".apply-overlays-dtmerge.enable = true;
+ deviceTree = {
+ enable = true;
+ filter = "*rpi-4-*.dtb";
+ };
+ };
+
+ networking = {
+ # todo: configure properly
+ firewall.enable = lib.mkForce false;
+
+ useDHCP = true;
+ networkmanager = {
+ enable = false;
+ wifi.powersave = false;
+ };
+ };
+}
diff --git a/machines/fourmi/hardware.nix b/machines/fourmi/hardware.nix
new file mode 100644
index 0000000..e3913be
--- /dev/null
+++ b/machines/fourmi/hardware.nix
@@ -0,0 +1,32 @@
+# Do not modify this file! It was generated by ‘nixos-generate-config’
+# and may be overwritten by future invocations. Please make changes
+# to /etc/nixos/configuration.nix instead.
+{ config, lib, pkgs, modulesPath, ... }:
+
+{
+ imports =
+ [ (modulesPath + "/installer/scan/not-detected.nix")
+ ];
+
+ boot.initrd.availableKernelModules = [ "xhci_pci" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888";
+ fsType = "ext4";
+ };
+
+ swapDevices = [ ];
+
+ # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
+ # (the default) this is the recommended approach. When using systemd-networkd it's
+ # still possible to use this option, but it's recommended to use it in conjunction
+ # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
+ networking.useDHCP = lib.mkDefault true;
+ # networking.interfaces.end0.useDHCP = lib.mkDefault true;
+ # networking.interfaces.wlan0.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
+}
diff --git a/machines/fourmi/home.nix b/machines/fourmi/home.nix
new file mode 100644
index 0000000..be5d645
--- /dev/null
+++ b/machines/fourmi/home.nix
@@ -0,0 +1,9 @@
+{ pkgs, ... }:
+
+{
+ imports = [
+ ../../modules/home/common.nix
+ ];
+
+ home.stateVersion = "24.11";
+}