Files
nix-config/systems/aarch64-linux/pi5/default.nix
2026-01-07 12:44:59 -06:00

132 lines
3.3 KiB
Nix

# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{
namespace,
...
}:
{
imports = [
# ./adguard.nix
./boot.nix
./sops.nix
];
virtualisation.docker.enable = true;
#environment.systemPackages = with pkgs.${namespace}; [
# ubootRaspberryPi5
# ubootTools
#];
${namespace} = {
# ###################################################
# # Impermanence # #
# ###################################################
impermanence = {
enable = true;
extraDirectories = [
{
directory = "/var/cache/ccache";
user = "nobody";
group = "nobody";
mode = "u=rwx,g=rwx,o=rx";
}
];
};
# ###################################################
# # Hardware # #
# ###################################################
hardware = {
disko = {
enable = true;
firmware = {
enableFirmware = true;
firmwareDisk = "/dev/mmcblk0";
};
};
raspberry-pi = {
enable = true;
variant = "5";
bootType = "uefi";
pwm.enable = false;
disable-wifi.enable = false;
modesetting.enable = false;
i2c.enable = false;
apply-overlays-dtmerge.enable = false;
};
};
headless.enable = true;
# ###################################################
# # Desktop # #
# ###################################################
desktop.hyprland.enable = false;
# ###################################################
# # User # #
# ###################################################
user = {
name = "matt";
mutableUsers = false;
extraGroups = [ "docker" ];
};
# ###################################################
# # Services # #
# ###################################################
services.home-assistant.enable = false;
# ###################################################
# # Network # #
# ###################################################
network = {
hostName = "pi5";
ipv4 = {
method = "manual";
address = "10.0.1.5/24";
gateway = "10.0.1.1";
dns = "1.1.1.1";
interface = "end0";
};
firewall = {
enable = true;
allowPing = true;
allowedTCPPorts = [ 53 ];
allowedUDPPorts = [ 53 ];
};
networkmanager = {
profiles = {
"static-end0" = {
type = "ethernet";
};
};
};
};
};
# ###################################################
# # FileSystems # #
# ###################################################
boot.supportedFilesystems = [ "bcachefs" ];
fileSystems."/data" = {
device = "/dev/disk/by-uuid/a85420cc-a026-4100-80d2-a999081d792a";
fsType = "bcachefs";
options = [
"nofail"
];
};
programs.seahorse.enable = false;
}