NixOS
How we run Frappe, Odoo, and WordPress on declarative, reproducible infrastructure: our open-source Nix projects and a self-hosting reference architecture.
On this page
This section covers running business systems and devices on Nix and NixOS: the Avunu open-source Nix projects, how to develop and deploy with them, and the self-hosting reference architecture. Frappe, Odoo and WordPress each have a Nix project that provides a development shell, a NixOS module and container images, so the same description builds on a laptop and runs on a server.
Getting Started
New to Nix? The official Nix documentation and NixOS manual are good starting points. Then read why we use it, and when we would not.
Why Nix for Business Systems — What Nix and NixOS give a business running Frappe, Odoo or WordPress, how Avunu applies them, and when not to use them.
Frappe and ERPNext
Frappe Development Environment with frappe-nix — A pinned, reproducible bench with devenv, uv2nix-managed Python, local services, and guard rails against production side effects.
Building Production Images with frappe-nix — The immutable bench built from each app's
yarn.lock, the OCI images it produces, and how to build, push and run them.Running Frappe as a NixOS Service — The
services.frappemodule: multiple sites, secrets, MariaDB, Redis, nginx, snapshot-protected migrations, and logs.
Odoo
Odoo Development Environment with odoo-nix — Scaffold an Odoo and OCA project, start the devenv shell, and use the daily
odoocommands.Adding OCA Modules with odoo-nix — Pick modules or bundles, let odoo-nix add the dependency repos as submodules, and keep
modules.txtand the lock in sync.Running Odoo as a NixOS Service — The
services.odoo-nixmodule: PostgreSQL, nginx, secrets, migrations on deploy, backups, restores, and logs.
WordPress
WordPress on FrankenPHP with wordpress-nix — OCI image or NixOS service, state or git mode, and local development with devenv.
WordPress Performance and Hardening on Nix — What the platform mu-plugins do for speed and security, and how to audit a MySQL dump before restoring it.
Hosting Architecture
Reference Architecture for Self-Hosting Business Systems — Bare-metal NixOS with Nomad, systemd-nspawn, Cloudflare Tunnel, ZFS and JuiceFS, without Kubernetes.
Devices and Desktops
Building a Web Kiosk USB with web_kiosk — A bootable NixOS image that opens Firefox in kiosk mode on one URL and joins your WiFi automatically.
A NixOS Micro Desktop for Family and Friends — A lean, self-maintaining NixOS desktop with a choice of three shells, declarative disk layout, and automatic updates.
Mounting Cloud Storage with nixos-rclone — Live rclone mounts and event-driven two-way sync on NixOS, including Markdown to Google Docs conversion for an Obsidian vault.
This section is in the public domain (CC0 1.0), code samples included. Use it however helps you.