Dépôt de configuration NixOS personnel
| dotfiles | ||
| home/afoucaultc | ||
| hosts | ||
| flake.lock | ||
| flake.nix | ||
| install.sh | ||
| README.md | ||
| rebuild.sh | ||
| update.sh | ||
How to use
Structure :
~/nixos-config/
├── flake.nix # pour fixer la source/version des packages utilisés
│ # permet de fixer la source/version des packages utilisés
├── flake.lock
├── hosts/
│ # configuration système
│ ├── nixos-home/
│ │ # mon host de la maison
│ │ └── nixos/
│ │ ├── configuration.nix # entrée des fichiers de configuration
│ │ ├── hardware-configuration.nix # fichier hardware généré à l'installation
│ │ └── config/ # tous fichiers config
│ │ └── ...
│ └── nixos-laptop/
│ # mon host du travail
│ └── nixos/
│ ├── configuration.nix # entrée des fichiers de configuration
│ ├── hardware-configuration.nix # fichier hardware généré à l'installation
│ └── config/ # tous fichiers config
│ └── ...
├── home/
│ # configuration user
│ └── afoucaultc/
│ # mon user personnel
│ ├── home.nix # point d'entrée home-manager classique
│ ├── home_laptop.nix # point d'entrée home-manager pour machine light
│ ├── dotfiles_apps.nix # liens vers mes dossier de configuration
│ └── packages/ # lien vers les packages installés sur mon user
└── ...
Installation :
- Installer NixOS sur clé USB (via Rufus sous windows par exemple)
- Boot sur clé USB
- Suivre les indications (perso: chiffrement LUKS + swap activé + formatage auto)
- Reboot dans NixOS
- Cloner le repo git en utilisant git temporairement via nix shell :
nix-shell -p git --run "git clone https://gitlab.com/afoucaultc/nixos-config.git ~/nixos-config" - Lancer le
./install(copie hardware-configuration dans le host, ajoute le host, lance un rebuild) - C'est fini, reboot et lancer la nouvelle version avec Grub
Warning
Il peut y avoir besoin d'ajouter un utilisateur pour git, à voir par la suite Pour les GPU ou CPU spécifiques, des changements peuvent être nécessaires, à adapter
Installer un nouveau package et mettre à jour
Pour update
nix flake update
sudo nixos-rebuild switch --flake ~/nixos-config#nixos-home
Ou utiliser update.sh
Pour trouver un nouveau package :
nix search nixpkgs nom_du_package
Pour savoir où le déclarer :
- system wide : dans hosts
- user-level : dans home
Pour savoir comment le déclarer :
- Avec un module
programs.*s'il existe (à préférer, voir lien) - Avec
home.packages(home.packages = [ pkgs.xxx ];)
Pour gérer la version
- version trop ancienne : référencer
pkgs-unstable.xxx - Package pas encore dans nixpkgs : chercher un flake upstream officiel (packages..degault), ajouter comme input et le référencer
Machine ancienne
Bien utiliser la version laptop qui prend la plupart des paquets par cachix (pour éviter la compilation en locale qui dépasse les capacités de la RAM)