Configuration NixOS d'Aurore
Find a file
2025-10-07 21:24:13 +02:00
devshells doc: Improve 2025-09-28 17:02:38 +02:00
disks Initial commit 2025-09-25 23:28:10 +02:00
hosts/vm grafana: nginx recommended factorization 2025-10-07 21:24:13 +02:00
profiles grafana: configuration du service 2025-10-07 21:20:49 +02:00
secrets grafana: configuration du service 2025-10-07 21:20:49 +02:00
flake.lock ssh + fmt + doc + agenix 2025-09-27 23:29:31 +02:00
flake.nix grafana: configuration du service 2025-10-07 21:20:49 +02:00
README.md jitsi: configuration du service 2025-09-30 23:16:28 +02:00
secrets.nix grafana: configuration du service 2025-10-07 21:20:49 +02:00

NixOS

Ce repo contient la configuration NixOS des différentes machines présentes dans l'infrastructure d'Aurore et se décompose en plusieurs parties :

  • disks : contient la configuration disko des machines.
  • devshells : contient des shells nix pour obtenir des environnements avec l'ensemble des dépendances nécessaires.
  • hosts : contient la configuration spécifique à chaque machine, typiquement la configuration réseau,
  • profiles : contient la configuration des différents modules utilisés.
  • secrets : contient l'ensemble des secrets chiffrés avec agenix.

Gestion des secrets

Dans Nix, l'ensemble des fichiers est écrit dans /nix/store, ce qui est accessible et donc visible par tous les programmes (et tous les utilisateur⋅ices). De plus, l'ensemble des fichiers de configurations se trouvent sur un repo git public. Pour ces deux raisons, il est préférable de chiffrer les secrets à l'aide de agenix. Plus de détails sont disponibles dans secrets.

Installation d'une machine

Si la configuration est déjà présente dans ce projet, il vous suffit de suivre les étapes suivantes :

  1. Assurez-vous que la machine a accès à Internet et possède un serveur DNS,
  2. Importez les fichiers de configuration,
  3. Si nécessaire, il faut générer le fichier hardware-configuration.nix à l'aide de la commande nixos-generate-config --no-filesystems --root . puis l'ajouter dans la configuration,
  4. Vérifiez que la configuration disko utilisée est compatible, la commande lsblk devrait être suffisante pour cela,
  5. Partitionnez les disques : l'usage de disko simplifie cette étape. En effet, il suffit d'exécuter la commande : nix run github:nix-community/disko --extra-experimental-features "nix-command flakes" -- --mode disko --flake <path>#<nom>, et disko s'occupe automatiquement du montage des partitions créées,
  6. Créez le répertoire /mnt/etc/nixos et ajoutez les fichiers de configuration dans ce répertoire,
  7. Installez NixOS : nixos-install --flake <path>#<nom>,
  8. Si tout s'est bien passé, un mot de passe vous sera demandé pour le mot de passe root, entrez-le, puis redémarrez la machine avec reboot.
  9. Pensez à push la configuration ainsi écrite.

Remarque :

S'il n'y a pas suffisamment de place mémoire sur le disque d'installation lors du partitionnement des disques avec disko, il est possible d'étendre le /nix/store en utilisant la RAM de la machine à l'aide de la commande : mount -o remount,size=3G,noatime /nix/.rw-store Cependant, vérifiez au préalable d'avoir suffisamment de RAM.

Remarque :

Si l'installation nécessite le déchiffrement de secrets, l'installation pourrait échouer. Veuillez alors suivre la procédure décrite dans secrets.

Formattage

La flake contient un formatter (treefmt) qui s'exécute automatiquement lors d'un nix flake check. Si le repo n'est pas formatté, une erreur sera alors retournée en suggérant des modifications. Pour appliquer les modifications suggérées, il est alors possible d'exécuter la commande :

$ nix fmt