# Provisioning Platform Installer - Quick Start Guide Get up and running with the Provisioning Platform in minutes. ## Prerequisites - Nushell >= 0.107.0 - Docker or Podman - 4GB+ RAM, 2+ CPU cores ## Installation ### 1. Build the Installer ```bash cd provisioning/platform/installer cargo build --release ``` ### 2. Verify Installation ```bash cd scripts nu -c "use mod.nu *; check-prerequisites" ``` ## Quick Deployments ### Solo Developer (Fastest) ```bash # Interactive mode (recommended first time) nu -c "use mod.nu *; deploy-interactive" # Or headless with auto-confirm nu -c "use mod.nu *; deploy-headless docker solo --auto-confirm" ``` **Services**: Orchestrator, Control Center, CoreDNS **Access**: http://localhost:8081 ### Team Collaboration ```bash nu -c "use mod.nu *; deploy-headless docker multi-user --auto-confirm" ``` **Services**: + Gitea, PostgreSQL **Access**: - Control Center: http://localhost:8081 - Gitea: http://localhost:3000 ### CI/CD Pipeline ```bash nu -c "use mod.nu *; deploy-headless docker cicd --auto-confirm" ``` **Services**: + API Server, OCI Registry **Access**: - Control Center: http://localhost:8081 - API: http://localhost:8083 ### Enterprise Production ```bash # Generate config first nu -c "use mod.nu *; deploy-headless kubernetes enterprise --domain prod.example.com --config-only" # Review and customize vim configs/deployment_*.toml # Deploy nu -c "use mod.nu *; deploy-unattended file configs/deployment_*.toml --strict" ``` ## Platform Selection ### Docker (Default) ```bash nu -c "use mod.nu *; deploy-headless docker solo" ``` ### Podman (Rootless) ```bash nu -c "use mod.nu *; deploy-headless podman solo" ``` ### Kubernetes (Production) ```bash nu -c "use mod.nu *; deploy-headless kubernetes enterprise --domain k8s.example.com" ``` ### OrbStack (macOS) ```bash nu -c "use mod.nu *; deploy-headless orbstack solo" ``` ## Common Commands ### Check Prerequisites ```bash nu -c "use mod.nu *; check-prerequisites" ``` ### Validate Configuration ```bash nu -c "use mod.nu *; let config = load-config-from-file ./configs/my-config.toml; validate-deployment-config $config --strict " ``` ### Health Check ```bash nu -c "use mod.nu *; let config = load-config-from-file ./configs/deployment_*.toml; check-deployment-health $config " ``` ### Rollback ```bash nu -c "use mod.nu *; let config = load-config-from-file ./configs/deployment_*.toml; rollback-deployment $config " ``` ## Configuration Files ### Create Custom Config ```bash # Copy example cp configs/solo-example.toml my-config.toml # Edit as needed vim my-config.toml # Deploy nu -c "use mod.nu *; deploy-unattended file my-config.toml" ``` ### Minimal TOML Config ```toml platform = "docker" mode = "solo" domain = "localhost" auto_generate_secrets = true [[services]] name = "orchestrator" port = 8080 enabled = true required = true [[services]] name = "control-center" port = 8081 enabled = true required = true ``` ## Troubleshooting ### Check Service Status ```bash # Docker docker-compose ps # Podman podman-compose ps # Kubernetes kubectl get pods -n provisioning-platform ``` ### View Logs ```bash # Docker docker-compose logs -f orchestrator # Kubernetes kubectl logs -n provisioning-platform deployment/orchestrator ``` ### Health Endpoints ```bash curl http://localhost:8080/health # Orchestrator curl http://localhost:8081/health # Control Center ``` ### Clean Restart ```bash # Docker docker-compose down --volumes nu -c "use mod.nu *; deploy-headless docker solo --auto-confirm" # Kubernetes kubectl delete namespace provisioning-platform nu -c "use mod.nu *; deploy-headless kubernetes solo" ``` ## CI/CD Integration ### GitLab CI ```yaml deploy: stage: deploy script: - cd provisioning/platform/installer/scripts - nu -c "use mod.nu *; deploy-unattended file ../config/cicd.toml" ``` ### GitHub Actions ```yaml - name: Deploy Platform run: | cd provisioning/platform/installer/scripts nu -c "use mod.nu *; deploy-unattended file ../config/prod.toml" ``` ### Jenkins ```groovy stage('Deploy') { steps { sh ''' cd provisioning/platform/installer/scripts nu -c "use mod.nu *; deploy-unattended file ../config/prod.toml --webhook-url ${WEBHOOK_URL}" ''' } } ``` ## Next Steps 1. **Access Control Center**: http://localhost:8081 2. **Review Configuration**: Check generated config files in `configs/` 3. **Read Full Docs**: See `README.md` for complete documentation 4. **Customize Services**: Edit service selection in config files 5. **Set Up Monitoring**: Configure webhooks for notifications ## Help & Support ```bash # Show help nu -c "use mod.nu *; deploy help" # Module info nu -c "use mod.nu *; module info" ``` ## Resources - **Full Documentation**: `README.md` - **Example Configs**: `configs/` directory - **Module Reference**: `mod.nu` - **Best Practices**: Follow patterns in scripts --- **Quick Deploy**: `nu -c "use mod.nu *; deploy-interactive"`