DigitalOcean Deployment
Deploy Chatwoot on DigitalOcean’s cloud infrastructure with multiple deployment options ranging from one-click apps to fully customized Kubernetes clusters.Deployment Options
Option 1: One-Click Droplet (Recommended)
Fastest way to get Chatwoot running on DigitalOcean.Option 2: Manual Droplet Setup
Full control over Ubuntu Droplet configuration.Option 3: DigitalOcean App Platform
Fully managed platform-as-a-service deployment.Option 4: Kubernetes (DOKS)
Scalable, production-ready Kubernetes deployment.Option 1: One-Click Droplet
1. Create Droplet
- Log in to DigitalOcean
- Click Create → Droplets
- Choose Marketplace tab
- Search for “Chatwoot” and select the image
2. Configure Droplet
- Plan: Basic
- CPU: Regular (2 GB / 1 CPU minimum)
- Region: Choose closest to your users
- Authentication: SSH keys (recommended) or password
- Hostname: chatwoot-production
3. Create & Access
Click Create Droplet and wait for provisioning (1-2 minutes). SSH into your droplet:4. Complete Setup
Follow the on-screen instructions to configure:- Domain name
- SSL certificate
- Admin email
Option 2: Manual Droplet Setup
Complete control with Ubuntu and the Chatwoot installation script.1. Create Ubuntu Droplet
Create a new Droplet:- Image: Ubuntu 22.04 LTS x64
- Plan:
- Basic: $24/month (2 GB RAM, 2 vCPUs, 60 GB SSD)
- Production: $48/month (4 GB RAM, 2 vCPUs, 80 GB SSD)
- Datacenter: Choose your region
- Authentication: Add SSH key
- Hostname: chatwoot-production
2. SSH Into Droplet
3. Update System
4. Install Chatwoot
Use the official installation script:5. Configure Domain (Optional)
When prompted:- Enter your domain:
chat.yourdomain.com - Enter email for SSL certificate
- Confirm DNS is pointed to droplet IP
- Install Nginx
- Configure SSL via Let’s Encrypt
- Set up automatic renewal
6. Access Chatwoot
Once installation completes, access:Option 3: DigitalOcean App Platform
Deploy Chatwoot as a managed application.Prerequisites
- GitHub account
- Fork the Chatwoot repository
1. Fork Repository
2. Create App
- Go to App Platform
- Click Create App
- Choose GitHub as source
- Select your forked
chatwootrepository - Select branch:
master - Autodeploy: Enable
3. Configure Resources
Web Service
- Name: chatwoot-web
- Environment:
- Type:
Web Service - Build Command:
bundle install && pnpm install && rake assets:precompile - Run Command:
bin/rails server -p $PORT -e $RAILS_ENV
- Type:
- Instance Size: Professional (2 GB RAM, 1 vCPU) - $24/month
- Instance Count: 1
Worker Service
- Name: chatwoot-worker
- Environment:
- Type:
Worker - Run Command:
bundle exec sidekiq -C config/sidekiq.yml
- Type:
- Instance Size: Professional (2 GB RAM, 1 vCPU) - $24/month
- Instance Count: 1
4. Add Databases
Click Add Resource → DatabasePostgreSQL
- Engine: PostgreSQL 16
- Plan: Basic - $15/month (1 GB RAM, 10 GB disk)
- Note: Requires manual pgvector extension setup
Redis
- Engine: Redis 7
- Plan: Basic - $15/month (1 GB RAM)
5. Environment Variables
Add required environment variables:6. Configure pgvector
After database is created:7. Deploy
Click Create Resources to start deployment (10-15 minutes).8. Run Migrations
After deployment, access the web service console:9. Configure Custom Domain
- Go to Settings → Domains
- Add domain:
chat.yourdomain.com - Update DNS:
- Update
FRONTEND_URLto match custom domain
DigitalOcean Spaces for Storage
1. Create Space
- Go to Spaces in DigitalOcean
- Click Create Space
- Choose region
- Name:
chatwoot-uploads - Set File Listing: Private
2. Configure CORS
In Space settings, add CORS rule:3. Generate API Keys
- Click API in sidebar
- Spaces Keys → Generate New Key
- Save Access Key and Secret Key
4. Configure Chatwoot
Managed Database Configuration
Create Managed Databases
PostgreSQL
Redis
Configure Chatwoot to Use Managed Databases
On your Droplet, edit/home/chatwoot/chatwoot/.env:
Monitoring & Backups
Enable Droplet Monitoring
- Go to Droplet page
- Click Monitoring tab
- View CPU, memory, disk, and bandwidth usage
Set Up Alerts
- Click Create Alert Policy
- Configure thresholds:
- CPU usage > 80%
- Memory usage > 90%
- Disk usage > 80%
Database Backups
Managed databases have automatic backups:Droplet Snapshots
Create manual snapshots:- Power off Droplet (recommended)
- Click Snapshots tab
- Click Take Snapshot
- Wait for completion
- Go to Images → Snapshots
- Click More → Create Droplet
Scaling on DigitalOcean
Vertical Scaling (Resize Droplet)
- Power off Droplet
- Click Resize
- Choose new plan
- Click Resize Droplet
- Power on after resize
Horizontal Scaling (Load Balancer)
1. Create Load Balancer
2. Create Web-Only Droplets
Create multiple droplets using web-only deployment:3. Add Droplets to Load Balancer
4. Create Worker Droplet
Cost Estimation
Small Deployment (10-50 users)
- Droplet (Basic): $24/month
- Total: $24/month
Medium Deployment (50-200 users)
- Droplet (4 GB): $48/month
- Managed PostgreSQL: $15/month
- Managed Redis: $15/month
- Spaces: $5/month
- Total: $83/month
Large Deployment (200+ users)
- Load Balancer: $12/month
- Droplets (2×4GB web): $96/month
- Droplet (4GB worker): $48/month
- Managed PostgreSQL: $60/month
- Managed Redis: $15/month
- Spaces: $5/month
- Total: $236/month

