Skip to content

ndots

A declarative NixOS + nix-darwin configuration built with flakes, modularized via Flake-Parts, and auto-wired with nix-wire .

Utilities and scripts from utils .

Fully CLI-based - all hosts are managed via SSH + Tailscale. No GUI required for administration.

At a Glance

Platforms NixOS (Linux), nix-darwin (macOS)
Build System Flakes + Flake-Parts + nix-wire
Disk Management disko (declarative partitioning)
Secrets sops-nix (age encryption)
Networking Tailscale mesh VPN
Monitoring Beszel hub + agents
Deployment just deploy (auto-detects NixOS vs Darwin)
Theming Stylix (kanagawa-dragon, cross-platform)

Hosts

Host CPU RAM Role
mach Intel i7-10510U (4c/8t) 24 GB Personal laptop
dsd Intel i9-12900KS (16c/24t) 64 GB Work desktop
semi Intel i9-14900K (24c/32t) 128 GB Semi-personal
obox Ampere Neoverse-N1 (4c/4t) 24 GB Oracle Cloud VPS
jp-mbp Apple M4 - MacBook Pro

See Hosts for per-host details.

Services

Modules

The flake exposes reusable modules you can import into your own configuration:

Packages

Custom packages exposed via the flake and overlays:

Quick Start

# Deploy to current host
just deploy

# Deploy to a remote host
just deploy obox

# Build ISO installer
just iso

# Serve docs locally
just doc

See Deployment for full details.

Using This Flake Externally

Import modules into your own flake

Add this repo as a flake input and import any module:

{
  inputs.ndots.url = "github:semi710/ndots";

  outputs = { self, nixpkgs, ndots, ... }: {
    nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [
        ndots.nixosModules.tailscale
        ndots.nixosModules.filebrowser
        # ... see modules docs for the full list
      ];
    };
  };
}

You can also fetch disko schemas and custom packages:

# Fetch a partition schema
nix eval github:semi710/ndots#disko.partition \
  --apply 'b: builtins.fromJSON (builtins.toJSON (b { device = "/dev/nvme0n1"; }))' \
  --impure

# Run a custom package
nix run github:semi710/ndots#copy -- "hello"