uConsole: consolidate removal tracking into single block

This commit is contained in:
2026-06-19 22:13:18 -04:00
parent 12af6bb643
commit 93dc4f1cac

View File

@@ -1,14 +1,11 @@
{ config, lib, pkgs, keys, ... }: { config, lib, pkgs, keys, ... }:
{ {
networking.hostName = "uConsole"; networking.hostName = "uConsole";
time.timeZone = "America/Montreal"; time.timeZone = "America/Montreal";
i18n.defaultLocale = "en_CA.UTF-8"; i18n.defaultLocale = "en_CA.UTF-8";
system.stateVersion = "25.11"; system.stateVersion = "25.11";
# Boot & Hardware # Boot & Hardware
boot.loader.raspberry-pi.bootloader = "kernel"; boot.loader.raspberry-pi.bootloader = "kernel";
# SSH — root access avec clés gortium + ai-worker # SSH — root access avec clés gortium + ai-worker
services.openssh = { services.openssh = {
enable = true; enable = true;
@@ -17,29 +14,23 @@
PasswordAuthentication = lib.mkForce false; PasswordAuthentication = lib.mkForce false;
}; };
}; };
users.users.root.openssh.authorizedKeys.keys = with keys; [ users.users.root.openssh.authorizedKeys.keys = with keys; [
users.gortium.main users.gortium.main
users.ai-worker.main users.ai-worker.main
]; ];
# Age secret for gortium password (file created by user) # Age secret for gortium password (file created by user)
age.secrets.gortium_password = { age.secrets.gortium_password = {
file = ../../secrets/gortium_password.age; file = ../../secrets/gortium_password.age;
}; };
# WiFi via NetworkManager # WiFi via NetworkManager
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
# Firmware # Firmware
hardware.enableRedistributableFirmware = true; hardware.enableRedistributableFirmware = true;
# Hyprland Wayland compositor (manual start — no SDDM) # Hyprland Wayland compositor (manual start — no SDDM)
programs.hyprland = { programs.hyprland = {
enable = true; enable = true;
xwayland.enable = true; xwayland.enable = true;
}; };
# HackerGadgets AIO v2 board # HackerGadgets AIO v2 board
hardware.uconsole-cm5-aio-v2 = { hardware.uconsole-cm5-aio-v2 = {
enable = true; enable = true;
@@ -51,7 +42,6 @@
}; };
enableGPS = false; enableGPS = false;
}; };
# User # User
users.users.gortium = { users.users.gortium = {
isNormalUser = true; isNormalUser = true;
@@ -71,7 +61,6 @@
}]; }];
} }
]; ];
# ============================================================ # ============================================================
# Package groups # Package groups
# ============================================================ # ============================================================
@@ -100,7 +89,6 @@
fd fd
htop htop
tmux tmux
# ===== HAM Radio ===== # ===== HAM Radio =====
wsjtx wsjtx
fldigi fldigi
@@ -109,19 +97,16 @@
chirp # Radio programming tool chirp # Radio programming tool
hamlib # Ham radio control libraries hamlib # Ham radio control libraries
trustedqsl # Logbook of the World (LoTW) trustedqsl # Logbook of the World (LoTW)
# ===== SDR / RF ===== # ===== SDR / RF =====
# sdrpp — removed for aarch64 cross-compile bootstrap (glfw/wxPython fails) # sdrpp — removed for aarch64 cross-compile bootstrap (glfw/wxPython fails)
# gqrx — removed for aarch64 cross-compile bootstrap (Qt5 cascade fails) # gqrx — removed for aarch64 cross-compile bootstrap (Qt5 cascade fails)
rtl-sdr # RTL-SDR drivers & utilities rtl-sdr # RTL-SDR drivers & utilities
inspectrum # Offline signal analysis inspectrum # Offline signal analysis
soapysdr-with-plugins # SoapySDR + hardware support plugins soapysdr-with-plugins # SoapySDR + hardware support plugins
# ===== Mesh / LoRa ===== # ===== Mesh / LoRa =====
reticulumStack # Reticulum Network Stack reticulumStack # Reticulum Network Stack
lxmf # LXMF messaging protocol lxmf # LXMF messaging protocol
nomadnet # Nomad Network client nomadnet # Nomad Network client
# ===== Security ===== # ===== Security =====
nmap nmap
aircrack-ng aircrack-ng
@@ -130,13 +115,11 @@
wireshark-cli # Packet analyzer wireshark-cli # Packet analyzer
john # John the Ripper john # John the Ripper
sqlmap # SQL injection tool sqlmap # SQL injection tool
# ===== GPS / Maps ===== # ===== GPS / Maps =====
# foxtrotgps — removed for aarch64 cross-compile bootstrap (GTK2 fails) # foxtrotgps — removed for aarch64 cross-compile bootstrap (GTK2 fails)
# viking — removed for aarch64 cross-compile bootstrap (GTK3 fails) # viking — removed for aarch64 cross-compile bootstrap (GTK3 fails)
gpsbabel # GPS data conversion gpsbabel # GPS data conversion
]; ];
# ============================================================ # ============================================================
# Reticulum Service (rnsd) # Reticulum Service (rnsd)
# ============================================================ # ============================================================
@@ -154,7 +137,6 @@
LimitNOFILE = 65536; LimitNOFILE = 65536;
}; };
}; };
# ============================================================ # ============================================================
# Kismet Service (Wi-Fi monitoring / mesh node) # Kismet Service (Wi-Fi monitoring / mesh node)
# ============================================================ # ============================================================
@@ -171,7 +153,6 @@
RestartSec = "10s"; RestartSec = "10s";
}; };
}; };
# ============================================================ # ============================================================
# Kernel modules for SDR and radio # Kernel modules for SDR and radio
# ============================================================ # ============================================================
@@ -181,17 +162,14 @@
"rtl2832_sdr" # RTL-SDR kernel module "rtl2832_sdr" # RTL-SDR kernel module
"dvb_usb_rtl28xxu" # RTL-SDR DVB-T "dvb_usb_rtl28xxu" # RTL-SDR DVB-T
]; ];
# ============================================================ # ============================================================
# Extra udev rules for SDR and HAM radio devices # Extra udev rules for SDR and HAM radio devices
# ============================================================ # ============================================================
services.udev.packages = with pkgs; [ rtl-sdr ]; services.udev.packages = with pkgs; [ rtl-sdr ];
# ============================================================ # ============================================================
# Enable IPv6 for Reticulum mesh # Enable IPv6 for Reticulum mesh
# ============================================================ # ============================================================
networking.enableIPv6 = true; networking.enableIPv6 = true;
# ============================================================ # ============================================================
# Firewall # Firewall
# ============================================================ # ============================================================
@@ -205,20 +183,10 @@
masterIdentities = [ masterIdentities = [
"/home/gortium/.ssh/gortium_ssh_key" "/home/gortium/.ssh/gortium_ssh_key"
]; ];
# uConsole SSH host pubkey — for automatic rekey at build time # uConsole SSH host pubkey — for automatic rekey at build time
# Once uConsole is deployed, replace with actual pubkey from: # Once uConsole is deployed, replace with actual pubkey from:
# ssh-keyscan uConsole.local | ssh-to-age # ssh-keyscan uConsole.local | ssh-to-age
hostPubkey = "age1qyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqs3290gq"; # dummy — replace after bootstrap hostPubkey = "age1qyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqs3290gq"; # dummy — replace after bootstrap
}; };
# Enable remote builder (distributed build via lazyworkhorse server) # Enable remote builder (distributed build via lazyworkhorse server)
services.remoteBuilder.enable = true; services.remoteBuilder.enable = true;
# ClamAV REMOVED — cross-compile failure (try_run + Rust linker)
# clamscan available from server when needed.
# gortium.clamav = {
# enable = true;
# enableDaemon = false;
# };
}