Skip to content

Introduction

Darkone NixOS Framework is a working base for a multi-user, multi-services and multi-host configuration.

FeatureDescription
⚙️Quick installFully automated host install with nixos-anywhere 🡕 & disko 🡕
Fully automated host update with colmena 🡕
👤User profilesUser profiles 🡕 and modules 🡕 with Home Manager 🡕
Admin, Nix-Admin, Developer, Gamer, Student, Beginner, Child…
🖥️Host profilesProfiles for hosts 🡕 with the option to customize each one
Workstation, Laptop, Server, VM, Gateway, VPN Coordination…
🌐Tailnet VPNFull-mesh VPN 🡕 with headscale 🡕 + tailscale 🡕, independent subnets
🛡️Ad-Free webSecure, ad-free internet with AdguardHome 🡕 and effective firewall
🧩SSOAuthentication with Kanidm 🡕: one identity for (almost) all services
🤗ServicesImmich 🡕, Nextcloud 🡕, Forgejo 🡕, Vaultwarden 🡕, Mattermost 🡕, Jellyfin 🡕, etc. 🡕
💻Clean GnomeNixOS hosts with streamlined GNOME UI 🡕 + stable and useful apps
💾BackupsRobust and widespread 3-2-1 backups with Restic 🡕
🏠HomepageAutomated homepage -> quick access to all configured services
SpecificityDescription
❄️Declarative & ImmutableFully reproducible configuration based on Nix / NixOS 🡕
🔑Enhanced securitySimple and reliable security strategy with sops-nix 🡕
📦High-level modulesHigh-level NixOS modules 🡕, easy to enable and use
📐Consistent architectureExtensible and scalable architecture 🡕
✴️Reverse proxyDistributed services with Caddy 🡕 proxies
🛜Auto-networkingZero-conf network plumbing with dnsmasq 🡕

Main folders:

  • dnf -> Framework: tools + modules + profiles (users, hosts, themes)
  • usr -> Local project: config, modules + profiles, machines, users
  • src -> Generator and scripts for tools
  • var -> Generated files and logs
  • doc -> Framework documentation

The lower layers serve the upper layers.

DNF Project layers

The configurations are also organized by category:

  • flake.nix Main flake
  • Justfile Project management with just
  • Directorydnf/ Framework (modules & common files)
    • Directorymodules/ Framework modules
      • Directorystandard Standard nix modules
        • Directorysystem/ System / Hardware configurations
        • Directoryconsole/ CLI applications
        • Directorygraphic/ X applications
        • Directoryservice/ Daemons
        • Directoryadmin/ Nix administration settings
        • Directoryuser/ User management (not home)
      • Directorymixin Mixin modules
        • Directoryhost/ Host profiles (desktop, server…)
        • Directoryprofile/ Host profiles (student, admin…)
    • Directoryhome Home Manager configuration
      • Directorymodules/ HM Modules (features)
      • Directoryprofiles/ admin, student, advanced…
  • Directoryusr/ Writable zone for local network project
    • config.yaml Local configuration used by the generator
    • Directorymodules/ Local nixos modules, the same as dnf/modules
    • Directoryhome/ Local HM conf, the same as dnf/home
    • Directorysecrets/ Local secrets file
      • secret.yaml SOPS secrets
    • Directorymachines/ Host specific confs (hardware, overload)
    • Directoryusers/ User specific confs (stateVersion, overload)
  • Directoryvar/ Generated files
    • Directorylog/
    • Directorygenerated/ Generated nix files
      • hosts.nix Hosts to deploy
      • users.nix Users to deploy
      • network.nix Local network configuration
  • Directorysrc/ Generator sources
  • Directorydoc/ This documentation