Noureddine RAMDI / Bureautix: Secure office workstations managed as code with NixOS and Git

Created Sat, 02 May 2026 20:07:04 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

cloud-gouv/bureautix-example

Security-conscious organizations often grapple with how to manage office workstation setups without adding heavy centralized infrastructure. Bureautix takes a different tack: it avoids traditional directory services like LDAP entirely, opting instead for a “managed as code” static user directory distributed via Git. This approach trades the flexibility of dynamic authentication servers for auditability, simplicity, and strong security guarantees.

what bureautix is and how it works

Bureautix is an example configuration repository built on top of Sécurix, designed for secure office workstations. It leverages NixOS as the operating system, which brings reproducible system configurations and declarative management. The core concept is that the entire user directory is managed as code — a static set of user data and policies stored in Git — which is then distributed to each machine.

This means no centralized authentication servers like LDAP or Active Directory are needed. Instead, each workstation has a local, consistent view of users and their credentials, updated through Git pulls. The repo includes everything needed to build a “Bureautix” PC: inventory management, an installer, and office customizations.

Under the hood, Bureautix emphasizes security features such as Secure Boot, which ensures the system firmware only loads trusted code during startup. For user authentication, it uses multi-factor authentication combining disk encryption with LUKS, FIDO2 security keys, and PAM U2F for login. These mechanisms enforce physical possession and strong cryptographic protections.

The stack is primarily NixOS configurations and scripts written in Nix language, with Git as the distribution mechanism for configurations and user data. This design fits organizations wanting to minimize infrastructure complexity while maintaining auditability and security.

what makes bureautix’s approach stand out

The standout aspect is the “managed as code” static directory distributed via Git, rejecting the typical centralized authentication model. This approach has clear tradeoffs:

  • Security and auditability: Since the user directory is a Git repo, every change is versioned and auditable, reducing risks from unauthorized modifications.

  • Simplicity and minimal infrastructure: No need to run and maintain LDAP servers or complex directory services. This reduces operational overhead and attack surface.

  • Static user base: The approach works best for organizations with relatively stable user sets, as dynamic user management (e.g., frequent onboarding/offboarding) requires committing and deploying changes via Git.

  • Offline resilience: Each workstation has the complete user directory locally, improving resilience when network connectivity is limited or absent.

The code quality reflects these principles. The NixOS configurations are modular and declarative, making it straightforward to customize and audit. The security features like Secure Boot and FIDO2 integration are well integrated, relying on mature Linux kernel and PAM modules.

However, the static user directory means less flexibility for real-time user management or scaling to very large, dynamic user populations. Some organizations might find this limiting compared to centralized directory services.

explore the project

The repository is structured around NixOS configuration files, inventory definitions, and installer scripts. The README provides a conceptual overview and points to components like:

  • Inventory directory: Contains user and device definitions managed as code.
  • Installer scripts: Automate building and provisioning Bureautix PCs.
  • Office customizations: Configuration snippets tailored for typical office workstation use.

To understand or adapt the project, start by reading the README and exploring the inventory and modules directories. These hold the core of the “managed as code” user directory and system configurations.

Since no explicit installation commands are provided, interacting with the repo involves cloning it, examining the NixOS configurations, and adapting the inventory files for your organization’s users and devices. The Git-based management means changes propagate by committing updates and pulling from Git on each workstation.

verdict

Bureautix is a solid choice for organizations prioritizing security and auditability over the flexibility of dynamic centralized authentication. Its “managed as code” approach is a refreshing alternative to LDAP or AD, with clear operational simplicity and strong integration of Secure Boot and FIDO2 MFA.

This repo suits teams comfortable with NixOS and Git workflows who have relatively stable user populations and want to avoid the complexity and attack surface of centralized directory servers. It’s less suited for environments requiring frequent, real-time user changes or large-scale dynamic user management.

Overall, Bureautix offers a clean, minimal infrastructure blueprint for secure office workstation management, worth understanding even if your environment demands a different directory service approach.


→ GitHub Repo: cloud-gouv/bureautix-example ⭐ 168 · Nix