Deployment guide

Self-Host Chatwoot on a VPS: Open-Source Omnichannel Support

Deploy on a VPS Cloud →

Self-hosting5 min read

Self-Host Chatwoot on a VPS: Open-Source Omnichannel Support

Intercom and Zendesk charge per agent, lock you out of your own data and scale costs with your team. Chatwoot (MIT, 34 k+ stars, v4.16.0) offers a radical alternative: an open-source omnichannel customer support platform you host on your own VPS. Live chat on your site, email threads, WhatsApp Business, Telegram, Facebook Messenger and Twitter/X DMs — all your customer conversations in one shared inbox, with no per-agent fees and no data leaving your infrastructure.

Why self-host your customer support

SaaS customer support tools have a simple business model: you pay per agent and per channel, and your customer data lives on their servers. For a web agency or SMB, that quickly adds up once the team grows past two or three people. Chatwoot inverts the equation: deploy on your own VPS, invite as many agents as you need, and connect all your channels at no extra cost. Your customer conversations stay on your infrastructure — a strong argument for GDPR compliance, client trust and data sovereignty.

What you get with a self-hosted Chatwoot

  • Omnichannel shared inbox: live chat, email, WhatsApp, Telegram, Facebook Messenger and Twitter/X DMs in one dashboard.
  • Embeddable live-chat widget: a customisable chat bubble added to any website with two lines of JavaScript.
  • Canned responses and automation rules: auto-assign conversations, first-response templates and routing by language or keyword.
  • Team collaboration: internal notes, conversation assignment, mentions and team queues visible to all agents in real time.
  • Built-in CRM: contact profiles with conversation history, custom attributes and labels.
  • REST API and webhooks: integrate with n8n, Activepieces or your own backend.
  • MIT licence — no per-agent pricing, no data sent to a third-party cloud, full data sovereignty.

Requirements

Chatwoot runs as a Ruby on Rails server + Sidekiq worker + PostgreSQL 15 + Redis 7, so four Docker containers. Plan for a VPS with at least 2 GB RAM (4 GB recommended for teams over 10 agents). Ubuntu 24.04 with Docker is the fastest path. On the network side, prepare a subdomain — support.your-domain.com for example — and a reverse proxy (Nginx or Caddy) to enable HTTPS. Chatwoot requires a FRONTEND_URL over HTTPS for OAuth redirects, email links and the live-chat widget script to work correctly.

Deploy Chatwoot on a VPS in 6 steps

01

One-click deploy from the ServOrbit marketplace

Open your ServOrbit control panel, go to Marketplace → Collaboration & Productivity → Chatwoot, and click Deploy. Docker pulls chatwoot/chatwoot:latest and starts four containers: PostgreSQL, Redis, the Rails web server and the Sidekiq worker. On first boot, the database migration runs automatically — allow 60–90 seconds before the UI is available.

02

Create the admin account

Navigate to http://<your-vps-ip>:3000. Chatwoot shows a first-run setup wizard: enter your name, email address and a strong password. This account becomes the super admin. You can invite additional agents and create teams from the Settings panel.

03

Configure FRONTEND_URL and enable HTTPS

Point your domain to the VPS (A record → VPS IP). Install Caddy (apt install -y caddy) and create /etc/caddy/Caddyfile: support.your-domain.com { reverse_proxy localhost:3000 }. Reload Caddy (systemctl reload caddy). Then set FRONTEND_URL=https://support.your-domain.com in your .env file and restart the web container: docker compose restart web. Chatwoot uses this URL for OAuth redirects, email links and the widget script.

04

Add your first inbox

In Chatwoot, go to Settings → Inboxes → Add Inbox. Choose Website for live chat, Email for SMTP/IMAP threads, or a messaging channel like WhatsApp Cloud API or Telegram. For website chat, copy the generated JavaScript snippet and paste it into your site's <head>. Visitors see the chat bubble immediately.

05

Invite agents and configure automation

Go to Settings → Agents and send email invites. In Settings → Automation, create rules to auto-assign conversations (e.g. WhatsApp → sales team, email → billing) and send first-response messages outside business hours. The Sidekiq worker handles all async jobs: email delivery, webhook triggers and push notifications.

06

Connect WhatsApp Business (optional)

Create a Meta for Developers app and enable the WhatsApp Business Cloud API. In Chatwoot → Settings → Inboxes → Add → WhatsApp, enter your WhatsApp Business phone number, Business Account ID, access token and webhook verification token. Incoming WhatsApp messages now appear in the shared inbox alongside live chat and email.

07

Logging in for the first time

Open the URL as soon as the installation is finished: a welcome screen has you create the first account (name, e-mail, password), and that account becomes the owner of the workspace.

Set up canned responses (Settings → Canned Responses) on day one: contact acknowledgement, order confirmation, processing timelines. Your agents save minutes per conversation — and tone consistency is guaranteed regardless of who replies. Combine with automation rules to automatically send the first-response message at night and on weekends.

Official documentation

For advanced configuration (SMTP, LDAP SSO, S3 storage, multi-account) and Chatwoot-specific options, refer to the official Chatwoot self-hosted documentation. This guide covers getting live on a VPS; the vendor docs remain the reference for fine-grained settings and major upgrades.

Deploy Chatwoot on your own server

Self-host Chatwoot on a ServOrbit VPS — open source, no per-agent fees, all your customer conversations on your infrastructure.

Need help?

Browse our help center and FAQ, or reach our team — callback, WhatsApp or email. Support in French, English and Arabic.