Files
Nixos_Fleet/installer/installer-base.nix
T
2026-09-06 17:32:17 +02:00

49 lines
1.5 KiB
Nix

# Environnement live commun aux deux formes d'image (PXE netboot / ISO
# USB). Contient juste de quoi partitionner et lancer disko-install ; la
# vraie configuration cible est toujours récupérée depuis git au moment
# de l'install (repo public nixos_fleet ou repo privé nixos_users).
{ pkgs, lib, ... }:
let
installScript = pkgs.writeShellScriptBin "fleet-install" (builtins.readFile ./install.sh);
in
{
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
environment.systemPackages = with pkgs; [
git
parted
gptfdisk
util-linux # lsblk
installScript
];
# disko-install n'est pas préinstallé : install.sh l'invoque via
# `nix run github:nix-community/disko#disko-install`, ce qui évite de
# dépendre d'un nom de paquet nixpkgs précis (pas de package `disko`
# garanti tel quel côté nixpkgs) et reste conforme à l'usage documenté
# du projet.
networking.networkmanager.enable = true;
services.xserver.xkb.layout = "fr";
console.keyMap = "fr";
# Root autologin sur tty1, l'installeur se lance automatiquement au
# login. S'il échoue ou qu'on le quitte, on retombe sur un shell root
# normal pour dépanner à la main — pas de piège sans issue.
services.getty.autologinUser = "root";
users.users.root.password = lib.mkForce "";
environment.etc."profile.d/00-fleet-installer.sh".text = ''
if [ "$(tty)" = "/dev/tty1" ] && [ -z "$FLEET_INSTALLER_RAN" ]; then
export FLEET_INSTALLER_RAN=1
${installScript}/bin/fleet-install
fi
'';
system.stateVersion = "26.05";
}