Deployment Modes
Sercha Core is a single container image that supports multiple deployment modes, enabling flexible scaling from simple single-container setups to distributed production clusters.
Available Modes
| Mode | HTTP Server | Worker | Scheduler | Use Case |
|---|---|---|---|---|
all | Yes | Yes | Yes | Development, simple deployments |
api | Yes | No | No | Horizontally scaled API tier |
worker | No | Yes | Yes | Dedicated background processing |
Configuration
Set the mode via the RUN_MODE environment variable:
services:
sercha-api:
image: sercha-core:latest
environment:
RUN_MODE: api
# ... other config
Quick Examples
Combined Mode (Default)
services:
sercha:
image: sercha-core:latest
environment:
DATABASE_URL: postgres://...
REDIS_URL: redis://...
VESPA_URL: http://...
ports:
- "8080:8080"
Split Mode (API + Workers)
services:
sercha-api:
image: sercha-core:latest
environment:
RUN_MODE: api
# ...
deploy:
replicas: 3
sercha-worker:
image: sercha-core:latest
environment:
RUN_MODE: worker
SCHEDULER_ENABLED: "true"
# ...
deploy:
replicas: 2
Detailed Documentation
For comprehensive guides on each mode:
- Run Modes Overview - Mode comparison and architecture
- Configuration Reference - All environment variables
- API Mode - HTTP server details and scaling
- Worker Mode - Task processing, scheduler, distributed locking
- Scaling Patterns - Multi-instance deployment strategies
Next
- Examples - Complete deployment examples