243 lines
4.8 KiB
Markdown
243 lines
4.8 KiB
Markdown
|
|
# VAPORA Provisioning Quick Start
|
||
|
|
|
||
|
|
Get VAPORA running in 5 minutes.
|
||
|
|
|
||
|
|
## Choose Your Path
|
||
|
|
|
||
|
|
### 🚀 Fastest: Copy & Deploy (2 minutes)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd provisioning
|
||
|
|
|
||
|
|
# Pick your mode
|
||
|
|
cp config/examples/vapora.solo.example.toml config/runtime/vapora.toml
|
||
|
|
|
||
|
|
# Done! Deploy with docker-compose
|
||
|
|
docker compose up -d
|
||
|
|
```
|
||
|
|
|
||
|
|
### 📋 Customizable: Interactive Wizard (3 minutes)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd provisioning
|
||
|
|
|
||
|
|
# Answer 50+ questions
|
||
|
|
typedialog --form .typedialog/vapora/forms/vapora-main-form.toml \
|
||
|
|
--output config/runtime/vapora.toml
|
||
|
|
|
||
|
|
# Deploy
|
||
|
|
docker compose up -d
|
||
|
|
```
|
||
|
|
|
||
|
|
### 🔧 Advanced: Nickel Composition (5 minutes)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd provisioning
|
||
|
|
|
||
|
|
# Create custom config
|
||
|
|
cat > config/runtime/custom.ncl << 'EOF'
|
||
|
|
let defaults = import "../../schemas/vapora/main.ncl" in
|
||
|
|
let mode = import "../../schemas/platform/defaults/deployment/multiuser.ncl" in
|
||
|
|
|
||
|
|
std.record.merge defaults {
|
||
|
|
backend.port = 9001,
|
||
|
|
llm_router.providers.ollama_enabled = true,
|
||
|
|
}
|
||
|
|
EOF
|
||
|
|
|
||
|
|
# Export to JSON
|
||
|
|
nickel export config/runtime/custom.ncl > config/runtime/vapora.json
|
||
|
|
|
||
|
|
# Deploy with config
|
||
|
|
docker compose up -d
|
||
|
|
```
|
||
|
|
|
||
|
|
## Configuration Files
|
||
|
|
|
||
|
|
Your configuration goes in **`config/runtime/vapora.toml`** after generation or copying.
|
||
|
|
|
||
|
|
| Mode | Description | Best For |
|
||
|
|
|------|-------------|----------|
|
||
|
|
| **solo** | Local dev | Development, testing |
|
||
|
|
| **multiuser** | Shared backend | Team of 5-20 developers |
|
||
|
|
| **enterprise** | HA production | Organizations, production |
|
||
|
|
|
||
|
|
## What Gets Generated
|
||
|
|
|
||
|
|
```plaintext
|
||
|
|
provisioning/
|
||
|
|
├── config/
|
||
|
|
│ └── runtime/
|
||
|
|
│ └── vapora.toml ← Your configuration goes here
|
||
|
|
├── schemas/
|
||
|
|
│ └── vapora/*.ncl ← Configuration structure (read-only)
|
||
|
|
└── .typedialog/
|
||
|
|
└── vapora/forms/*.toml ← Interactive forms (read-only)
|
||
|
|
```
|
||
|
|
|
||
|
|
## Verify Configuration
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# TOML syntax check
|
||
|
|
toml-cli validate config/runtime/vapora.toml
|
||
|
|
|
||
|
|
# Nickel type check
|
||
|
|
nickel typecheck config/examples/vapora.solo.example.ncl
|
||
|
|
|
||
|
|
# JSON validation
|
||
|
|
jq . config/runtime/vapora.json
|
||
|
|
```
|
||
|
|
|
||
|
|
## Deploy
|
||
|
|
|
||
|
|
### Docker Compose
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Services read from config/runtime/vapora.toml
|
||
|
|
docker compose up -d
|
||
|
|
|
||
|
|
# Check status
|
||
|
|
docker compose logs -f vapora-backend
|
||
|
|
```
|
||
|
|
|
||
|
|
### Kubernetes
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Create config from file
|
||
|
|
kubectl create configmap vapora-config \
|
||
|
|
--from-file=config/runtime/vapora.toml
|
||
|
|
|
||
|
|
# Deploy (Pod mounts ConfigMap)
|
||
|
|
kubectl apply -f kubernetes/manifests/
|
||
|
|
```
|
||
|
|
|
||
|
|
### Custom Script
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Source configuration
|
||
|
|
source <(grep '^\[' config/runtime/vapora.toml | tr -d '[]')
|
||
|
|
|
||
|
|
# Use in your deployment
|
||
|
|
export VAPORA_CONFIG=$(pwd)/config/runtime/vapora.toml
|
||
|
|
./deploy.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
## Common Customizations
|
||
|
|
|
||
|
|
### Change Port
|
||
|
|
|
||
|
|
```toml
|
||
|
|
[backend]
|
||
|
|
port = 9001
|
||
|
|
```
|
||
|
|
|
||
|
|
### Enable Ollama (Local LLMs)
|
||
|
|
|
||
|
|
```toml
|
||
|
|
[providers]
|
||
|
|
ollama_enabled = true
|
||
|
|
ollama_url = "http://localhost:11434"
|
||
|
|
```
|
||
|
|
|
||
|
|
### Set Budget Limits
|
||
|
|
|
||
|
|
```toml
|
||
|
|
[llm_router.budget_enforcement.role_limits]
|
||
|
|
architect_cents = 1000000 # $10,000/month
|
||
|
|
developer_cents = 500000 # $5,000/month
|
||
|
|
```
|
||
|
|
|
||
|
|
### Enable Observability
|
||
|
|
|
||
|
|
```toml
|
||
|
|
[monitoring]
|
||
|
|
prometheus_enabled = true
|
||
|
|
log_level = "debug"
|
||
|
|
tracing_enabled = true
|
||
|
|
```
|
||
|
|
|
||
|
|
## Troubleshooting
|
||
|
|
|
||
|
|
### "Port already in use"
|
||
|
|
```bash
|
||
|
|
# Change port in config
|
||
|
|
[backend]
|
||
|
|
port = 9001 # Instead of 8001
|
||
|
|
```
|
||
|
|
|
||
|
|
### "Database connection failed"
|
||
|
|
```bash
|
||
|
|
# Check SurrealDB is running
|
||
|
|
curl -i http://localhost:8000
|
||
|
|
|
||
|
|
# Update config with correct URL
|
||
|
|
[database]
|
||
|
|
url = "ws://surrealdb.example.com:8000"
|
||
|
|
```
|
||
|
|
|
||
|
|
### "Configuration not loading"
|
||
|
|
```bash
|
||
|
|
# Ensure file exists
|
||
|
|
ls -l config/runtime/vapora.toml
|
||
|
|
|
||
|
|
# Check syntax
|
||
|
|
toml-cli validate config/runtime/vapora.toml
|
||
|
|
|
||
|
|
# Restart services
|
||
|
|
docker compose restart
|
||
|
|
```
|
||
|
|
|
||
|
|
## Environment Overrides
|
||
|
|
|
||
|
|
All config can be overridden via environment variables:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
export VAPORA_BACKEND_PORT=9001
|
||
|
|
export VAPORA_BACKEND_WORKERS=8
|
||
|
|
export SURREAL_URL=ws://surrealdb:8000
|
||
|
|
export ANTHROPIC_API_KEY=sk-ant-...
|
||
|
|
|
||
|
|
docker compose up -d
|
||
|
|
```
|
||
|
|
|
||
|
|
## Next Steps
|
||
|
|
|
||
|
|
1. **Read Full Docs**: `README.md` (complete reference)
|
||
|
|
2. **Understand Modes**: `config/examples/README.md` (all deployment options)
|
||
|
|
3. **Learn Integration**: `integration.md` (deployment workflows)
|
||
|
|
4. **Check Examples**: `config/examples/vapora.*.example.toml` (reference configs)
|
||
|
|
|
||
|
|
## One-Command Deploy
|
||
|
|
|
||
|
|
### Solo (Development)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd provisioning && \
|
||
|
|
cp config/examples/vapora.solo.example.toml config/runtime/vapora.toml && \
|
||
|
|
docker compose up -d
|
||
|
|
```
|
||
|
|
|
||
|
|
### Multiuser (Team)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd provisioning && \
|
||
|
|
cp config/examples/vapora.multiuser.example.toml config/runtime/vapora.toml && \
|
||
|
|
# Edit config/runtime/vapora.toml with your URLs
|
||
|
|
docker compose up -d
|
||
|
|
```
|
||
|
|
|
||
|
|
### Enterprise (Production)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd provisioning && \
|
||
|
|
cp config/examples/vapora.enterprise.example.toml config/runtime/vapora.toml && \
|
||
|
|
# Edit config/runtime/vapora.toml with your infrastructure details
|
||
|
|
docker compose up -d
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**That's it!** Your VAPORA instance is running.
|
||
|
|
|
||
|
|
**Need help?** Check `README.md` for comprehensive documentation.
|