diff --git a/configuration.nix b/configuration.nix index d3aa218..9f57a4d 100644 --- a/configuration.nix +++ b/configuration.nix @@ -164,7 +164,7 @@ export NIX_PATH="nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos" LOCAL_PATH="/var/lib/nixos-config" - REPO_URL="https://git.skarockoi.de/ska/nixos-production.git" + REPO_URL="https://git.skarockoi.de/ska/nixos-production.git " if [ ! -d "$LOCAL_PATH/.git" ]; then mkdir -p "$LOCAL_PATH" @@ -200,7 +200,7 @@ }; systemd.timers.nixos-git-update = { - description = "Check for config updates hourly"; + description = "Check for config updates at startup"; wantedBy = [ "timers.target" ]; timerConfig = { OnBootSec = "60s"; @@ -213,6 +213,32 @@ zramSwap.enable = true; + ############################################################ + # USB ROOT DEVICE MONITOR (SHUTDOWN ON DISCONNECT) + ############################################################ + + systemd.services.usb-root-monitor = { + description = "Monitor USB root device and shut down if removed"; + script = '' + while true; do + if ! test -e /dev/disk/by-label/nixos-root; then + /run/current-system/sw/bin/logger -t usb-root-monitor "Root device missing – shutting down" + /run/current-system/sw/bin/systemctl poweroff + exit 0 + fi + sleep 5 + done + ''; + serviceConfig = { + Type = "simple"; + Restart = "always"; + RestartSec = 10; + User = "root"; + ExecStop = "/run/current-system/sw/bin/kill $MAINPID"; + }; + wantedBy = [ "multi-user.target" ]; + }; + ############################################################ # NIXOS VERSION ############################################################