feat: Update auto-docs
All checks were successful
CI / Format Check (push) Successful in 2s
CI / Flake Check (push) Successful in 1m39s
CI / Evaluate Key Configurations (nix-builder) (push) Successful in 9s
CI / Evaluate Key Configurations (nix-desktop1) (push) Successful in 7s
CI / Evaluate Key Configurations (nix-laptop1) (push) Successful in 7s
CI / Evaluate Artifacts (installer-iso-nix-laptop1) (push) Successful in 14s
CI / Evaluate Artifacts (lxc-nix-builder) (push) Successful in 9s
CI / Build and Publish Documentation (push) Successful in 6s
All checks were successful
CI / Format Check (push) Successful in 2s
CI / Flake Check (push) Successful in 1m39s
CI / Evaluate Key Configurations (nix-builder) (push) Successful in 9s
CI / Evaluate Key Configurations (nix-desktop1) (push) Successful in 7s
CI / Evaluate Key Configurations (nix-laptop1) (push) Successful in 7s
CI / Evaluate Artifacts (installer-iso-nix-laptop1) (push) Successful in 14s
CI / Evaluate Artifacts (lxc-nix-builder) (push) Successful in 9s
CI / Build and Publish Documentation (push) Successful in 6s
This commit is contained in:
@@ -20,11 +20,61 @@ let
|
||||
in
|
||||
athenixOptions;
|
||||
|
||||
# Generate wiki home page
|
||||
wikiHome = pkgs.writeText "Home.md" ''
|
||||
# Athenix - NixOS Fleet Management
|
||||
|
||||
Athenix is a NixOS configuration system for managing the UGA Innovation Factory's fleet of devices using Nix flakes and a custom configuration framework.
|
||||
|
||||
## Quick Start
|
||||
|
||||
- [Configuration Options](Configuration-Options) - All available `athenix.*` options
|
||||
- [User Guide](User-Configuration) - Setting up user accounts and dotfiles
|
||||
- [Building](Building) - Creating installers and system images
|
||||
- [Development](Development) - Contributing to Athenix
|
||||
|
||||
## Features
|
||||
|
||||
- **Inventory-based fleet management** - Define entire device fleets in a single file
|
||||
- **Multiple hardware types** - Desktops, laptops, Surface tablets, LXC containers, WSL
|
||||
- **Flexible software configurations** - Desktop, headless, kiosk, and builder modes
|
||||
- **External module support** - Load user dotfiles and system configs from Git repos
|
||||
- **Declarative everything** - Reproducible builds with pinned dependencies
|
||||
|
||||
## Software Types
|
||||
|
||||
Enable different system configurations:
|
||||
|
||||
- **desktop** - Full KDE Plasma 6 desktop environment
|
||||
- **headless** - Minimal server/container configuration
|
||||
- **tablet-kiosk** - Touch-optimized kiosk for Surface tablets
|
||||
- **stateless-kiosk** - Diskless PXE boot kiosk
|
||||
- **builders** - CI/CD build server with Gitea Actions runner
|
||||
|
||||
## Hardware Types
|
||||
|
||||
- **nix-desktop** - Desktop workstations
|
||||
- **nix-laptop** - Laptop computers
|
||||
- **nix-surface** - Microsoft Surface Pro tablets
|
||||
- **nix-lxc** - LXC containers (Proxmox)
|
||||
- **nix-wsl** - Windows Subsystem for Linux
|
||||
- **nix-ephemeral** - Stateless systems (PXE boot)
|
||||
|
||||
## Documentation
|
||||
|
||||
Browse the documentation using the sidebar or start with:
|
||||
|
||||
- [README](README) - Repository overview and getting started
|
||||
- [Configuration Options](Configuration-Options) - Complete option reference
|
||||
- [Inventory Guide](Inventory) - Managing the device fleet
|
||||
- [External Modules](External-Modules) - Using external configurations
|
||||
'';
|
||||
|
||||
# Generate markdown documentation from options
|
||||
optionsToMarkdown =
|
||||
options:
|
||||
pkgs.writeText "options.md" ''
|
||||
# Athenix Configuration Options
|
||||
# Configuration Options
|
||||
|
||||
This document describes all available configuration options in the Athenix namespace.
|
||||
|
||||
@@ -77,18 +127,30 @@ in
|
||||
nativeBuildInputs = [ pkgs.jq ];
|
||||
}
|
||||
''
|
||||
mkdir -p $out
|
||||
mkdir -p $out
|
||||
|
||||
# Copy existing documentation
|
||||
${if builtins.pathExists ../README.md then "cp ${../README.md} $out/README.md" else ""}
|
||||
${if builtins.pathExists ../docs then "cp -r ${../docs} $out/guides" else ""}
|
||||
# Generate wiki home page
|
||||
cat > $out/Home.md << 'EOF'
|
||||
${builtins.readFile wikiHome}
|
||||
EOF
|
||||
|
||||
# Generate options reference
|
||||
cat > $out/OPTIONS.md << 'EOF'
|
||||
# Copy main README
|
||||
cp ${../README.md} $out/README.md
|
||||
|
||||
# Copy documentation with wiki-friendly names
|
||||
cp ${../docs/BUILDING.md} $out/Building.md
|
||||
cp ${../docs/DEVELOPMENT.md} $out/Development.md
|
||||
cp ${../docs/EXTERNAL_MODULES.md} $out/External-Modules.md
|
||||
cp ${../docs/INVENTORY.md} $out/Inventory.md
|
||||
cp ${../docs/NAMESPACE.md} $out/Namespace.md
|
||||
cp ${../docs/USER_CONFIGURATION.md} $out/User-Configuration.md
|
||||
|
||||
# Generate options reference
|
||||
cat > $out/Configuration-Options.md << 'EOF'
|
||||
${builtins.readFile (optionsToMarkdown (getAthenixOptions "nix-desktop1"))}
|
||||
EOF
|
||||
EOF
|
||||
|
||||
echo "Documentation generated in $out"
|
||||
echo "Documentation generated in $out"
|
||||
'';
|
||||
|
||||
# Extract just the athenix namespace options as JSON
|
||||
|
||||
Reference in New Issue
Block a user