Docker Compose files
Joystick IoT platform provides three Docker Compose configurations for different deployment scenarios:docker-compose.yml- Production deployment with Traefik reverse proxydocker-compose.linux.yml- Linux-optimized deployment with host networkingdocker-compose.dev.yml- Development environment with exposed ports and mounted volumes
Production deployment
Architecture
The production deployment uses Traefik as a reverse proxy to route requests to different services:Service routing
Services are exposed through Traefik using labels:| Service | URL Path | Internal Port |
|---|---|---|
| App | / | 80 |
| Joystick API | /joystick | 8000 |
| Panel | /panel | 4000 |
| Baker | /baker | 3000 |
| Switcher | /switcher | 8080 |
| Whisper | /whisper | 8081 |
| Studio | /studio | 8001 |
Starting services
Stopping services
Viewing logs
Linux deployment
When to use
Usedocker-compose.linux.yml when:
- Deploying on Linux servers
- You need maximum network performance
- You want to avoid Docker network overhead
Host networking
All services usenetwork_mode: host, which means:
- Services bind directly to host ports
- No Docker network bridge overhead
- Better performance for video streaming
- Services use host IP addresses
Starting services
Service configuration example
Development deployment
When to use
Usedocker-compose.dev.yml when:
- Developing locally
- You need to modify PocketBase hooks or migrations
- You want direct access to services without a reverse proxy
Exposed ports
Mounted volumes
Development mode mounts local directories for live code changes:Starting services
Service management
Restart a service
Rebuild and restart
View service status
Execute commands in a container
View resource usage
Common Docker Compose patterns
Health checks
PocketBase includes a health check to ensure itβs ready before dependent services start:Restart policies
All services userestart: unless-stopped: