Docker Services
Vidra ships a Docker Compose configuration that covers every service you need for local development. Core services (API, database, cache, proxy) always start together. Optional services are activated via Docker Compose profiles and only need to run when you're working on a specific feature.
Using Docker Compose profiles
Start only what you need to keep resource usage low:
# Core services only (most development)
docker compose up
# Add IPFS support
docker compose --profile ipfs up
# Add email capture
docker compose --profile mail up
# Add virus scanning
docker compose --profile clamav up
# Everything
docker compose --profile full up
See the CLI Setup guide for the full profile reference.
Services Overview
The diagram below shows which services are always-on (Core) and which are optional. Arrows indicate direct API dependencies from the Vidra API server.
Core Services
| Service | Port | Purpose |
|---|---|---|
| Vidra API | 8080 | Main Go API server — handles all HTTP requests |
| PostgreSQL | 5432 | Primary relational database for video metadata, users, channels |
| Redis | 6379 | In-memory cache for hot data and background job queue |
| Nginx | 80 / 443 | Reverse proxy — routes traffic to the API, serves static files |
Optional Services
| Service | Port | Purpose | When to enable |
|---|---|---|---|
| IPFS Node | 5001 (API), 8081 (gateway) | Decentralized storage and P2P distribution | Working on IPFS/WebTorrent features |
| Mailpit SMTP | 1025 (SMTP), 8025 (UI) | Email capture — view emails sent during development at :8025 | Working on email notifications |
| ClamAV | 3310 | Virus scanning for uploaded files | Testing upload safety checks |
| Whisper AI | — | Automatic captions generation via Whisper | Working on accessibility/captioning |
| IOTA Node | 14265 | DLT payment node for monetization features | Working on IOTA integration |
Development Network Ports
All services expose ports locally on localhost. The port numbers are chosen to match their default upstream values to minimize configuration surprises.
| Service | Internal Port | External Port | Purpose |
|---|---|---|---|
| Vidra API | 8080 | 8080 | Main API server |
| PostgreSQL | 5432 | 5432 | Database |
| Redis | 6379 | 6379 | Cache |
| Nginx | 80/443 | 80/443 | Reverse proxy |
| IPFS API | 5001 | 5001 | IPFS management |
| IPFS Gateway | 8081 | 8081 | IPFS content serving |
| Mailpit SMTP | 1025 | 1025 | Email capture |
| Mailpit UI | 8025 | 8025 | Email viewer |
| ClamAV | 3310 | 3310 | Virus scanning |
| IOTA | 14265 | 14265 | Payment node |