uConsole: consolidate removal tracking into single block
This commit is contained in:
@@ -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;
|
|
||||||
# };
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user