Heroku Deployment
Deploy Chatwoot to Heroku’s platform for a fully managed deployment experience. Heroku handles infrastructure, scaling, and maintenance, letting you focus on using Chatwoot.Prerequisites
- Heroku account (free tier available)
- Credit card on file (required even for free tier)
- Heroku CLI (optional, for command-line deployment)
One-Click Deployment
The fastest way to deploy Chatwoot on Heroku:1. Click Deploy Button
Visit the Chatwoot repository and click the “Deploy to Heroku” button, or use this link:2. Configure Your App
Fill in the required information:- App name: Choose a unique name (e.g.,
my-company-chatwoot) - Region: Choose a region close to your users (US or Europe)
- SECRET_KEY_BASE: Generate using
openssl rand -hex 64or leave blank for auto-generation
3. Choose Add-ons
The deployment automatically provisions:- Heroku Postgres: Database (Hobby Dev - Free)
- Heroku Redis: Cache and job queue (Hobby Dev - Free)
4. Deploy
Click “Deploy app” and wait for the deployment to complete (5-10 minutes).5. Access Your Instance
Once deployed, click “View app” to access your Chatwoot instance at:Manual Deployment via Heroku CLI
For more control over the deployment process:1. Install Heroku CLI
2. Login to Heroku
3. Clone Chatwoot Repository
4. Create Heroku App
5. Provision Add-ons
6. Configure Environment Variables
7. Deploy to Heroku
8. Run Database Migrations
9. Open Your App
Procfile Configuration
Chatwoot’sProcfile defines the process types:
Process Types
- release: Runs automatically before deployment (migrations)
- web: Rails web server
- worker: Sidekiq background worker
Scaling Your Heroku App
View Current Dynos
Scale Dynos
Recommended Dyno Configuration
Free/Hobby (Testing/Small Teams):Environment Configuration
Set Environment Variables
View Configuration
Custom Domain Setup
1. Add Domain to Heroku
2. Configure DNS
Add a CNAME record in your DNS provider:3. Enable SSL
Heroku automatically provides SSL certificates:4. Update Frontend URL
Database Management
Access Database
Create Backup
Download Backup
Restore Database
Redis Management
View Redis Info
Access Redis CLI
Monitor Redis
File Storage Configuration
Heroku has an ephemeral filesystem. Use S3 for file uploads:1. Create S3 Bucket
Create a bucket in AWS S3 or use a compatible service (DigitalOcean Spaces, Wasabi, etc.).2. Configure Storage
Monitoring & Logging
View Logs
Add Logging Add-on
Performance Monitoring
Maintenance Commands
Access Rails Console
Run Rake Tasks
Restart Application
Upgrading Chatwoot
1. Pull Latest Changes
2. Deploy Update
release process.
3. Verify Deployment
Cost Optimization
Free Tier Setup
Production Setup Cost Estimate
- Standard-1X Dynos: 2 web + 2 worker = $100/month
- Postgres Essential-0: $5/month
- Redis Premium-0: $15/month
- Total: ~$120/month
Troubleshooting
Application Error (H10)
Check if web dyno is running:Database Connection Issues
Verify database is provisioned:Redis Connection Issues
For Redis Premium, enable SSL:Slow Performance
Upgrade dyno types:Timeout Errors (H12)
Increase timeout for long-running requests:Limitations
- Ephemeral Filesystem: Use S3 for file storage
- 30-second Request Timeout: Long-polling may be affected
- Dyno Sleep: Free/hobby dynos sleep after 30 minutes of inactivity
- Daily Restart: Dynos restart every 24 hours
- Build Time: Limited to 15 minutes

