Skip to content

Abbreviations

kgrs     `kubectl get replicaset`
kdelrs   `kubectl delete replicaset <replicaset-name>` 
kaf      `kubectl apply -f `
kdelf    `kubectl delete -f`
kgp      `kubectl get pods`
kgpn     `kubectl get pods -n`
kgpa     `kubectl get pods -A`
kgalabel `kubectl get all -l app=app01`
kga      `kubectl get all`

Flakes

/etc/nixos/configuration.nix
nix.settings.experimental-features = [ "nix-command" "flakes" ];
sudo nixos-rebuild switch

flake.nix

/etc/nixos/flake.nix
{
  description = "NixOS configuration";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
    home-manager.url = "github:nix-community/home-manager/release-25.11";
    home-manager.inputs.nixpkgs.follows = "nixpkgs";
  };

  outputs = inputs@{ nixpkgs, home-manager, ... }: {
    nixosConfigurations = {

      vm = nixpkgs.lib.nixosSystem {
        system = "x86_64-linux";
        modules = [
          ./hosts/vm/configuration.nix
          home-manager.nixosModules.home-manager
          {
            home-manager.useGlobalPkgs = true;
            home-manager.useUserPackages = true;
            home-manager.extraSpecialArgs = { inherit inputs; };
            home-manager.users.mathod = ./home.nix;
          }
        ];
      };

      workstation = nixpkgs.lib.nixosSystem {
        system = "x86_64-linux";
        modules = [
          ./hosts/workstation/configuration.nix
          home-manager.nixosModules.home-manager
          {
            home-manager.useGlobalPkgs = true;
            home-manager.useUserPackages = true;
            home-manager.extraSpecialArgs = { inherit inputs; };
            home-manager.users.mathod = ./home.nix;
          }
        ];
      };

    };
  };
}
vim.nix
{ pkgs, ... }:

{
  programs.vim = {
    enable = true;
    defaultEditor = true;
    package = pkgs.vim;
    settings = {
      number = true;
      tabstop = 2;
      expandtab = true;
    };
  };
}
{ ... }:

{
  programs.vscode = {
    enable = true;
  };
}
{ ... }:

{
  programs.zsh.enable = true;
  }}
{ ... }:

{
  programs.zellij = {
    enable = true;
    enableZshIntegration = true;   # autostart zellij à l'ouverture de zsh
    attachExistingSession = true;  # se rattache à la session existante si elle existe
    exitShellOnExit = true;        # ferme le shell quand zellij quitte
  };
}

2. Créer le flake

sudo mv /etc/nixos/configuration.nix /etc/nixos/configuration.nix.bak
/etc/nixos/flake.nix
{
  description = "NixOS configuration";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
    home-manager.url = "github:nix-community/home-manager/release-25.11";
    home-manager.inputs.nixpkgs.follows = "nixpkgs";
  };

  outputs = inputs@{ nixpkgs, home-manager, ... }: {
    nixosConfigurations = {
      nixos = nixpkgs.lib.nixosSystem {
        system = "x86_64-linux";
        modules = [
          ./configuration.nix
          home-manager.nixosModules.home-manager
          {
            home-manager.useGlobalPkgs = true;
            home-manager.useUserPackages = true;
            home-manager.extraSpecialArgs = { inherit inputs; };
            home-manager.users.mathod = ./home.nix;
          }
        ];
      };
    };
  };
}

3. Restaurer configuration.nix

sudo mv /etc/nixos/configuration.nix.bak /etc/nixos/configuration.nix

4. Créer home.nix

sudo nano /etc/nixos/home.nix
{ config, pkgs, ... }:

{
  home.username = "mathod";
  home.homeDirectory = "/home/mathod";
  home.stateVersion = "25.11";

  programs.home-manager.enable = true;

  programs.vim = {
    enable = true;
    settings = {
      expandtab = true;
      tabstop = 2;
      number = true;
    };
  };

  programs.zsh = {
    enable = true;
  };
}

5. Appliquer

sudo nixos-rebuild switch --flake /etc/nixos#nixos

Home-manager est installé. Ensuite tu ajoutes tes packages et programmes dans home.nix.