# Provisioning Platform Installer\n\nInteractive Ratatui-based installer for the Provisioning Platform with Nushell fallback for automation.\n\n> **Source**: `provisioning/platform/installer/`\n> **Status**: COMPLETE - All 7 UI screens implemented (1,480 lines)\n\n## Features\n\n- **Rich Interactive TUI**: Beautiful Ratatui interface with real-time feedback\n- **Headless Mode**: Automation-friendly with Nushell scripts\n- **One-Click Deploy**: Single command to deploy entire platform\n- **Platform Agnostic**: Supports Docker, Podman, Kubernetes, OrbStack\n- **Live Progress**: Real-time deployment progress and logs\n- **Health Checks**: Automatic service health verification\n\n## Installation\n\n```\ncd provisioning/platform/installer\ncargo build --release\ncargo install --path .\n```\n\n## Usage\n\n### Interactive TUI (Default)\n\n```\nprovisioning-installer\n```\n\nThe TUI guides you through:\n\n1. Platform detection (Docker, Podman, K8s, OrbStack)\n2. Deployment mode selection (Solo, Multi-User, CI/CD, Enterprise)\n3. Service selection (check/uncheck services)\n4. Configuration (domain, ports, secrets)\n5. Live deployment with progress tracking\n6. Success screen with access URLs\n\n### Headless Mode (Automation)\n\n```\n# Quick deploy with auto-detection\nprovisioning-installer --headless --mode solo --yes\n\n# Fully specified\nprovisioning-installer \\n  --headless \\n  --platform orbstack \\n  --mode solo \\n  --services orchestrator,control-center,coredns \\n  --domain localhost \\n  --yes\n\n# Use existing config file\nprovisioning-installer --headless --config my-deployment.toml --yes\n```\n\n### Configuration Generation\n\n```\n# Generate config without deploying\nprovisioning-installer --config-only\n\n# Deploy later with generated config\nprovisioning-installer --headless --config ~/.provisioning/installer-config.toml --yes\n```\n\n## Deployment Platforms\n\n### Docker Compose\n\n```\nprovisioning-installer --platform docker --mode solo\n```\n\n**Requirements**: Docker 20.10+, docker-compose 2.0+\n\n### OrbStack (macOS)\n\n```\nprovisioning-installer --platform orbstack --mode solo\n```\n\n**Requirements**: OrbStack installed, 4 GB RAM, 2 CPU cores\n\n### Podman (Rootless)\n\n```\nprovisioning-installer --platform podman --mode solo\n```\n\n**Requirements**: Podman 4.0+, systemd\n\n### Kubernetes\n\n```\nprovisioning-installer --platform kubernetes --mode enterprise\n```\n\n**Requirements**: kubectl configured, Helm 3.0+\n\n## Deployment Modes\n\n### Solo Mode (Development)\n\n- **Services**: 5 core services\n- **Resources**: 2 CPU cores, 4 GB RAM, 20 GB disk\n- **Use case**: Single developer, local testing\n\n### Multi-User Mode (Team)\n\n- **Services**: 7 services\n- **Resources**: 4 CPU cores, 8 GB RAM, 50 GB disk\n- **Use case**: Team collaboration, shared infrastructure\n\n### CI/CD Mode (Automation)\n\n- **Services**: 8-10 services\n- **Resources**: 8 CPU cores, 16 GB RAM, 100 GB disk\n- **Use case**: Automated pipelines, webhooks\n\n### Enterprise Mode (Production)\n\n- **Services**: 15+ services\n- **Resources**: 16 CPU cores, 32 GB RAM, 500 GB disk\n- **Use case**: Production deployments, full observability\n\n## CLI Options\n\n```\nprovisioning-installer [OPTIONS]\n\nOPTIONS:\n  --headless              Run in headless mode (no TUI)\n  --mode <MODE>           Deployment mode [solo|multi-user|cicd|enterprise]\n  --platform <PLATFORM>   Target platform [docker|podman|kubernetes|orbstack]\n  --services <SERVICES>   Comma-separated list of services\n  --domain <DOMAIN>       Domain/hostname (default: localhost)\n  --yes, -y               Skip confirmation prompts\n  --config-only           Generate config without deploying\n  --config <FILE>         Use existing config file\n  -h, --help              Print help\n  -V, --version           Print version\n```\n\n## CI/CD Integration\n\n### GitLab CI\n\n```\ndeploy_platform:\n  stage: deploy\n  script:\n    - provisioning-installer --headless --mode cicd --platform kubernetes --yes\n  only:\n    - main\n```\n\n### GitHub Actions\n\n```\n- name: Deploy Provisioning Platform\n  run: |\n    provisioning-installer --headless --mode cicd --platform docker --yes\n```\n\n## Nushell Scripts (Fallback)\n\nIf the Rust binary is unavailable:\n\n```\ncd provisioning/platform/installer/scripts\nnu deploy.nu --mode solo --platform orbstack --yes\n```\n\n## Related Documentation\n\n- **Deployment Guide**: [Platform Deployment](../guides/from-scratch.md)\n- **Architecture**: [Platform Overview](../architecture/ARCHITECTURE_OVERVIEW.md)
