Aller au contenu

Présentation du projet

Une configuration NixOS multi-utilisateur, multi-hôte et multi-service :

FonctionnalitéDescription
⚙️Tout-automatiséAvec nixos-anywhere 🡕, disko 🡕 et colmena 🡕
👤Profils utilisateursProfils 🡕 et modules Home Manager 🡕 (admin, gamer…)
🖥️Profils d’hôtesProfils d’hôtes (serveurs, nœuds réseau, postes de travail…)
🌐VPN TailnetVPN maillé 🡕 avec headscale 🡕 + tailscale 🡕 + sous-réseaux
🛡️Stop PublicitésInternet sécurisé et sans pub avec AdguardHome 🡕
🧩Identités uniquesSSO avec Kanidm 🡕 et Vaultwarden 🡕
🤗Services intelligentsImmich 🡕, Nextcloud 🡕, Forgejo 🡕, Matrix 🡕, Jellyfin 🡕, etc.
💻GNOME épuréHôtes NixOS avec GNOME 🡕 et applis pré-configurées
💾Sauvegardes 3-2-1Sauvegardes Restic 🡕 robustes, simplifiées, distribuées
🏠Page d’accueilPage d’accueil automatisée pour chaque zone
SpécificitéDescription
❄️Déclaratif, immuableEt reproductible grâce à Nix / NixOS 🡕 et son écosystème
🔑Sécurité renforcéeStratégie de sécurité simple et fiable, reposant sur sops-nix 🡕
📦Modules completsModules NixOS haut-niveau faciles à configurer
📐ArchitectureCohérente, extensible, scalable, personnalisable
✴️Proxy inverseServices distribués à travers le réseau via proxies Caddy 🡕
🛜Réseau automatiséPlomberie dnsmasq 🡕 zero-conf (DNS, DHCP, pare-feu…)

Cette configuration gère tout le réseau et ses noeuds :

  • Les zones contenant chacune une passerelle et des machines.
  • Le VPN qui englobe les zones et d’autres machines sur internet.

On peut résumer le fonctionnement du réseau ainsi :

Réseau DNF

A la racine :

  • dnf -> modules, users, hosts (framework)
  • usr -> Projet local (en écriture)
  • var -> Fichiers générés et logs
  • src -> Fichiers source du générateur
  • doc -> Documentation du projet
  • flake.nix Flake du projet
  • Justfile Gestion du projet avec just 🡕
  • Répertoirednf/ Framework (modules & common files)
    • Répertoiremodules/ Framework modules
      • Répertoirestandard Modules standards
        • Répertoiresystem/ Système & Matériel
        • Répertoireconsole/ Application CLI
        • Répertoiregraphic/ Applications X
        • Répertoireservice/ Services réseau
        • Répertoireadmin/ Administration
        • Répertoireuser/ Configurations utilisateurs (hors HM)
      • Répertoiremixin Macro-modules “Mixins”
        • Répertoirehost/ Profiles d’hôtes (desktop, server…)
        • Répertoireprofile/ Compléments aux profils utilisateurs
    • Répertoirehome Configuration Home Manager (HM)
      • Répertoiremodules/ Modules nix (fonctionnalités, programmes)
      • Répertoireprofiles/ Profils : admin, student, advanced…
      • Répertoirenixos/ Configurations NixOS (hors HM) additionnelles
  • Répertoireusr/ Configuration spécifique de mon réseau
    • config.yaml Ma config principale (en)
    • Répertoiremodules/ Mes modules NixOS, identique à dnf/modules
    • Répertoirehome/ Mes modules HM, identique à dnf/home
    • Répertoiresecrets/ Mes mots de passe
      • secret.yaml Mots de passe et clés SOPS
    • Répertoiremachines/ Confs spécifiques par hôte (hardware, etc.)
    • Répertoireusers/ Confs spécifique HM par utilisateur
  • Répertoirevar/ Fichiers générés
    • Répertoirelog/ Fichiers de log
    • Répertoiregenerated/ Fichiers générés (en)
      • hosts.nix
      • users.nix
      • network.nix
  • Répertoiresrc/ Sources du générateur
  • Répertoiredoc/ Cette documentation

Les niveaux inférieurs rendent service aux niveaux supérieurs.

DNF Project layers

Ces configurations sont organisées par catégories: