Files
nix-config/modules/README.md
T
ryan4yin | 二花 9a307b313d refactor: host profiles; give ruby, kana and aquamarine the TUI home (#512)
- Add the agent profile (modules/nixos/agent.nix: rootless Podman, linger,
  nix-ld) with home/linux/tui.nix as its home role; ruby, kana and
  aquamarine use it, so hosts no longer import from hosts/idols-ruby.
- Gate nushell's ~/.secrets source behind modules.shell.secrets.enable,
  off on agent hosts.
- Persist the TUI home state on aquamarine's tmpfs root.
- Document host profiles in hosts/README.md; add tests/agent-profile and
  drop the x86_64 colmena-parity test, which needs mysecrets.

Assisted-by: Claude Code (claude-opus-5-5)
2026-11-03 04:57:06 -06:00

111 lines
4.6 KiB
Markdown

# NixOS / Nix-Darwin's Submodules
This directory contains modular NixOS and Nix-Darwin configurations organized by platform and
functionality.
## Current Structure
```
modules/
├── README.md
├── base/ # Common configuration for all platforms
│ ├── default.nix
│ ├── fonts.nix # System font configuration
│ ├── nix.nix # Nix package manager settings
│ ├── overlays.nix # Package overlays
│ ├── packages.nix # Essential system packages
│ ├── security.nix # Basic security settings
│ └── users.nix # User management
├── darwin/ # macOS-specific modules
│ ├── README.md
│ ├── apps.nix # macOS applications
│ ├── default.nix
│ ├── nix-core.nix # Core Nix configuration
│ ├── security.nix # macOS security settings
│ ├── ssh.nix # SSH configuration
│ ├── system.nix # System-level settings
│ └── users.nix # macOS user management
└── nixos/ # NixOS-specific modules
├── base/ # Base NixOS configuration
│ ├── auditd.nix # Audit trail for root sessions and credentials
│ ├── btop.nix # System resource monitor
│ ├── btrbk.nix # Local btrfs snapshots
│ ├── core.nix # Core system settings
│ ├── default.nix
│ ├── i18n.nix # Internationalization
│ ├── locate.nix # locate/updatedb file search
│ ├── monitoring.nix # System monitoring
│ ├── networking/ # Network configuration
│ ├── nix.nix # Nix settings
│ ├── packages.nix # System packages
│ ├── restic-backup.nix # Encrypted off-host backups (see ../docs/BACKUP.md)
│ ├── ssh.nix # SSH daemon configuration
│ ├── trash.nix # Trash retention cleanup
│ ├── user-group.nix # User and group management
│ └── zram.nix # ZRAM swap configuration
├── agent.nix # `agent` profile: headless host with the TUI home role
├── desktop.nix # Desktop environment configuration
├── desktop/ # Desktop-specific modules
│ ├── canokey.nix # CanoKey hardware token
│ ├── computer-use.nix # Headless X11/i3 session for AI agents
│ ├── default.nix
│ ├── fhs.nix # FHS environment
│ ├── fonts.nix # Desktop fonts
│ ├── gaming.nix # Gaming support
│ ├── misc.nix # Miscellaneous desktop settings
│ ├── networking/ # Network-related desktop configs
│ ├── nix.nix # Desktop Nix settings
│ ├── peripherals.nix # Peripheral device configuration
│ ├── power.nix # Power management
│ ├── security.nix # Desktop security settings
│ ├── ssh.nix # Desktop SSH configuration
│ ├── containers.nix # Container engines (podman/docker)
│ └── xdg.nix # XDG base directory settings
└── server/ # Server-specific modules
├── qemu-guest-hardware-configuration.nix
├── qemu-guest.nix # VM guest base module (libvirt/QEMU guests)
├── server-aarch64.nix
└── server.nix
```
System hardening modules (kernel baseline, AppArmor, app sandboxes) live under
[`../hardening/`](../hardening/README.md).
## Module Categories
### 1. **Base Modules** (`base/`)
Common configuration shared between NixOS and macOS:
- System fonts and localization
- Essential packages and tools
- Basic security settings
- User management
- Package overlays
### 2. **macOS Modules** (`darwin/`)
macOS-specific configuration:
- macOS applications and system settings
- Security configurations tailored for macOS
- SSH and system-level settings
- Package compatibility fixes
### 3. **NixOS Modules** (`nixos/`)
Platform-specific NixOS configuration:
- **Base**: Core system settings and services
- **Desktop**: Desktop environment and GUI applications
- **Server**: Server-specific optimizations and services
## Usage
There is no automatic platform detection. Each host's entry under `outputs/<system>/src/` lists its
imports explicitly:
- **NixOS Systems**: import `nixos/` modules
- **macOS Systems**: import `darwin/` modules
- **Both**: import `base/` modules for shared configuration