mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-11-13 12:13:36 +01:00
Move standalone repository docs from the root into docs/ and add a documentation index that links the moved docs and the code-local runbooks. Update Markdown links, source comments, and the root entry points to the new locations. Keep README.md and AGENTS.md at the root as required entry points. Assisted-by: DeepSeek Harness (deepseek-flash)
110 lines
4.5 KiB
Markdown
110 lines
4.5 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
|
|
├── 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
|