A Nix library framework for managing NixOS configurations.
Find a file
2026-02-15 15:34:20 +00:00
arkadia-lib fix: extracting store path without hash 2026-02-15 14:56:03 +00:00
doc chore: update usage and readme 2026-02-15 15:34:20 +00:00
modules/nixos chore: remove comments 2026-01-15 13:34:00 +00:00
flake.lock chore: holding of on the lib and package option creation 2026-01-05 20:58:25 +00:00
flake.nix chore: pas core input to lib to use 2026-02-15 12:28:22 +00:00
readme.md chore: update usage and readme 2026-02-15 15:34:20 +00:00

Arkadia Lib

Nix Flakes Ready Linux Ready macOS Ready Generators Ready

A Nix library framework for managing NixOS configurations. Named after "Arkadia" from The 100 series (meaning "home").

Status: Core features working - usable for module management!

Quick Start

# flake.nix
{
  inputs.arkadia.url = "github:yourusername/arkadia";

  outputs = inputs:
    let
      lib = inputs.arkadia.mkLib {
        inherit inputs;
        src = ./.;
        arkadia.namespace = "myproject";
      };
    in {
      # Auto-discover modules
      nixosModules = lib.arkadia.module.create-modules {
        src = ./modules/nixos;
      };
    };
}

What's Working

mkLib - Creates library with:

  • File utilities (fs.get-files, fs.get-default-nix-files-recursive)
  • Attribute utilities (attrs.merge-deep, attrs.map-concat-attrs-to-list)
  • Module auto-discovery
  • Flake helpers (without-self, without-src)

Modules - Auto-discover from modules/nixos/ with injected args

Project Structure

arkadia/
├── flake.nix              # Exports mkLib
├── arkadia-lib/
│   ├── default.nix        # Bootstrapper
│   ├── attrs/             # Attribute utilities
│   ├── fs/                # File utilities
│   ├── flake/             # Flake helpers
│   └── module/            # Module management
├── doc/                   # Documentation
└── modules/nixos/         # Your modules

Documentation

  • flake.nix - How the bootstrapper works
  • Modules - Auto-discover and wrap modules
  • Usage - Using in other projects

Testing

nix eval .#arkadia.internal-lib    # Test library
nix flake check                     # Check flake

Coming Soon

🚧 mkFlake - Full flake management 🚧 Package auto-discovery 🚧 Home-manager integration

Why Arkadia?

From The 100 series - it means "home". Built to learn Nix while managing homelab servers.