95 lines
2.2 KiB
Markdown
95 lines
2.2 KiB
Markdown
|
|
# Deployment Mode Defaults
|
||
|
|
|
||
|
|
Mode-specific default configurations.
|
||
|
|
|
||
|
|
## Deployment Modes
|
||
|
|
|
||
|
|
### Solo (`solo.ncl`)
|
||
|
|
|
||
|
|
Development and testing mode:
|
||
|
|
- Host: `127.0.0.1` (localhost only)
|
||
|
|
- Backend port: `8080`
|
||
|
|
- Agents port: `8002`
|
||
|
|
- Router port: `8003`
|
||
|
|
- Workers: `2`
|
||
|
|
- Database: File-based
|
||
|
|
- NATS: Disabled
|
||
|
|
- Cost tracking: Disabled
|
||
|
|
- Security: JWT only (no TLS, no MFA)
|
||
|
|
|
||
|
|
Best for: Feature development, testing, PoCs
|
||
|
|
|
||
|
|
### Multiuser (`multiuser.ncl`)
|
||
|
|
|
||
|
|
Team collaboration mode:
|
||
|
|
- Host: `0.0.0.0` (network accessible)
|
||
|
|
- Backend port: `8001`
|
||
|
|
- Agents port: `8002`
|
||
|
|
- Router port: `8003`
|
||
|
|
- Workers: `4`
|
||
|
|
- Database: Remote SurrealDB
|
||
|
|
- NATS: Enabled
|
||
|
|
- Cost tracking: Enabled (per-role budgets)
|
||
|
|
- Security: TLS + MFA + audit logging
|
||
|
|
- Knowledge graph retention: `30 days`
|
||
|
|
|
||
|
|
Best for: Team development, staging, internal deployments
|
||
|
|
|
||
|
|
### Enterprise (`enterprise.ncl`)
|
||
|
|
|
||
|
|
Production high-availability mode:
|
||
|
|
- Host: `0.0.0.0` (network accessible)
|
||
|
|
- Backend: `8` workers, `2000` max connections
|
||
|
|
- Agents: `50` max instances, `60s` heartbeat
|
||
|
|
- Router: All providers enabled, aggressive cost optimization
|
||
|
|
- Database: SurrealDB cluster, `100` pool size
|
||
|
|
- NATS: JetStream cluster enabled
|
||
|
|
- Cost tracking: Detailed, per-provider and per-role
|
||
|
|
- Security: TLS enforced, MFA required, full audit
|
||
|
|
- Observability: Prometheus, OpenTelemetry, tracing
|
||
|
|
- Knowledge graph retention: `90 days`
|
||
|
|
- Backup: Every `6 hours`
|
||
|
|
|
||
|
|
Best for: Production deployments, large organizations, HA requirements
|
||
|
|
|
||
|
|
## Composition
|
||
|
|
|
||
|
|
Deployment modes override common defaults:
|
||
|
|
|
||
|
|
```
|
||
|
|
Common Defaults
|
||
|
|
↓
|
||
|
|
Deployment Mode (override)
|
||
|
|
↓
|
||
|
|
User Customizations (override)
|
||
|
|
↓
|
||
|
|
Final Config
|
||
|
|
```
|
||
|
|
|
||
|
|
Example:
|
||
|
|
|
||
|
|
```nickel
|
||
|
|
let common = import "../common/server-defaults.ncl" in
|
||
|
|
let solo_mode = import "solo.ncl" in
|
||
|
|
|
||
|
|
# Merge: common is overridden by solo_mode
|
||
|
|
std.record.merge common solo_mode
|
||
|
|
```
|
||
|
|
|
||
|
|
## Sizing Guide
|
||
|
|
|
||
|
|
| Metric | Solo | Multiuser | Enterprise |
|
||
|
|
|--------|------|-----------|------------|
|
||
|
|
| **CPU** | 2 cores | 4-8 cores | 16+ cores |
|
||
|
|
| **Memory** | 2 GB | 8-16 GB | 32GB+ |
|
||
|
|
| **Users** | 1 | 5-20 | 100+ |
|
||
|
|
| **Agents** | 3 | 10 | 50+ |
|
||
|
|
| **Database** | File | SurrealDB | Cluster |
|
||
|
|
| **NATS** | None | JetStream | Cluster |
|
||
|
|
|
||
|
|
## References
|
||
|
|
|
||
|
|
- Parent: `../README.md`
|
||
|
|
- Common defaults: `../common/README.md`
|
||
|
|
- Platform README: `../../README.md`
|