Deploy Self-Host Chatwoot — Intercom Alternative for $10/Month, Not $39/Seat
Self-host Chatwoot: omnichannel support inbox. No $39/seat Intercom fees.
Valkey
Just deployed
/data
Chatwoot
Just deployed
/app/storage
Just deployed
/var/lib/postgresql/data
Deploy and Host Chatwoot on Railway

Chatwoot is the open-source customer support platform with 22k+ GitHub stars and 50,000+ self-hosted production installations — a unified inbox for live chat, email, WhatsApp, Instagram, Facebook, Telegram, Line, and SMS, all from a single dashboard. MIT licensed, Sentry SDK compatible, and fully self-hostable.
Intercom starts at $39/seat/month. Zendesk at $19/seat/month. Freshdesk at $15/seat/month. Chatwoot on Railway costs ~$10–20/month flat for your entire team with no per-seat pricing and full ownership of every conversation and customer record.
What This Template Deploys
| Service | Purpose |
|---|---|
| Chatwoot Web | Rails/Puma web server — handles all HTTP traffic, WebSocket connections, and the agent dashboard UI on port 3000 |
| Sidekiq | Background worker — email delivery, avatar fetching, scheduled tasks, and event dispatch via shared Redis queue |
| pgvector PostgreSQL | Primary database with vector extension — conversations, contacts, inboxes, teams, and AI search features |
| Redis 8.2.1 | Sidekiq job queue and ActionCable pub/sub backend for real-time conversation updates |
Web and Sidekiq share the same Docker image but run as separate Railway services.SECRET_KEY_BASE is shared automatically via Railway reference variables.
About Hosting Chatwoot
Running Chatwoot in production requires coordinating four services — Rails web server, Sidekiq worker, PostgreSQL with the pgvector extension, and Redis — with shared encryption keys, pre-deploy database migrations, and a public HTTPS endpoint for the agent dashboard and chat widget. Without a managed host, you're configuring Docker Compose, SSL, shared secrets, and migration scripts manually.
Railway handles all of it — pre-deploy migrations, auto-generated shared encryption keys, and private networking across all four services.
Typical cost: ~$10–20/month on Railway's Hobby plan. Intercom costs $39/seat/month — $195/month for a 5-agent team. Zendesk is $95/month. Chatwoot stays flat whether you have 2 agents or 20.
Deploy in Under 5 Minutes
- Click Deploy on Railway — all four services build automatically (~3–5 minutes)
- Set
FRONTEND_URLto your Railway Chatwoot web service public domain - Add SMTP credentials (
SMTP_ADDRESS,SMTP_PORT,SMTP_USERNAME,SMTP_PASSWORD,MAILER_SENDER_EMAIL) to both the Web and Sidekiq services for email delivery - Open your Railway URL — the Chatwoot onboarding wizard loads immediately
- Create your admin account, name your workspace, and add your first inbox
No SSH. No Docker Compose. No manual migration scripts.
Common Use Cases
- Self-hosted Intercom alternative without $39/seat pricing — unified inbox, live chat widget, automated assignment, canned responses, and team collaboration at flat infrastructure cost with no per-seat or per-conversation fees
- Self-hosted Zendesk alternative for GDPR-sensitive businesses — all conversation data stays in your Railway pgvector PostgreSQL instance within your chosen region; no data sent to Zendesk's US servers
- WhatsApp and omnichannel support from one dashboard — connect WhatsApp Business, Instagram, Facebook, Telegram, email, and live chat to a single shared inbox without switching between platforms or paying per-channel fees
- Embedded live chat widget for your product — copy the Chatwoot JS snippet into your site's ``, configure your widget colour and welcome message, and your support team sees incoming chats in the shared inbox within seconds
- SaaS customer support via API and webhooks — create conversations via REST API, trigger Slack notifications on new tickets, and connect Shopify orders to the dashboard
- Startup replacing Intercom from day one — omnichannel inbox, help center, CSAT, automation rules, and reporting at infrastructure cost only; no per-agent fees
Configuration
| Variable | Required | Description |
|---|---|---|
SECRET_KEY_BASE | ✅ Auto-generated | Rails encryption secret — auto-generated and shared across Web and Sidekiq via reference variable. Never regenerate separately |
FRONTEND_URL | ✅ Required | Your Railway Web service public domain — required for chat widget URLs and email links |
DATABASE_URL | ✅ Auto-injected | pgvector PostgreSQL connection string via Railway reference variable |
REDIS_URL | ✅ Auto-injected | Redis connection URI via Railway reference variable |
SMTP_ADDRESS | Recommended | SMTP host — required for agent invitations, password resets, and email channel |
SMTP_PORT | Recommended | SMTP port — typically 587 (TLS) or 465 (SSL) |
SMTP_USERNAME | Recommended | SMTP username from your email provider |
SMTP_PASSWORD | Recommended | SMTP password from your email provider |
MAILER_SENDER_EMAIL | Recommended | From address for all Chatwoot emails |
ACTIVE_STORAGE_SERVICE | Optional | local (default) or amazon for S3-compatible file storage |
DEFAULT_LOCALE | Optional | Default language — en (default), supports 30+ languages |
> Set SMTP on both services: Add all SMTP variables to both the Web and Sidekiq > Railway services. Sidekiq handles background email delivery — missing SMTP on Sidekiq > causes silent email failures. On Railway Hobby, use Resend or Brevo (HTTPS-based SMTP).
Chatwoot vs. Managed Support Platforms
| Chatwoot (Railway) | Intercom | Zendesk | Freshdesk | |
|---|---|---|---|---|
| Monthly cost | ~$10–20 flat | $39/seat/month | $19/seat/month | $15/seat/month |
| 5-agent team | ~$10–20/mo | $195/month | $95/month | $75/month |
| Per-seat pricing | ✅ None | ❌ Yes | ❌ Yes | ❌ Yes |
| Data ownership | ✅ Your instance | ❌ Intercom servers | ❌ Zendesk servers | ❌ Freshdesk |
| Open source | ✅ MIT |
