Overview
Docker deployment provides the most complete Routa experience with:- Full agent support (persistent processes for ACP agents)
- Choice of database (SQLite or PostgreSQL)
- Isolated environment (no dependency conflicts)
- Easy scaling (compose profiles for different configurations)
Quick Start
SQLite (Default)
No external database required - perfect for single-user deployments.http://localhost:3000
Health check: http://localhost:3000/api/health
PostgreSQL (Recommended for Production)
Use the bundled PostgreSQL container for multi-user deployments.Docker Compose Configuration
The project includes a production-readydocker-compose.yml:
docker-compose.yml
Dockerfile Explanation
The multi-stage Dockerfile optimizes image size and build time:Dockerfile
- Uses
standaloneoutput mode (includes only necessary files) - Alpine Linux base (smaller image size)
- Non-root user for security
- Persistent data volume at
/app/data
Environment Configuration
SQLite Configuration
.env
PostgreSQL Configuration
.env
External PostgreSQL
To use an external PostgreSQL database (e.g., Neon, Supabase):.env
Docker Compose Profiles
Default Profile (SQLite)
Postgres Profile
Custom Profiles
Add custom services todocker-compose.yml:
docker-compose.yml
Volume Management
Backup SQLite Database
Restore SQLite Database
Backup PostgreSQL
Inspect Volumes
Production Deployment
Using Docker Compose in Production
Environment-specific Compose Files
Createdocker-compose.prod.yml:
docker-compose.prod.yml
Reverse Proxy with Nginx
nginx.conf
docker-compose.yml:
Monitoring and Logs
View Logs
Health Checks
Resource Usage
Troubleshooting
Container exits immediately
Container exits immediately
Check logs for errors:Common issues:
- Missing environment variables
- Database connection failure
- Port already in use
Database connection errors
Database connection errors
SQLite:
- Ensure volume is mounted:
-v routa_data:/app/data - Check file permissions:
ls -lainside container
- Wait for postgres health check:
docker compose ps - Verify
DATABASE_URLmatches postgres service name - Check postgres logs:
docker compose logs postgres
Port conflicts
Port conflicts
Change ports in
docker-compose.yml:Build failures
Build failures
Clear Docker build cache:
Volume permission errors
Volume permission errors
Fix volume ownership:
Advanced Configuration
Custom Build Args
Modifydocker-compose.yml:
Multi-Platform Builds
Development with Hot Reload
Createdocker-compose.dev.yml:
docker-compose.dev.yml
Next Steps
Custom Specialists
Define custom agent roles
Custom MCP Servers
Integrate external MCP tools
Workflows
Automate multi-step processes
GitHub Integration
Import GitHub repositories