Docker issues
Containers won’t start
Symptom: Services fail to start or immediately exit. Solutions:Verify port availability
Ensure required ports are not already in use:If ports are in use, either stop the conflicting service or change ports in docker-compose.yml.
Permission denied errors
Symptom: “Permission denied” errors when accessing Docker socket or volumes. Solutions:Out of disk space
Symptom: “no space left on device” errors. Solutions:Connectivity issues
Services can’t communicate
Symptom: Services cannot reach each other (e.g., “connection refused”). Solutions:Check service names
Ensure environment variables use correct service names:
http://pocketbase:8090(notlocalhost:8090)http://joystick:8000(not127.0.0.1:8000)
Verify health checks
Check if dependent services are healthy:PocketBase should show “healthy” status before other services start.
Cannot access services from browser
Symptom: Services not accessible fromhttp://localhost.
Solutions:
Check Traefik routing
View Traefik dashboard at
http://localhost:8080 to verify:- Routers are configured
- Services are detected
- Backends are healthy
MediaMTX streaming issues
Symptom: Video streams not working or not accessible. Solutions:Authentication issues
API key authentication fails
Symptom: Requests return “401 Unauthorized” or “403 Forbidden”. Solutions:Verify API key
Check that All should return the same value.
JOYSTICK_API_KEY is set correctly in all services:JWT token authentication fails
Symptom: Requests with Bearer token fail. Solutions:Database issues
PocketBase initialization fails
Symptom: PocketBase container exits or health check fails. Solutions:Migration errors
Symptom: Migration failures on PocketBase startup. Solutions:Performance issues
High CPU usage
Symptom: Containers consuming excessive CPU. Solutions:High memory usage
Symptom: Containers consuming excessive memory. Solutions:Slow video streaming
Symptom: Video streams lag or buffer frequently. Solutions:Common error messages
”Connection refused”
Cause: Target service is not running or not accessible. Solution: Check that the service is running and network configuration is correct.”Device not found”
Cause: Device ID doesn’t exist in PocketBase database. Solution: Verify device exists in PocketBase admin panel.”Action not found”
Cause: Action name is incorrect or not configured for the device. Solution: Check available actions for the device in PocketBase.”Authentication required”
Cause: Request missing authentication credentials. Solution: AddX-API-Key header or Bearer token to request.
”Access denied: You don’t have permission to control this device”
Cause: User doesn’t have permission for the device. Solution: Add user ID to device’sallow field in PocketBase.
Getting help
If you’re still experiencing issues:- Check logs: Use Dozzle (
http://localhost:8084) to view all container logs - Review configuration: Verify environment variables and service dependencies
- Test incrementally: Start services one at a time to isolate issues
- Check GitHub issues: Search for similar problems in the repository
- Provide details: When reporting issues, include:
- Docker version:
docker --version - Docker Compose version:
docker-compose --version - Operating system
- Relevant logs
- Steps to reproduce
- Docker version: