2025-10-07 10:59:52 +01:00

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:

CI/CD Pipeline

nu -c "use mod.nu *; deploy-headless docker cicd --auto-confirm"

Services: + API Server, OCI Registry Access:

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

  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

# 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"