Skip to content

The Project

A NixOS configuration for multiple users, multiple hosts, and multiple services:

FeatureDescription
⚙️Fully automatedWith nixos-anywhere 🡕, disko 🡕 and colmena 🡕
👤User profilesProfiles 🡕 and modules Home Manager 🡕 (admin, gamer…)
🖥️Host profilesHost profiles (servers, network nodes, workstations…)
🌐Tailnet VPNMesh VPN 🡕 with headscale 🡕 + tailscale 🡕 + subnets
🛡️Ad BlockerSecure and ad-free internet with AdguardHome 🡕
🧩Unique identitiesSSO with Kanidm 🡕 and Vaultwarden 🡕
🤗Smart servicesImmich 🡕, Nextcloud 🡕, Forgejo 🡕, Matrix 🡕, Jellyfin 🡕, etc.
💻Clean GNOMENixOS hosts with GNOME 🡕 and pre-configured apps
💾3-2-1 BackupsRobust, streamlined, distributed Restic 🡕 backups
🏠Home pageAutomated home page for each zone
FeatureDescription
❄️Declarative, ImmutableAnd reproducible thanks to Nix / NixOS 🡕 and its ecosystem
🔑Enhanced SecuritySimple and reliable security strategy based on sops-nix 🡕
📦Complete ModulesHigh-level NixOS modules easy to configure
📐ArchitectureCoherent, extensible, scalable, customizable
✴️Reverse ProxyServices distributed across the network via Caddy 🡕 proxies
🛜Automated Networkdnsmasq 🡕 zero-conf plumbing (DNS, DHCP, firewall…)

This configuration manages the entire network and its nodes:

  • Zones each containing a gateway and machines.
  • The VPN that encompasses the zones and other machines on the internet.

The network operation can be summarized as follows:

DNF Network

At the root:

  • dnf -> modules, users, hosts (framework)
  • usr -> Local project (in write mode)
  • var -> Generated files and logs
  • src -> Generator source files
  • doc -> Project documentation
  • flake.nix Project flake
  • Justfile Project management with just 🡕
  • Directorydnf/ Framework (modules & common files)
    • Directorymodules/ Framework modules
      • Directorystandard Standard modules
        • Directorysystem/ System & Hardware
        • Directoryconsole/ CLI Applications
        • Directorygraphic/ X Applications
        • Directoryservice/ Network services
        • Directoryadmin/ Administration
        • Directoryuser/ User configurations (without HM)
      • Directorymixin Macro-modules “Mixins”
        • Directoryhost/ Host profiles (desktop, server…)
        • Directoryprofile/ User profile add-ons
    • Directoryhome Home Manager (HM) configuration
      • Directorymodules/ Nix modules (features, programs)
      • Directoryprofiles/ Profiles: admin, student, advanced…
      • Directorynixos/ Additional NixOS (non-HM) configurations
  • Directoryusr/ My network-specific configuration
    • config.yaml My main config
    • Directorymodules/ My NixOS modules, same as dnf/modules
    • Directoryhome/ My HM modules, same as dnf/home
    • Directorysecrets/ My passwords
      • secret.yaml Passwords and SOPS keys
    • Directorymachines/ Host-specific configs (hardware, etc.)
    • Directoryusers/ Per-user HM configs
  • Directoryvar/ Generated files
    • Directorylog/ Log files
    • Directorygenerated/ Generated files
      • hosts.nix
      • users.nix
      • network.nix
  • Directorysrc/ Generator sources
  • Directorydoc/ This documentation

Lower levels serve the higher levels.

DNF Project layers

These configurations are organized by category: