# Comment installer NixOS ?

## Étape 1: Obtenir une image

L'image graphique peut être sympathique, mais la version texte est amplement suffisante et elle vient avec une copie du manuel de NixOS pour l'installation.

Par ici, pour le téléchargement: <https://nixos.org/download.html>

Pour ceux qui utilisent AWS ou VirtualBox, vous avez des options supplémentaires plus rapides, mais je vous conseille de faire une vraie installation (pour ceux sous AWS, pas trop le choix en vérité.)

## Étape 2 : Avoir Internet

Cela dépend de vous!

## Étape 3 : Préparer NixOS

### Étape 3a : Partitionner le disque dur

Préférablement, en UEFI, vous assignerez 50 % de votre RAM en SWAP et 512 MiB à 1 GiB de boot.

Pour les plus téméraires: <https://jappieklooster.nl/nixos-on-encrypted-btrfs.html>

### Étape 3b: Formatter les partitions

Il faut choisir un système de fichier pour `/boot` et `/`.

Mes conseils pour les débutants: fat32, ext4.

Mes conseils pour les niveaux intermédiaires: vfat, ext4.

Mes conseils pour les niveaux intérmédiaires mais téméraires: vfat, btrfs.

Mes conseils pour les niveaux experts: vfat, zfs.

Pour formatter une partition, il suffit de faire `mkfs.btrfs` ou `mkfs.ext4` ou `mkfs.vfat` de la façon suivante:

```shell
mkfs.ext4 -L mon-nixos /dev/sdx1
mkswap -L swap /dev/sdx2
mkfs.fat -F 32 -n BOOT /dev/sdx3
```

### Étape 3C : Monter les partitions

L'idée ici est de monter dans l'ordre:

- La partition root (`/dev/sdx1` souvent) sur `/mnt`
- Créer le repertoire `/mnt/boot` et monter sur `/mnt/boot`, `/dev/sdx3` bien souvent
- Activer le swap avec `swapon /dev/sdx2`.

### Étape 3d : Générer la configuration

Il suffit juste de faire `nixos-generate-config --root /mnt`, NixOS va détecter dynamiquement votre hardware et générer les fichiers de configuration dans `/mnt/etc/nixos`.

### Étape 4 : Tripoter la configuration

À ce moment-là, vous pouvez effectuer toutes sortes de configuration, en lisant le `/mnt/etc/nixos/configuration.nix`.

Le mieux est de:

- Activer SSH
- Ouvrir le port 22 sur le parefeu
- Mettre un vrai hostname qui claque
- Ajouter un utilisateur avec votre clef SSH directement.

### Étape 5 : le final

Vous faites `nixos-install`, puis vous donnez un mot de passe `root` et c'est parti.
