75 lines
1.6 KiB
Markdown
75 lines
1.6 KiB
Markdown
|
|
# Docker Compose Templates
|
||
|
|
|
||
|
|
Jinja2 templates for generating Docker Compose configurations.
|
||
|
|
|
||
|
|
## Templates
|
||
|
|
|
||
|
|
### `docker-compose.yaml.j2`
|
||
|
|
|
||
|
|
Generate complete docker-compose.yml from Nickel configuration.
|
||
|
|
|
||
|
|
Includes:
|
||
|
|
- Service definitions (backend, agents, router, frontend)
|
||
|
|
- Database service (SurrealDB)
|
||
|
|
- Optional services (NATS, Prometheus)
|
||
|
|
- Volume definitions
|
||
|
|
- Network configuration
|
||
|
|
- Environment variables from config
|
||
|
|
- Port mappings
|
||
|
|
- Health checks
|
||
|
|
|
||
|
|
Usage:
|
||
|
|
```bash
|
||
|
|
nickel export vapora.multiuser.ncl | \
|
||
|
|
jinja2 templates/docker-compose/docker-compose.yaml.j2 > docker-compose.yml
|
||
|
|
```
|
||
|
|
|
||
|
|
Then deploy:
|
||
|
|
```bash
|
||
|
|
docker compose up -d
|
||
|
|
```
|
||
|
|
|
||
|
|
## Configuration
|
||
|
|
|
||
|
|
Template parameters from Nickel config:
|
||
|
|
|
||
|
|
- **Services**: Backend, Agents, Router, Frontend, Database
|
||
|
|
- **Ports**: From configuration (8001, 8002, 8003, 3000, 8000)
|
||
|
|
- **Volumes**: Database, storage, logs
|
||
|
|
- **Environment**: Database credentials, API keys, logging
|
||
|
|
- **Networks**: Shared network for inter-service communication
|
||
|
|
|
||
|
|
## Workflow
|
||
|
|
|
||
|
|
```
|
||
|
|
Nickel Config (vapora.multiuser.ncl)
|
||
|
|
↓
|
||
|
|
Export to JSON
|
||
|
|
↓
|
||
|
|
Render docker-compose Template
|
||
|
|
↓
|
||
|
|
docker-compose.yml
|
||
|
|
↓
|
||
|
|
docker compose up -d
|
||
|
|
↓
|
||
|
|
Running VAPORA Stack
|
||
|
|
```
|
||
|
|
|
||
|
|
## Service Configuration
|
||
|
|
|
||
|
|
Template generates services for:
|
||
|
|
|
||
|
|
1. **SurrealDB** - Database
|
||
|
|
2. **NATS** (optional) - Message broker
|
||
|
|
3. **Backend** - REST API
|
||
|
|
4. **Agents** - Orchestration
|
||
|
|
5. **LLM Router** - Multi-provider routing
|
||
|
|
6. **Frontend** - Web UI
|
||
|
|
7. **Prometheus** (optional) - Metrics
|
||
|
|
|
||
|
|
## References
|
||
|
|
|
||
|
|
- Parent: `../README.md`
|
||
|
|
- Docker Compose docs: https://docs.docker.com/compose/
|
||
|
|
- SurrealDB Docker: https://hub.docker.com/r/surrealdb/surrealdb
|