4.9 KiB
4.9 KiB
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
cd provisioning/platform/installer
cargo build --release
2. Verify Installation
cd scripts
nu -c "use mod.nu *; check-prerequisites"
Quick Deployments
Solo Developer (Fastest)
# 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
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
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
# 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)
nu -c "use mod.nu *; deploy-headless docker solo"
Podman (Rootless)
nu -c "use mod.nu *; deploy-headless podman solo"
Kubernetes (Production)
nu -c "use mod.nu *; deploy-headless kubernetes enterprise --domain k8s.example.com"
OrbStack (macOS)
nu -c "use mod.nu *; deploy-headless orbstack solo"
Common Commands
Check Prerequisites
nu -c "use mod.nu *; check-prerequisites"
Validate Configuration
nu -c "use mod.nu *;
let config = load-config-from-file ./configs/my-config.toml;
validate-deployment-config $config --strict
"
Health Check
nu -c "use mod.nu *;
let config = load-config-from-file ./configs/deployment_*.toml;
check-deployment-health $config
"
Rollback
nu -c "use mod.nu *;
let config = load-config-from-file ./configs/deployment_*.toml;
rollback-deployment $config
"
Configuration Files
Create Custom Config
# 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
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
# Docker
docker-compose ps
# Podman
podman-compose ps
# Kubernetes
kubectl get pods -n provisioning-platform
View Logs
# Docker
docker-compose logs -f orchestrator
# Kubernetes
kubectl logs -n provisioning-platform deployment/orchestrator
Health Endpoints
curl http://localhost:8080/health # Orchestrator
curl http://localhost:8081/health # Control Center
Clean Restart
# 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
deploy:
stage: deploy
script:
- cd provisioning/platform/installer/scripts
- nu -c "use mod.nu *; deploy-unattended file ../config/cicd.toml"
GitHub Actions
- name: Deploy Platform
run: |
cd provisioning/platform/installer/scripts
nu -c "use mod.nu *; deploy-unattended file ../config/prod.toml"
Jenkins
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
- Access Control Center: http://localhost:8081
- Review Configuration: Check generated config files in
configs/ - Read Full Docs: See
README.mdfor complete documentation - Customize Services: Edit service selection in config files
- Set Up Monitoring: Configure webhooks for notifications
Help & Support
# 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"