2026-06-12 16:02:13 -04:00
|
|
|
{ config, lib, pkgs, keys, ... }:
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
networking.hostName = "uConsole";
|
|
|
|
|
time.timeZone = "America/Montreal";
|
|
|
|
|
i18n.defaultLocale = "en_CA.UTF-8";
|
|
|
|
|
system.stateVersion = "25.11";
|
|
|
|
|
|
2026-06-12 20:47:11 -04:00
|
|
|
# SSH — root access avec clés gortium + ai-worker
|
2026-06-12 16:02:13 -04:00
|
|
|
services.openssh = {
|
|
|
|
|
enable = true;
|
2026-06-12 20:47:11 -04:00
|
|
|
settings = {
|
|
|
|
|
PermitRootLogin = lib.mkForce "prohibit-password";
|
|
|
|
|
PasswordAuthentication = lib.mkForce false;
|
2026-06-12 16:15:30 -04:00
|
|
|
};
|
|
|
|
|
};
|
2026-06-12 16:02:13 -04:00
|
|
|
|
2026-06-12 20:47:11 -04:00
|
|
|
users.users.root.openssh.authorizedKeys.keys = with keys; [
|
|
|
|
|
users.gortium.main
|
|
|
|
|
users.ai-worker.main
|
2026-06-12 16:02:13 -04:00
|
|
|
];
|
|
|
|
|
|
2026-06-16 19:05:03 -04:00
|
|
|
# Gitsign: sign git commits with age identity
|
|
|
|
|
programs.gitsign.enable = true;
|
2026-06-14 19:53:40 -04:00
|
|
|
age.secrets.gortium_password = {
|
|
|
|
|
file = ../secrets/gortium_password.age;
|
|
|
|
|
};
|
|
|
|
|
|
2026-06-12 20:47:11 -04:00
|
|
|
# WiFi via NetworkManager + secret agenix
|
|
|
|
|
networking.networkmanager.enable = true;
|
2026-06-12 16:02:13 -04:00
|
|
|
|
2026-06-12 20:47:11 -04:00
|
|
|
# Firmware
|
|
|
|
|
hardware.enableRedistributableFirmware = true;
|
2026-06-13 13:47:35 -04:00
|
|
|
|
2026-06-14 19:56:33 -04:00
|
|
|
# Hyprland Wayland compositor (manual start — no SDDM)
|
|
|
|
|
programs.hyprland = {
|
|
|
|
|
enable = true;
|
|
|
|
|
xwayland.enable = true;
|
|
|
|
|
};
|
2026-06-16 19:02:38 -04:00
|
|
|
|
2026-06-16 19:00:50 -04:00
|
|
|
# HackerGadgets AIO v2 board
|
|
|
|
|
hardware.uconsole-cm5-aio-v2 = {
|
|
|
|
|
enable = true;
|
|
|
|
|
|
|
|
|
|
# Rails actifs au boot
|
|
|
|
|
bootRails = {
|
|
|
|
|
GPS = false; # activé à la demande via aiov2_ctl GPS on
|
|
|
|
|
LORA = false; # activé à la demande via aiov2_ctl LORA on
|
|
|
|
|
SDR = false; # activé à la demande via aiov2_ctl SDR on
|
|
|
|
|
USB = false; # activé à la demande via aiov2_ctl USB on
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enableGPS = false; # activer quand antenne GPS branchée
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
# DSI display fix: le kernel patch est dans flake.nix (patches/0008-panel-cwu50-fix-init-seq1.patch)
|
2026-06-12 16:02:13 -04:00
|
|
|
}
|