How ooks-io/ooknet works
This is a personal Nix flake monorepo for declaratively configuring a multi-platform host fleet and its user environments, services, and related tools. The documented main workflow is host declarations mapped by builders into system configurations, which import per-host settings and reusable role/profile modules. The README also identifies packages, development environments, a website, and project templates as product capabilities. Some subsystem links are documented rather than verified in sampled source; uncertain wiring is omitted.
Main entry points: hosts Per-host settings · builder Configuration builder · home-manager Home-Manager outputs · server Server role
Components 22
Fleet assembly
- Host declarations
outputs/ook - Configuration builder
outputs/builder - Host outputs
outputs/hosts - Per-host settings
hosts - Built configurations
outputs/builder
System roles
- NixOS base
modules/nixos/base - Hardware profiles
modules/nixos/hardware - Workstation role
modules/nixos/workstation - Server role
modules/nixos/server - Installer images
modules/nixos/image - macOS role
modules/darwin
User environments
- Shared home modules
modules/home/common - Console profiles
modules/home/console - Desktop profiles
modules/home/nixos - Home-Manager outputs
outputs/modules/home-manager
Server services
- Service collection
modules/nixos/server/services - Web serving
modules/nixos/server/webserver
Project capabilities
- Custom packages
outputs/pkgs - Development environments
outputs/devshells - Personal website
outputs/pkgs/website - Project templates
outputs/templates
Other components
- Fleet maintainer
Connections 21
- Fleet maintainer → Host declarations: declares hosts
- Host declarations → Configuration builder: configures builds
- Configuration builder → Host outputs: builds outputs
- Configuration builder → Per-host settings: imports host
- Configuration builder → Built configurations: produces systems
- Per-host settings → NixOS base: selects modules
- Per-host settings → Hardware profiles: selects hardware
- Per-host settings → Workstation role: selects role
- Per-host settings → Server role: selects role
- Per-host settings → Installer images: selects image
- Per-host settings → macOS role: selects platform
- Workstation role → Home-Manager outputs: uses profiles
- Home-Manager outputs → Shared home modules: configures home
- Home-Manager outputs → Console profiles: configures home
- Home-Manager outputs → Desktop profiles: configures home
- Server role → Service collection: enables services
- Server role → Web serving: configures web
- Fleet maintainer → Custom packages: uses packages
- Fleet maintainer → Development environments: uses environments
- Service collection → Personal website: hosts website
- Fleet maintainer → Project templates: bootstraps projects