Files
Nixos_Fleet/flake.nix
T
DamienandClaude Sonnet 5 8cca5d3ebb Externalise le module disque (comme nixos_users) + ajoute nixos-existing
hosts/nixos/configuration.nix importait diskos/plain.nix en dur --
deplace vers flake.nix (injection externe), meme pattern que
nixos_users/flake.nix (mkHost). Necessaire pour ajouter
nixos-existing : meme profil logiciel que "nixos", mais avec le
hardware-configuration.nix reel de la machine a la place de
diskos/plain.nix -- pour appliquer cette config sur un NixOS deja
installe, sans toucher au partitionnement existant (meme principe
que pxe-server, --impure requis).

Deplace aussi system.autoUpgrade.flake hors de hosts/common/default.nix
(etait fixe sur #nixos pour tous les profils) vers une injection par
attribut dans flake.nix : sans ca, une machine nixos-existing aurait
bascule sur l'attribut "nixos" (disko) a son prochain auto-upgrade,
avec un layout disque potentiellement incompatible avec l'existant.

Verifie : nix flake check --no-build passe pour "nixos" ; "nixos-existing"
echoue nur pour la meme raison attendue que pxe-server
(hardware-configuration.nix absent hors du vrai serveur/poste), pas
une regression. Dry-run build de "nixos" toujours complet.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-12 15:53:32 +02:00

71 lines
2.4 KiB
Nix

{
description = "Nixos_Fleet : parc de PC génériques (PXE/USB, disko, jamais chiffré)";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
# Même branche release-26.05 que nixpkgs (confirmé : la branche existe
# bien sur nix-community/home-manager). Gère les réglages Cinnamon par
# utilisateur (dconf, fichiers dans $HOME) à la place des scripts
# d'activation système à la main qu'on avait avant.
home-manager = {
url = "github:nix-community/home-manager/release-26.05";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{ self, nixpkgs, disko, home-manager, ... }:
let
repoUrl = "git+https://gitea.miniclic.net/Damien/Nixos_Fleet.git";
in
{
nixosConfigurations = {
nixos = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
disko.nixosModules.disko
home-manager.nixosModules.home-manager
./hosts/nixos/configuration.nix
./diskos/plain.nix
{ system.autoUpgrade.flake = "${repoUrl}#nixos"; }
];
};
# Même profil logiciel que "nixos", mais sans disko : pour une
# machine où NixOS est déjà installé (partitionnement existant,
# quel qu'il soit, à ne pas toucher) -- utilise le
# hardware-configuration.nix réel de cette machine à la place de
# diskos/plain.nix, comme pxe-server. --impure obligatoire au
# nixos-rebuild (lit un chemin hors du flake).
nixos-existing = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
home-manager.nixosModules.home-manager
./hosts/nixos/configuration.nix
/etc/nixos/hardware-configuration.nix
{ system.autoUpgrade.flake = "${repoUrl}#nixos-existing"; }
];
};
installer-netboot = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [ ./installer/netboot.nix ];
};
installer-iso = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [ ./installer/iso.nix ];
};
pxe-server = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [ ./pxe-server/configuration.nix ];
};
};
};
}