Premessa
Ciao! Se è la prima volta che capiti su questo sito, ti consiglio di consultare la pagina principale di questo cosiddetto Giardino Digitale per scoprire meglio cos’è e come navigarlo.
Lo stato di questa nota è al momento: 🔴 Bozza.
Repository di Forgejo: https://forgejo.it/Rexus752/my-nixos-config.
1 - Come aggiungere un nuovo dispositivo
Questo in realtà serve più a me che a te, dato che molto probabilmente ti conviene di più copiare una per una le varie parti della configurazione, piuttosto che copiarla interamente.
1.1 - Sul vecchio dispositivo
1.2 - Sul nuovo dispositivo
- Installa NixOS
- Spostati nella cartella
/etc/nixos:cd /etc/nixos - Apri il terminale e modifica la configurazione:
sudoedit configuration.nix - Prendi nota delle impostazioni del bootloader. Nel mio caso corrispondono a:
boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; - Aggiungi git tra i pacchetti da installare:
{ # ... environment.systemPackages = with pkgs; [ git ] # ... } - Aggiungi queste opzioni per usare nix-command e flakes e per incrementare la dimensione del download buffer a 512MB:
{ # ... nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.download-buffer-size = 536870912; # ... } - Fai il rebuild (assicurati di essere conness* a internet):
sudo nixos-rebuild switch - Spostare i file di configurazione generati automaticamente da un’altra parte (es. Desktop):
sudo mv * ~/Desktop - Clonare il repository in
/etc/nixosconsudo git clone https://forgejo.it/Rexus752/my-nixos-config . - Creare in
/devices/una nuova cartella con il nome del dispositivo (es.manuel-laptop):sudo mkdir devices/manuel-laptop - Spostare il file di configurazione
hardware-configuration.nixgenerato inizialmente indevices/manuel-laptop:sudo mv ~/Desktop/hardware-configuration.nix devices/manuel-laptop - Copiare il
configuration.nixdi uno dei dispositivi già esistenti (es.manuel-labtop) al posto di quello di questo:sudo cp devices/manuel-labtop/configuration.nix devices/manuel-laptop - Modificare il
configuration.nixdel dispositivo:sudoedit devices/manuel-laptop/configuration.nix - Cambiare l’hostname:
let hostname = "manuel-laptop"; in { ... - Sostituisci le opzioni del bootloader con quelle che hai salvato prima.
- Salva le modifiche ed esci
- Modificare il flake:
sudoedit flake.nix - Aggiungere il dispositivo al flake:
{ # ... outputs = { self, nixpkgs, home-manager, sops-nix, # temp, ... }@inputs: { nixosConfigurations = { # ... manuel-laptop = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ ./devices/manuel-laptop/configuration.nix home-manager.nixosModules.default sops-nix.nixosModules.default ]; specialArgs = { inherit inputs; }; }; }; }; } - Eseguire il rebuild specificando di usare la configurazione del nuovo dispositivo:
sudo git add . sudo nixos-rebuild switch --flake /etc/nixos/#manuel-laptop - Riavvia il computer
- Su forgejo.it genera una nuova chiave SSH e aggiungila alle chiavi dell’account di forgejo.it
- Cambia il remote del repository in quello SSH
- Esegui
sudo chown -R manuel:users /etc/nixos