Deployment
This guide covers deploying CHAD in production environments with security, reliability, and scalability considerations.Deployment Options
Docker Compose (Recommended)
Best for most deployments:- CHAD Backend
- CHAD Frontend
- PostgreSQL database
Kubernetes
For larger deployments, use Helm charts (coming soon) or adapt the Docker Compose.Production Checklist
Security
- Generate unique secrets (JWT, session, encryption keys)
- Enable HTTPS with valid certificates
- Set
APP_URLto your public URL - Configure
ALLOWED_HOSTS - Enable 2FA for admin accounts
- Review default ports
Reliability
- Set up database backups
- Configure health monitoring
- Set up alerting for CHAD health
- Plan for updates and rollbacks
Performance
- Adequate resources for expected load
- OpenSearch cluster sized appropriately
- Database connection pooling configured
Docker Compose Deployment
1. Clone Repository
2. Configure Environment
.env:
3. SSL/TLS Configuration
Option A: Reverse Proxy (Recommended)
Use nginx, Traefik, or cloud load balancer:Option B: Built-in SSL
Mount certificates into containers (advanced).4. Start Services
5. Verify Deployment
Database Configuration
PostgreSQL Settings
For production workloads:External PostgreSQL
Use managed PostgreSQL for better reliability:Backup Strategy
Database Backup
Configuration Backup
Export CHAD configuration regularly:- Go to Settings > Export
- Download configuration
- Store securely
Monitoring
Health Endpoints
Metrics
Monitor:- Container CPU/memory usage
- API response times
- Database connections
- OpenSearch cluster health
Alerting
Set up alerts for:- Health check failures
- High error rates
- Database connection issues
- Disk space warnings
Updates
Standard Update
Rollback
Scaling Considerations
Single Instance
Suitable for:- Small to medium teams (< 50 users)
- Thousands of rules
- Millions of alerts
Horizontal Scaling (Future)
For larger deployments:- Multiple API instances behind load balancer
- Celery + Redis for distributed tasks
- PostgreSQL read replicas
Security Hardening
Network
- Run CHAD on private network
- Expose only via reverse proxy
- Use firewall rules
Containers
- Run as non-root user
- Read-only file systems where possible
- Limited container capabilities
Secrets
- Use secrets management (Vault, AWS Secrets Manager)
- Rotate secrets periodically
- Never log secrets
Updates
- Subscribe to security advisories
- Apply updates promptly
- Test in staging first
Troubleshooting
Container won’t start
Database connection failed
- Check PostgreSQL is running
- Verify credentials
- Check network connectivity
- Review PostgreSQL logs
API errors
- Check backend logs
- Verify OpenSearch connection
- Check database connectivity
- Review recent changes