62 lines
1.5 KiB
Nix
62 lines
1.5 KiB
Nix
{
|
|
lib,
|
|
pkgs,
|
|
config,
|
|
...
|
|
}:
|
|
{
|
|
imports = [
|
|
../../common/global
|
|
../../common/impermanence-common.nix # Impermanence with custom root config (see hardware.nix)
|
|
../../common/resource-limits.nix
|
|
../../common/sshd.nix
|
|
../../common/user-ppetru.nix
|
|
../../common/wifi.nix
|
|
# Note: No systemd-boot.nix - Raspberry Pi uses generic-extlinux-compatible (from sd-image module)
|
|
./hardware.nix
|
|
];
|
|
|
|
hardware = {
|
|
raspberry-pi."4".apply-overlays-dtmerge.enable = true;
|
|
deviceTree = {
|
|
enable = true;
|
|
filter = "*rpi-4-*.dtb";
|
|
};
|
|
};
|
|
|
|
networking.hostName = "stinky";
|
|
|
|
# Configure impermanence for tmpfs root (filesystem config in hardware.nix)
|
|
custom.impermanence.persistPath = "/nix/persist";
|
|
|
|
# Tailscale configuration
|
|
services.tailscaleAutoconnect.authkey = "tskey-auth-kZC8HX3wSw11CNTRL-7QvqxAphyzM7QeMUTKXv2Ng2RK4XCmg9A";
|
|
|
|
# OctoPrint for 3D printer
|
|
services.octoprint = {
|
|
enable = true;
|
|
};
|
|
|
|
# Persist OctoPrint data
|
|
environment.persistence.${config.custom.impermanence.persistPath}.directories = [
|
|
"/var/lib/octoprint"
|
|
];
|
|
|
|
# Pi HQ Camera support
|
|
boot.kernelModules = [ "bcm2835-v4l2" ];
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
libcamera
|
|
libraspberrypi
|
|
raspberrypi-eeprom
|
|
];
|
|
|
|
# Firewall: Allow access to OctoPrint
|
|
networking.firewall.allowedTCPPorts = [
|
|
5000 # OctoPrint
|
|
];
|
|
|
|
# Override global default (stinky is a new system with 25.05)
|
|
system.stateVersion = lib.mkForce "25.05";
|
|
}
|