To create a full-featured customer support center with WhatsApp, Telegram, and Live-chat integration, it is optimal to use chatwoot self hosted on a dedicated server or VPS with specs starting from 4 GB RAM and 2 vCPU. This setup allows you to handle requests from 1000+ monthly active users (MAU) at a fixed cost of around $13/month, completely replacing paid Intercom or Zendesk subscriptions that cost anywhere from $100-300/month.
Why chatwoot self hosted is the best intercom alternative for business
Moving to your own infrastructure for message processing is driven not only by savings but also by full control over customer data. Unlike SaaS platforms, where costs grow proportionally to the number of agents or active dialogues, a helpdesk selfhost solution allows you to scale your team without increasing monthly payments to the software provider.
Economic efficiency and scaling
The cloud version of Chatwoot starts at $19 per agent per month. If your team has 10 people, the budget would be $190/month. Deploying a chatwoot vps costs only the server rental fee. On a Valebyte plan for $13-15, you get enough resources for 15-20 agents to work simultaneously. Meanwhile, the number of dialogues is limited only by CPU power and RAM, not by artificial pricing plan limits.
Security and GDPR compliance
When you use third-party CRMs, your customer correspondence is stored on third-party servers. For companies in the financial, medical, or legal sectors, this is a critical risk. A self-hosted installation guarantees that the PostgreSQL and Redis databases remain within your perimeter. You can configure disk encryption and strict access rules via VPN or SSH keys. For secure storage of API keys for WhatsApp and Telegram, we recommend using self-hosted Bitwarden/Vaultwarden to prevent credential leaks within the team.
Technical requirements and Chatwoot VPS selection
Chatwoot is built on a stack of Ruby on Rails, Vue.js, PostgreSQL, and Redis. It is a powerful but resource-intensive system. For stable operation of Sidekiq (the background task processor) and correct rendering of the agent interface, it is necessary to avoid resource "overselling."
Minimum and recommended server specifications
Running on 2 GB RAM is possible, but as the message queue in Redis grows, the system will start using swap, leading to delays in agents receiving notifications. We recommend the following parameters for different load levels:
| Parameter |
Minimal (Start-up) |
Recommended (Growth) |
High Load (Enterprise) |
| CPU Cores |
2 vCPU |
4 vCPU |
8+ vCPU |
| RAM |
4 GB |
8 GB |
16+ GB |
| Disk (NVMe) |
40 GB |
80 GB |
160+ GB |
| Agents |
Up to 5 |
Up to 25 |
Unlimited |
| Approx. VPS Price |
$13 - $18 |
$25 - $35 |
$60+ |
Database and caching optimization
To speed up message history searches, it is important to use fast NVMe disks. PostgreSQL is sensitive to input/output operations (IOPS). If you plan to store gigabytes of screenshots and videos from customers, it is better to connect external S3-compatible storage or deploy self-hosted Nextcloud for file management, although Chatwoot handles local storage perfectly well if space is available.
Looking for a reliable server for your projects?
VPS from $10/mo and dedicated servers from $9/mo with NVMe, DDoS protection, and 24/7 support.
View Offers →
Step-by-step Chatwoot installation on your server
The fastest and most reliable way to deploy chatwoot self hosted is by using the official installation script for Ubuntu 20.04/22.04 LTS or Docker-compose. We will look at the script method, as it automatically configures SSL (Let's Encrypt), Nginx, and all necessary dependencies.
System preparation
Before starting, ensure that your domain (e.g., crm.yourcompany.com) points to your VPS IP address. Update packages and install curl:
sudo apt update && sudo apt upgrade -y
sudo apt install curl -y
Running the installer
Execute the command to download and run the script. During the process, you will need to enter the domain name and an email for SSL certificate registration:
wget https://get.chatwoot.app/setup.sh
chmod +x setup.sh
sudo ./setup.sh master
The script will perform the following actions:
- Install Ruby, Node.js, and Yarn.
- Configure PostgreSQL and Redis.
- Configure Nginx as a reverse proxy.
- Create system services for automatic Chatwoot startup after a server reboot.
Configuring environment variables (.env)
After installation, you need to configure SMTP for sending notifications and integration parameters. The configuration file is usually located at /home/chatwoot/chatwoot/.env. Be sure to enter your mail server details; otherwise, agents won't be able to reset passwords or receive alerts about new tickets.
# SMTP configuration example
SMTP_ADDRESS=smtp.yourserver.com
SMTP_AUTHENTICATION=plain
SMTP_DOMAIN=yourcompany.com
SMTP_ENABLE_STARTTLS_AUTO=true
SMTP_PORT=587
[email protected]
SMTP_PASSWORD=your_secure_password
Setting up omnichannel: WhatsApp, Telegram, and Instagram
The main value of Chatwoot is combining all communication channels into a single window. This allows you to create your own whatsapp crm without paying expensive intermediaries for every message.
WhatsApp Business API (WABA) integration
Chatwoot supports the official WhatsApp Business Cloud API from Meta. This is free for up to 1000 inbound conversations per month (user-initiated). To set it up, you will need a Facebook Developer Console account.
- Create a "Business" application.
- Add the "WhatsApp" product.
- Get a Temporary Access Token (later replace it with a Permanent one).
- Copy the Phone Number ID and WhatsApp Business Account ID into the channel settings in Chatwoot.
If you need automated WhatsApp responses based on AI, you can integrate the system with a self-hosted ChatGPT alternative via webhooks, allowing the bot to answer typical customer questions 24/7.
Connecting Telegram and Instagram
For Telegram, the process takes 2 minutes: create a bot via @BotFather, get the token, and paste it into Chatwoot. All messages sent to the bot will instantly appear in the agent panel. Instagram integration requires a Facebook Business account linked to an Instagram page. Chatwoot supports Direct Messages and post comments.
Automation and analytics in Chatwoot
Simply responding to messages is not enough for an effective helpdesk selfhost. Chatwoot allows you to automate routines using Automation Rules and macros.
Using webhooks and n8n
For complex scenarios, such as creating a lead in a third-party database when a message is received, the Chatwoot + n8n combination is ideal. You can set up data transfer for every new dialogue to self-hosted n8n, where a visual editor allows you to build logic of any complexity: from checking order status to integration with 1C or other ERP systems.
Analytics and performance tracking
Chatwoot provides built-in reports on CSAT (customer satisfaction), first response time, and average resolution time. If you require deeper analysis of user behavior on the site before they message the chat, we recommend using self-hosted analytics (PostHog or Umami). Integrating user IDs between PostHog and Chatwoot will allow the agent to see which pages the customer visited before reaching out.
Cost comparison: Self-hosted vs SaaS solutions
Many companies underestimate the hidden costs of cloud CRMs. Intercom, for example, introduced a complex pricing system "per unique user you talked to in a month." In Chatwoot self-hosted, your costs are fixed.
| Criterion |
Intercom (SaaS) |
Zendesk (SaaS) |
Chatwoot (Self-hosted) |
| Base Price |
From $74/mo |
From $55/agent |
$0 (Open Source) |
| Price per Agent |
Additional fee |
Included in base |
Free (unlimited) |
| WhatsApp Integration |
Paid addon |
Only in high-tier plans |
Free (Cloud API) |
| Data Storage |
USA/EU servers |
Provider's servers |
Your VPS (any location) |
| Total for 10 Agents |
~$400 - $600/mo |
~$550/mo |
~$13 - $25/mo (for VPS) |
The cost difference becomes massive as the business scales. Saved funds can be directed toward improving service quality or renting a more powerful chatwoot vps to implement AI assistants.
Security and system maintenance
Operating chatwoot self hosted requires minimal administrative attention, but basic rules should not be neglected. Since the CRM stores personal data and correspondence, the server must be protected.
Regular updates and backups
Chatwoot developers release updates every 2-4 weeks. The update process boils down to executing a few commands. Always take a snapshot of your VPS before every update. To automate PostgreSQL database backups, use simple scripts that upload dumps to S3 or another server.
# Update command example (for script-based version)
sudo -i -u chatwoot
cd chatwoot
git checkout master && git pull
bundle install
rake db:migrate
RAILS_ENV=production bundle exec rake assets:precompile
exit
sudo systemctl restart chatwoot.target
Error monitoring
If chat issues occur (e.g., messages aren't sending), you need to know about it promptly. To track errors in Ruby and JavaScript code on the server side, self-hosted Sentry is an excellent fit. This allows your developers to see the call stack and the reason for Sidekiq background task failures without manually digging through logs.
Conclusion
Using chatwoot self hosted on a VPS is the most rational way to build a modern omnichannel helpdesk without vendor lock-in or hidden fees. To start, a server with 4 GB RAM for $13-15/month is sufficient, providing full data privacy and an unlimited number of agents. We recommend starting with an installation via Docker or the official script, immediately setting up WhatsApp Cloud API integration for direct communication with customers.
Ready to choose a server?
VPS and dedicated servers in 72+ countries with instant activation and full root access.
Start Now →