# VAPORA Configuration Examples Reference configurations for all deployment modes. ## Files Overview ### TOML Format (Direct Usage) Copy and customize for your environment: - **`vapora.solo.example.toml`** - Development mode (local, single-user) - **`vapora.multiuser.example.toml`** - Team mode (shared infrastructure, cost-tracking) - **`vapora.enterprise.example.toml`** - Production mode (HA, multi-provider, enterprise features) **How to use:** ```bash cp vapora.solo.example.toml ../runtime/vapora.toml # Edit ../runtime/vapora.toml as needed ``` ### Nickel Format (Generated Configs) Use Nickel for composable, mergeable configurations: - **`vapora.solo.example.ncl`** - Solo mode with composition - **`vapora.multiuser.example.ncl`** - Multiuser mode with customization examples - **`vapora.enterprise.example.ncl`** - Enterprise mode with tuning options **How to use:** ```bash # Export to JSON nickel export vapora.solo.example.ncl > ../runtime/vapora.json # Or convert to TOML (via jq + toml converters) nickel export vapora.multiuser.example.ncl | jq . > ../runtime/vapora.json ``` ## Quick Selection Guide ### I'm developing locally → Use `vapora.solo.example.toml` - All services on localhost - File-based database - No authentication complexity - Perfect for testing ### We're a small team → Use `vapora.multiuser.example.toml` - Shared backend infrastructure - Cost tracking per developer role - MFA and audit logging - Team collaboration ready ### We need production deployment → Use `vapora.enterprise.example.toml` - High availability setup - All LLM providers enabled - Aggressive cost optimization - Enterprise security features ## Common Customizations ### Change Backend Port **TOML:** ```toml [backend] port = 9001 ``` **Nickel:** ```nickel { backend.port = 9001, } ``` ### Enable Ollama for Local LLMs **TOML:** ```toml [providers] ollama_enabled = true ollama_url = "http://localhost:11434" ``` **Nickel:** ```nickel { providers.ollama_enabled = true, } ``` ### Adjust Agent Learning Window **TOML:** ```toml [agents.learning] recency_window_days = 14 recency_multiplier = 3.5 ``` **Nickel:** ```nickel { agents.learning = { recency_window_days = 14, recency_multiplier = 3.5, }, } ``` ### Set Role-Based Budgets **TOML:** ```toml [llm_router.budget_enforcement.role_limits] architect_cents = 750000 # $7500/month developer_cents = 500000 # $5000/month ``` **Nickel:** ```nickel { llm_router.budget_enforcement.role_limits = { architect_cents = 750000, developer_cents = 500000, }, } ``` ## Environment Variables Override All settings can be overridden via environment variables: ```bash # Backend settings export VAPORA_BACKEND_PORT=9001 export VAPORA_BACKEND_WORKERS=8 # Database export SURREAL_URL=ws://surrealdb.example.com:8000 # LLM Providers export ANTHROPIC_API_KEY=sk-ant-xxx export OPENAI_API_KEY=sk-xxx export GOOGLE_API_KEY=xxx export OLLAMA_URL=http://localhost:11434 ``` ## Deployment Checklist ### Before Using Solo Mode - [ ] Single developer machine - [ ] Local development only - [ ] No sensitive data ### Before Using Multiuser Mode - [ ] SurrealDB instance ready - [ ] NATS cluster running - [ ] Network connectivity tested - [ ] TLS certificates available ### Before Using Enterprise Mode - [ ] Kubernetes cluster (or equivalent) ready - [ ] SurrealDB cluster configured - [ ] NATS JetStream cluster running - [ ] All TLS certificates prepared - [ ] LLM provider accounts configured - [ ] Backup strategy in place - [ ] Monitoring/observability stack ready ## Validation ### TOML Files ```bash # Syntax check toml-cli validate vapora.solo.example.toml # Or via Rust cargo build -p vapora-backend --features toml-validate ``` ### Nickel Files ```bash # Type check nickel typecheck vapora.solo.example.ncl # Export and validate nickel export vapora.solo.example.ncl | jq . ``` ## Performance Notes - **Solo mode**: 2-10 concurrent tasks (development) - **Multiuser mode**: 50-100 concurrent tasks (team of 10-20) - **Enterprise mode**: 500+ concurrent tasks (organization scale) Adjust `max_instances` in agents config based on actual needs: ```toml [agents] max_instances = 50 # For multiuser team max_instances = 100 # For enterprise ``` ## Cost Estimation ### Typical Monthly Costs (Multiuser Mode) With default role budgets: - **Architect tasks**: $5000/month - **Developer tasks**: $3000/month - **Review tasks**: $2000/month - **Testing**: $1000/month - **Total budget**: $11,000/month Adjust `role_limits` in `llm_router.budget_enforcement` as needed. ### Cost Optimization Tips 1. **Use Ollama** for development (free, local) 2. **Set realistic budgets** per role 3. **Enable cost tracking** for visibility 4. **Use cheaper providers** for testing (set in fallback_chain) 5. **Monitor usage** via Prometheus metrics ## Troubleshooting ### "Connection refused" on localhost:8001 - Ensure backend config uses `127.0.0.1` for solo mode - Check no other process is using port 8001 - Verify `[backend]` host and port settings ### "Database connection timeout" - For solo: File path must be writable - For multiuser: Verify SurrealDB is running and accessible - Check `[database]` URL and credentials ### "Budget exceeded" warnings - Review `role_limits` in `[llm_router.budget_enforcement]` - Increase budgets for busy months - Check `auto_fallback` is enabled ## Next Steps 1. **Select a mode** based on your needs 2. **Copy example to `../runtime/`** 3. **Customize for your environment** 4. **Validate configuration** 5. **Deploy using docker-compose or Kubernetes** For detailed instructions, see `../README.md`. --- **Last Updated**: January 12, 2026