Documentation

Nixda Stack provides declarative NixOS modules for service hosting on bare metal. No Kubernetes. No YAML. No drift.

Quick Start

Add nixda-stack as a flake input and compose modules into a host configuration:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    nixda-stack.url = "codeberg:nixda/nixda-stack";
  };

  outputs = { nixpkgs, nixda-stack, ... }: {
    nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
      modules = [
        nixda-stack.nixosModules.default
        ./configuration.nix
      ];
    };
  };
}

The default module exports the full stack: zones schema, catalog blueprints, networking, DNS, and reverse proxy. See the reading path below for how each piece fits together.

Reading Path

  1. Architecture — Understand how zones, networking, DNS, and the reverse proxy compose into a single declarative topology.
  2. Zone Configuration — Define network zones, place services, and assign IDs for static IP derivation.
  3. Pick a runtimeNative (nspawn) for NixOS containers or OCI (Podman) for container images.
  4. Blueprint Catalog — Use pre-configured service templates to minimise boilerplate.

All Sections

Concepts

  • Architecture — Module hierarchy, zone-based networking, DNS, reverse proxy, and socket activation
  • Service Lifecycle — Socket activation flow, idle timeouts, and systemd unit relationships

How-to Guides

Runtimes

  • Native (nspawn) — NixOS containers with declarative configuration and private networking
  • OCI / Podman — Container images with static IPs via Netavark bridge networking

Reference