272 lines
4.9 KiB
Markdown
272 lines
4.9 KiB
Markdown
# 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"`
|