Railway

Deploy Self-Host Chatwoot — Intercom Alternative for $10/Month, Not $39/Seat

Self-host Chatwoot: omnichannel support inbox. No $39/seat Intercom fees.

Deploy Self-Host Chatwoot — Intercom Alternative for $10/Month, Not $39/Seat

Just deployed

/data

Just deployed

/app/storage

/var/lib/postgresql/data

Deploy and Host Chatwoot on Railway

Chatwoot unified inbox dashboard

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

ServicePurpose
Chatwoot WebRails/Puma web server — handles all HTTP traffic, WebSocket connections, and the agent dashboard UI on port 3000
SidekiqBackground worker — email delivery, avatar fetching, scheduled tasks, and event dispatch via shared Redis queue
pgvector PostgreSQLPrimary database with vector extension — conversations, contacts, inboxes, teams, and AI search features
Redis 8.2.1Sidekiq 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

  1. Click Deploy on Railway — all four services build automatically (~3–5 minutes)
  2. Set FRONTEND_URL to your Railway Chatwoot web service public domain
  3. Add SMTP credentials (SMTP_ADDRESS, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD, MAILER_SENDER_EMAIL) to both the Web and Sidekiq services for email delivery
  4. Open your Railway URL — the Chatwoot onboarding wizard loads immediately
  5. 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

VariableRequiredDescription
SECRET_KEY_BASE✅ Auto-generatedRails encryption secret — auto-generated and shared across Web and Sidekiq via reference variable. Never regenerate separately
FRONTEND_URL✅ RequiredYour Railway Web service public domain — required for chat widget URLs and email links
DATABASE_URL✅ Auto-injectedpgvector PostgreSQL connection string via Railway reference variable
REDIS_URL✅ Auto-injectedRedis connection URI via Railway reference variable
SMTP_ADDRESSRecommendedSMTP host — required for agent invitations, password resets, and email channel
SMTP_PORTRecommendedSMTP port — typically 587 (TLS) or 465 (SSL)
SMTP_USERNAMERecommendedSMTP username from your email provider
SMTP_PASSWORDRecommendedSMTP password from your email provider
MAILER_SENDER_EMAILRecommendedFrom address for all Chatwoot emails
ACTIVE_STORAGE_SERVICEOptionallocal (default) or amazon for S3-compatible file storage
DEFAULT_LOCALEOptionalDefault 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)IntercomZendeskFreshdesk
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❌ No❌ No❌ No
WhatsApp✅ Built-in✅ Yes✅ Yes✅ Yes
Live chat widget✅ JS embed✅ Yes✅ Yes✅ Yes
Help center✅ Built-in✅ Yes✅ Yes✅ Yes
CSAT surveys✅ Built-in✅ Yes✅ Yes✅ Yes
Automation rules✅ Yes✅ Yes✅ Yes✅ Yes

Dependencies for Chatwoot Hosting

  • Railway account — Hobby plan (~$10–20/month) for the four-service stack
  • SMTP provider for emails — Resend or Brevo recommended (free tiers; raw SMTP is blocked on Railway Hobby plan)

Deployment Dependencies

Implementation Details

Deploys Chatwoot CE (chatwoot/chatwoot:latest) with pgvector PostgreSQL and Redis over Railway's private network. The Web service pre-deploy command (bundle exec rails db:chatwoot_prepare) runs migrations before each deploy automatically.

Web and Sidekiq share SECRET_KEY_BASE and RAILS_MASTER_KEY via Railway reference variables — these keys must be identical. If Sidekiq has different keys it throws decryption errors. The template handles this automatically; never regenerate them separately.


Frequently Asked Questions

How much does Chatwoot cost on Railway vs Intercom? ~$10–20/month flat on Railway's Hobby plan, no per-agent fees. Intercom costs $195/month for a 5-agent team. Zendesk is $95/month. Freshdesk is $75/month. Chatwoot stays flat regardless of team size.

Why does this template use pgvector instead of standard PostgreSQL? Chatwoot requires the vector PostgreSQL extension for AI search and embedding features. Railway's standard PostgreSQL template doesn't include it. Using standard Postgres causes the database setup to fail with a PG::FeatureNotSupported error. This template uses pgvector/pgvector:pg18 which ships with the extension pre-installed.

Do I need email configured to use Chatwoot? Email is not required to start, but without it agent invitations, password resets, and email-channel conversations don't work. On Railway Hobby, raw SMTP is blocked — use Resend (3,000 free emails/month) or Brevo (300 free emails/day) as HTTPS-based SMTP relays. Add SMTP variables to both the Web and Sidekiq services.

Does Chatwoot support WhatsApp? Yes. Connect WhatsApp Business via the Meta Cloud API (requires a Meta developer account) or Twilio under Settings → Inboxes → Add Inbox → WhatsApp. Standard WhatsApp message fees from Meta or Twilio apply separately — Chatwoot itself charges nothing per message.

Do I lose conversations if Railway redeploys? No. All conversations, contacts, and settings are stored in the Railway-managed PostgreSQL database. For attachment persistence across redeploys, configure S3-compatible storage via ACTIVE_STORAGE_SERVICE=amazon.

Can I use Chatwoot in production? Yes — 50,000+ self-hosted production installations globally. This template uses the official Docker image with pre-deploy migration hooks and pgvector PostgreSQL.


Why Deploy and Host Chatwoot on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Chatwoot on Railway, you get a production-ready omnichannel customer support platform — live chat, email, WhatsApp, Instagram, Facebook, and Telegram in one inbox — at ~$10–20/month flat with no per-seat fees and full ownership of your customer data.


Template Content

More templates in this category

View Template
N8N Main + Worker
Deploy and Host N8N with Inactive worker.

jakemerson
View Template
Evolution API with n8n
[Jun'26] WhatsApp HTTP REST API with n8n automation, PostgreSQL and Redis.

codestorm
View Template
Postgres Backup
Cron-based PostgreSQL backup to bucket storage

Railway Templates