272 lines
4.9 KiB
Markdown
Raw Normal View History

2025-10-07 10:59:52 +01:00
# 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"`