This commit is contained in:
mjallen18
2025-09-01 20:15:55 -05:00
parent 81471cc582
commit e79ae984a3
5 changed files with 255 additions and 101 deletions

12
flake.lock generated
View File

@@ -884,11 +884,11 @@
"nixpkgs": "nixpkgs_11" "nixpkgs": "nixpkgs_11"
}, },
"locked": { "locked": {
"lastModified": 1755008580, "lastModified": 1756774688,
"narHash": "sha256-rh4OhOutko9W9COhhxQnqt9J22ZPj7gSZN7wrX0cYEs=", "narHash": "sha256-st5xUV4Fj4Px5MOvQdF26TZRPzxz47wgRvDjSwiDDso=",
"owner": "mjallen18", "owner": "mjallen18",
"repo": "nixos-raspberrypi", "repo": "nixos-raspberrypi",
"rev": "7b5cf1ef3cf48ac1b43730eb366225f3dd0791cb", "rev": "aeb17b185bb65a3fa1ef6803ead393e9e10d1f46",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -994,11 +994,11 @@
}, },
"nixpkgs_11": { "nixpkgs_11": {
"locked": { "locked": {
"lastModified": 1754432582, "lastModified": 1756515621,
"narHash": "sha256-oebayZREKV/4Fgy6drsj4M7URut4kQVics78DxL2imk=", "narHash": "sha256-cYPwtXNlQ18FBuMVJ4RltuCym2Acy/6O+i/fJ4UnEn8=",
"owner": "nvmd", "owner": "nvmd",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "81f9846bc3c9edbd2d4c92783e7bfb4b55db14c4", "rev": "b143badd3dea297d6ba0dc93397c0ebc2838c508",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -27,7 +27,7 @@ in
supportedFilesystems = [ "bcachefs" ]; supportedFilesystems = [ "bcachefs" ];
consoleLogLevel = lib.mkDefault 3; consoleLogLevel = lib.mkForce 3;
bootspec.enable = (!isArm); bootspec.enable = (!isArm);
}; };

View File

@@ -19,7 +19,10 @@ in
# All components # All components
# extraComponents = config.services.home-assistant.package.availableComponents; # extraComponents = config.services.home-assistant.package.availableComponents;
extraComponents = [ extraComponents = [
"accuweather"
"adguard" "adguard"
"air_quality"
"apcupsd"
"apple_tv" "apple_tv"
"analytics" "analytics"
"backup" "backup"
@@ -28,40 +31,196 @@ in
"bluetooth_le_tracker" "bluetooth_le_tracker"
"bluetooth_tracker" "bluetooth_tracker"
"brother" "brother"
"browser"
"button"
"caldav" "caldav"
"calendar" "calendar"
"camera"
"cast"
"climate"
"cloud"
"cloudflare" "cloudflare"
"co2signal" "co2signal"
"coinbase"
"color_extractor" "color_extractor"
"config"
"configurator"
"counter"
"cpuspeed"
"cups"
"date"
"datetime"
"deluge"
"device_automation"
"device_sun_light_trigger"
"device_tracker"
"dhcp"
"diagnostics"
"discord"
"dlna_dmr"
"dlna_dms"
"downloader"
"ecobee"
"energy"
"epic_games_store"
"esphome" "esphome"
"event"
"fan"
"fastdotcom"
"ffmpeg" "ffmpeg"
"ffmpeg_motion"
"ffmpeg_noise"
"file"
"file_upload"
"filesize"
"filter"
"folder"
"fully_kiosk"
"generic"
"generic_thermostat"
"geo_json_events"
"geo_location"
"geo_rss_events"
"github"
"gitlab_ci"
"glances"
"google"
"google_cloud"
"google_drive"
"google_mail"
"google_maps"
"google_photos"
"google_translate" "google_translate"
"gpsd"
"gpslogger"
"hardware"
"hddtemp"
"hdmi_cec"
"history"
"history_stats"
"holiday" "holiday"
"homeassistant"
"homeassistant_alerts"
"homeassistant_sky_connect"
"homekit" "homekit"
"homekit_controller"
"http"
"humidifier"
"image"
"image_processing"
"image_upload"
"immich"
"input_boolean"
"input_button"
"input_datetime"
"input_number"
"input_select"
"input_text"
"ios"
"isal" "isal"
"jellyfin" "jellyfin"
"keyboard"
"keyboard_remote"
"lidarr"
"light"
"litterrobot"
"local_calendar"
"local_file"
"local_ip"
"local_todo"
"logbook"
"logentries"
"logger"
"lovelace"
"manual_mqtt"
"matter"
"met" "met"
"music_assistant" "microsoft"
"min_max"
"mobile_app"
"mqtt" "mqtt"
"music_assistant"
"nut" "nut"
"nextcloud" "nextcloud"
"notify"
"nws" "nws"
"ollama" "ollama"
"onedrive" "onedrive"
"onkyo"
"openhardwaremonitor"
"opensky"
"openweathermap"
"open_router" "open_router"
"paperless_ngx"
"persistent_notification"
"pinecil"
"ping" "ping"
"piper"
"playstation_network"
"radarr"
"radio_browser" "radio_browser"
"raspberry_pi"
"recorder"
"reddit"
"remote"
"remote_calendar"
"remote_rpi_gpio"
"roborock"
"samsungtv" "samsungtv"
"schedule"
"script"
"search"
"season" "season"
"select"
"sense"
"sensor"
"shopping_list" "shopping_list"
"simplefin" "simplefin"
"smartthings" "smartthings"
"sonarr"
"speedtestdotnet"
"sql"
"ssdp"
"statistics"
"stream"
"subaru" "subaru"
"sun"
"switch"
"system_health"
"system_log"
"systemmonitor"
"tailscale"
"tasmota"
"tcp"
"template"
"text"
"thread"
"time"
"time_date"
"timer"
"torque"
"tplink"
"tuya"
"upnp" "upnp"
"uptime"
"usb"
"vacuum"
"vlc"
"vesync" "vesync"
"wake_on_lan"
"waze_travel_time"
"weather"
"weatherkit"
"webdav"
"webhook"
"whisper"
"whois"
"workday" "workday"
"wyoming" "wyoming"
"youtube"
"zeroconf"
"zha" "zha"
"zone"
]; ];
customComponents = with pkgs.home-assistant-custom-components; [ customComponents = with pkgs.home-assistant-custom-components; [
@@ -96,106 +255,105 @@ in
zigbee2mqtt-networkmap zigbee2mqtt-networkmap
]; ];
# use postgresql instead of sqlite # use postgresql instead of sqlite
extraPackages = # extraPackages =
ps: with ps; [ # ps: with ps; [
# Core functionality # # Core functionality
aiohttp # aiohttp
aiodns # aiodns
paho-mqtt # paho-mqtt
pillow # pillow
pytz # pytz
pyyaml # pyyaml
sqlalchemy # sqlalchemy
# Discovery & networking # # Discovery & networking
zeroconf # zeroconf
netdisco # netdisco
ifaddr # ifaddr
ssdp # ssdp
# Device protocols # # Device protocols
pyserial # Serial communications # pyserial # Serial communications
bluepy # Bluetooth LE # bluepy # Bluetooth LE
# Smart home ecosystems # # Smart home ecosystems
mutagen # Media file metadata # mutagen # Media file metadata
pysonos # Sonos # pysonos # Sonos
pywemo # Belkin WeMo # pywemo # Belkin WeMo
python-miio # Xiaomi devices # python-miio # Xiaomi devices
python-kasa # TP-Link # python-kasa # TP-Link
# Sensors & monitoring # # Sensors & monitoring
meteocalc # Weather calculations # meteocalc # Weather calculations
speedtest-cli # Internet speed # speedtest-cli # Internet speed
# Visualization & UI # # Visualization & UI
matplotlib # Graphing # matplotlib # Graphing
# Security # # Security
bcrypt # bcrypt
cryptography # cryptography
pyjwt # pyjwt
# Media # # Media
ha-ffmpeg # Camera streams # ha-ffmpeg # Camera streams
# Specialized integrations # # Specialized integrations
python-matter-server # Matter protocol # python-matter-server # Matter protocol
# System integrations # # System integrations
psutil # System monitoring # psutil # System monitoring
psycopg2 # psycopg2
numpy # numpy
hassil # hassil
pyturbojpeg # pyturbojpeg
paho-mqtt # paho-mqtt
pychromecast # pychromecast
pyatv # pyatv
python-otbr-api # python-otbr-api
brother # brother
pyipp # pyipp
govee-ble # govee-ble
adguardhome # adguardhome
nextcord # nextcord
aiogithubapi # aiogithubapi
jellyfin-apiclient-python # jellyfin-apiclient-python
pylitterbot # pylitterbot
dateparser # dateparser
aionut # aionut
nextcloudmonitor # nextcloudmonitor
ollama # ollama
pynecil # pynecil
aiopyarr # aiopyarr
pysabnzbd # pysabnzbd
getmac # getmac
zigpy # zigpy
bellows # For Zigbee EmberZNet-based adapters # bellows # For Zigbee EmberZNet-based adapters
zigpy-xbee # For XBee adapters # zigpy-xbee # For XBee adapters
zigpy-deconz # For ConBee/RaspBee adapters # zigpy-deconz # For ConBee/RaspBee adapters
pyicloud # iCloud # pyicloud # iCloud
pyatv # Apple TV # pyatv # Apple TV
opencv-python # opencv-python
face-recognition # face-recognition
ibeacon-ble # ibeacon-ble
gehomesdk # gehomesdk
onedrive-personal-sdk # onedrive-personal-sdk
python-roborock # pkgs.${namespace}.python-steam
pkgs.${namespace}.python-steam # apple-weatherkit
apple-weatherkit
samsungctl # samsungctl
samsungtvws # samsungtvws
aiohomekit # aiohomekit
icmplib # icmplib
aioelectricitymaps # aioelectricitymaps
wyoming # wyoming
pysmartthings # pysmartthings
wakeonlan # wakeonlan
ephem # ephem
]; # ];
config = { config = {
# Includes dependencies for a basic setup # Includes dependencies for a basic setup

View File

@@ -38,6 +38,7 @@
address = "10.0.1.2/24"; address = "10.0.1.2/24";
gateway = "10.0.1.1"; gateway = "10.0.1.1";
dns = "1.1.1.1"; dns = "1.1.1.1";
interface = "end0";
}; };
firewall = { firewall = {
enable = true; enable = true;

View File

@@ -9,7 +9,6 @@
{ {
imports = [ imports = [
./boot.nix ./boot.nix
# ./networking.nix - moved to modules/nixos/network
./services.nix ./services.nix
./sops.nix ./sops.nix
]; ];
@@ -26,13 +25,8 @@
desktop.hyprland.enable = false; desktop.hyprland.enable = false;
user = { user = {
name = "matt"; name = "matt";
# passwordFile = config.sops.secrets."pi5/matt-password".path;
mutableUsers = false; mutableUsers = false;
extraGroups = [ "docker" ]; extraGroups = [ "docker" ];
sshKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOTha0FbV1tkpnJr7xVH78S5MetJH+0o2YrEcuvhL692 root@jallen-nas"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIwoHWOLSTGVif9hAhaMLl0qDA4roIzCNuyR6kyIXDOj admin@jallen-nas"
];
}; };
network = { network = {
hostName = "pi5"; hostName = "pi5";
@@ -40,6 +34,7 @@
method = "manual"; method = "manual";
gateway = "10.0.1.1"; gateway = "10.0.1.1";
dns = "10.0.1.1"; dns = "10.0.1.1";
interface = "wlan0";
}; };
firewall = { firewall = {
enable = true; enable = true;