Replace Intercom / Zendesk with Self-Hosted Chatwoot
Omnichannel customer support suite combining live chat widget, email, WhatsApp, Instagram & AI assistant Stop paying Essential/Pro ($74 base + $39/seat + $0.99 per AI resolution) ($464/mo for a 10-person team) and run Chatwoot on a $4.50/mo Linux VPS with full data sovereignty.
1-to-100 Seat Total Cost of Ownership (TCO) Table
Comparing Intercom / Zendesk (Essential/Pro ($74 base + $39/seat + $0.99 per AI resolution)) vs Chatwoot on Hetzner CX22 (4GB RAM / 2 vCPU).
| Team Size | Intercom / Zendesk Cost | Chatwoot VPS | Net Annual Savings |
|---|---|---|---|
| 1 Seat (Solo) | $113.00/mo ($1,356/yr) | $4.50/mo (CX22) | +$1,302 / year |
| 5 Seats | $269.00/mo ($3,228/yr) | $4.50/mo (CX22) | +$3,174 / year |
| 10 Seats | $464.00/mo ($5,568/yr) | $4.50/mo (CX22) | +$5,514 / year |
| 25 Seats | $1,049.00/mo ($12,588/yr) | $4.50/mo (CX22) | +$12,534 / year |
| 50 Seats | $2,024.00/mo ($24,288/yr) | $4.50/mo (CX22) | +$24,234 / year |
| 100 Seats | $3,974.00/mo ($47,688/yr) | $4.50/mo (CX22) | +$47,634 / year |
Production Docker Compose + Caddy Auto-SSL
Copy and run docker compose up -d on any Ubuntu 24.04 server.
# Production Docker Compose: Chatwoot (Replaces Intercom / Zendesk)
services:
caddy:
image: caddy:2-alpine
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
networks:
- stack_net
chatwoot:
image: chatwoot/chatwoot:latest
container_name: stack-chatwoot
restart: unless-stopped
environment:
- "FRONTEND_URL=https://support.${DOMAIN:-yourdomain.com}"
- "SECRET_KEY_BASE=${CHATWOOT_SECRET:-generate_64_char_hex_secret_key}"
- "POSTGRES_HOST=postgres"
- "POSTGRES_USERNAME=postgres"
- "POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-strongpassword}"
- "REDIS_URL=redis://redis:6379"
volumes:
- chatwoot_data:/data
networks:
- stack_net
postgres:
image: pgvector/pgvector:pg16
container_name: stack-postgres
restart: unless-stopped
environment:
- "POSTGRES_USER=postgres"
- "POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-strongpassword}"
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- stack_net
redis:
image: redis:7-alpine
container_name: stack-redis
restart: unless-stopped
volumes:
- redis_data:/data
networks:
- stack_net
networks:
stack_net:
driver: bridge
volumes:
caddy_data:
chatwoot_data:
postgres_data:
redis_data:
# Automatic Let's Encrypt HTTPS for Chatwoot
chatwoot.{$DOMAIN:yourdomain.com} {
encode zstd gzip
reverse_proxy chatwoot:3000
}
Why Teams Switch to Chatwoot
- ✓Drop-in website chat widget + Help Center docs
- ✓Connect your own OpenAI key for Captain AI replies
- ✓Shared inbox for Email, WhatsApp, X & Telegram
chatwoot/chatwoot:latest
Deploy Chatwoot in 60 Seconds
Sized automatically for Chatwoot (1536MB container RAM + OS overhead).
Get All 16 Pre-Built Production Stacks + Encrypted S3 Backups
Includes pre-tuned docker-compose.yml, Caddy Auto-SSL, AES-256 encrypted nightly S3/R2 Postgres backups, and Ubuntu 24.04 UFW/Fail2ban hardening scripts.