52 lines
1.7 KiB
Nix
52 lines
1.7 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.
|
|
# mkForce : le profil installeur officiel (installation-device.nix)
|
|
# définit aussi cette option (autologin "nixos"), même priorité que la
|
|
# nôtre sans mkForce -> conflit sinon.
|
|
services.getty.autologinUser = lib.mkForce "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";
|
|
}
|