Skip to content

The nxbd Tool

The smart NixOS Configuration Check, Build, and Deploy Tool

Developed and maintained by Applicative Systems and Nixcademy

What is nxbd?

nxbd is a lightweight, safety-focused NixOS deployment tool that helps you manage multiple NixOS systems with confidence. Unlike other deployment tools, nxbd focuses on validating your configurations before deployment to prevent common pitfalls and system lockouts.

Features

  • Deploy Anywhere


    Deploy to local or remote NixOS systems, even from macOS, with automatic remote building support.

    command reference

  • Safety First


    Prevent SSH lockouts, broken sudo permissions, and configuration errors before they happen with comprehensive pre-deployment checks for SSH access, sudo/wheel permissions, boot loader/disk space, service configs, and security settings.

    Security Checks

  • System Health


    Monitor updates, service status, and reboot requirements across all your systems.

    Monitoring

  • Zero Configuration


    Works with vanilla NixOS configurations - no special code or extra files needed. Automatically handles all the complexities that nixos-rebuild requires manual configuration for.

  • Fancy Optics


    Enjoy a polished user experience with real-time build progress and output thanks to nix-output-monitor integration (when available).

Quick Start

First, obtain nxbd either via nix shell:

$ nix shell github:applicative-systems/nxbd

...or install it in your nix profile:

$ nix profile install github:applicative-systems/nxbd

Now you can use it in any repository that contains a flake.nix with NixOS configurations:

# Run all the checks
$ nxbd check

# Fix or ignore failed checks
$ nxbd check --save-ignore

# Deploy with automatic reboots if needed
$ nxbd switch-remote --reboot .#machine1 .#machine2

# Monitor system status
$ nxbd status

Example output

$ nxbd check .#dash .#marketing
Reading configurations of .#dash .#marketing...

=== .#dash ===

sudo_security - Sudo Security Settings (1 checks, 0 passed, 0 ignored)
Checks if sudo is configured securely

  ❌ wheel_only - Only wheel group members should be allowed to use sudo
    - Set security.sudo.execWheelOnly = true

=== .#marketing ===
✅ 26 checks passed (8 ignored fails)

Error: The following checks failed:

System .#dash:
  - sudo_security.wheel_only

To proceed, either:
 - Fix the failing checks
 - Run 'nxbd check --save-ignore' to ignore these checks
$ nxbd status .#dash .#marketing
Reading configurations of .#dash .#marketing...
Querying status of dash.applicative.systems marketing.applicative.systems...

System Status:

=== .#dash ===
  ✗ systemd units: 1 failed
  ✓ System generation up to date
  ✓ Reboot required: no
    Uptime: 0d 16h 12m

=== .#marketing ===
  ✓ systemd units: all OK
  ✓ System generation up to date
  ✓ Reboot required: no
    Uptime: 0d 16h 12m

Documentation

Professional Support

Need help integrating nxbd into your infrastructure?

  • Custom Development: Tailored features for your specific needs
  • Integration Support: Help with your deployment workflows
  • Training: Expert guidance for your team

Contact us:

  • Nixcademy

    Battle-tested corporate Nix & NixOS trainings

  • Applicative Systems GmbH

    Software Engineering Consulting

Community

Join our community: