We deploy, maintain and teach NixOS, and build custom tooling around Nix. Our engineers contribute to the French State's NixOS components, Sécurix and Bureautix, as well as to disko. Our teams develop NixWall, a free software firewall built on NixOS.
NixOS is a free Linux distribution. On Debian or Ubuntu, administrators install packages and edit files machine by machine, and the real state of a server ends up drifting from its documentation. On NixOS, they describe the desired state in text files (software, services, accounts, network) and NixOS builds the system from that description.
Every build creates a new generation of the system. Previous ones remain available, and the boot menu lets you go back to one of them if an update causes a problem.
Software comes from nixpkgs, the Nix package repository. It is the largest across all distributions, with about 119,000 packages according to Repology.
Our article Understanding NixOS compares this approach with Debian, Ubuntu and RHEL. Nix flakes covers the most common way to organise a configuration.
The NixOS GNOME desktop.
Why NixOS for organisations
For a company or a public body, the configuration of every server lives in a Git repository. It is also the documentation, and another provider can take over the infrastructure from these files.
Excerpt from a configuration.nix file: a website over HTTPS, an administrator account and automatic updates. This file is enough to rebuild the server.
Common uses
NixOS is used on servers as well as desktops.
Use
With NixOS
Web and application servers
The same file rebuilds the server after a failure or at another host.
Desktops
Every desktop receives its configuration from a Git repository, as in Sécurix and Bureautix.
Firewalls and routers
A wrong rule is undone by rolling back to the previous generation.
Network installation
A new machine boots from the network and installs without a USB stick.
Development environments
nix-shell or a flake gives every developer the same tool versions.
Testing before deployment
NixOS tests check a configuration in virtual machines before it reaches production.
How a project runs
Moving to NixOS happens in stages, without stopping what already works.
Audit: inventory of servers, services and their dependencies, then choice of a first service to migrate.
Pilot: that service moves to NixOS, with its whole configuration in a Git repository. The old server stays in place until sign-off.
Extension: the other servers follow, with shared modules for accounts, monitoring, backups and hardening.
Handover: training and documentation for your teams, who then change the configuration themselves.
NixOS services
We can take on the whole project or just one of these stages.
Audit and migration
Inventory of the fleet, choice of the first service and migration plan, then switchover of servers and desktops.
Deployment
Configurations as flakes and modules, partitioning and encryption with disko, automated or network installation, encrypted secrets.
Maintenance and operations
Tracked updates, monitoring and backups. Maintenance and managed services also cover NixOS fleets.
Sécurix and Bureautix desktops
Pilots for public bodies, with inventory, installer and security keys adapted to your organisation.
Custom development
NixOS modules, packages, deployment tooling and integrations written for your needs, released under a free licence when possible. NixWall, the free firewall we develop, is one example.
Training
A 3-day NixOS course for administration teams, on site or remote, with exercises on your own cases.
Sécurix and Bureautix
Sécurix is a NixOS distribution developed by DINUM for secure system administration, office and development desktops. Bureautix is its example variant for office desktops, with a machine inventory, an installer and settings designed for an IT department.
The project first targets unclassified information, then possibly the Diffusion Restreinte level. It follows ANSSI recommendations with a hardened kernel, Secure Boot and an encrypted disk unlocked with a FIDO2 key. Login also uses a security key, and the password is only a fallback. Thanks to NixOS, the same model adapts to each need, for example a desktop shared by several staff members or one restricted to the intranet.
The next steps announced by DINUM cover further hardening, sending logs to a central log collector, automatic enrolment of new desktops and Secure Boot key rotation.
Our engineers contribute actively to the project. We want to keep contributing upstream, especially on network installation and fleet management, and to support public bodies adopting Sécurix, from the first pilot to deployment.
Sécurix is released under the MIT licence. It is still in alpha, and its developers do not offer support yet. We can run a pilot with you.
The Bureautix KDE Plasma desktop.
NixWall
NixWall is a firewall developed by our teams on NixOS. It is entirely free software, under the AGPL-3.0 licence, and its code is public on GitHub.
The goal is a reproducible firewall. Its whole configuration lives in files, and two machines built from the same files are identical. NixOS keeps every previous state of the system, so a change that cuts the network is undone by rolling back to the previous generation.
NixWall also benefits from nixpkgs, the repository described above. The software it relies on is updated there continuously.
The project is in alpha and not yet ready for production. NixWall will eventually be managed from a web interface, which will go through its API to change the configuration.
Installing and configuring NixWall
NixWall installs from an ISO image, on a dedicated machine or in a virtual machine.
Installation
The ISO image boots to a screen that describes the steps. The administrator finds the disks and network interfaces, adapts two files, disko.nix for partitioning and config.toml for the network and rules, then runs nixwall-install. After the reboot, the firewall applies the configuration described in these files.
Rules in a TOML file
Zones, addresses, DHCP and filtering rules are described in config.toml, a format a network administrator can read without knowing Nix. NixWall turns this file into a NixOS configuration. The roles stay separate. The administrator changes the rules, and developers evolve the NixOS modules without touching this file. A TOML file is easier to review and fix than Nix code. The NixWall API reads and writes this same file.
We develop NixWall actively, in house, and publish every release on GitHub. Contributions are welcome, whether code, tests, documentation or bug reports.
Frequently asked questions
Do we have to rewrite our whole infrastructure?
No. NixOS can arrive server by server, starting with one isolated service. Other machines stay on Debian or Ubuntu.
Is NixOS suitable for production?
Yes. A stable release comes out every six months, in May and November, and receives security fixes for seven months.
Can you deploy Sécurix or Bureautix?
Yes, as a pilot, since these two DINUM configurations are still in alpha.
A one-hour first conversationBy video call, with an engineer. You describe your context, tools and constraints, and we show you the relevant software running.
An audit or a scoping phase2 to 5 days depending on the scope. You receive a report, an action plan and a quote. The report is yours, whatever comes next.
The project, then ongoing supportMigration, installation or development, in stages you sign off. Then support, maintenance or managed services, at the level you choose.