Atlantic.Net Blog

How to Install Chatwoot on Ubuntu 20.04

Chatwoot is an open-source customer support tool for real-time messaging channels. It is like other commercial customer support software like Intercorn & Zendesk. Chatwoot is designed to provide a great customer experience and to increase the productivity of your support team. Chatwoot allows you to integrate social media chat including WhatsApp, Twitter, Facebook and Email to a central place.

In this tutorial, we will explain how to install Chatwoot on Ubuntu 20.04.

Prerequisites

  • A fresh Ubuntu 20.04 VPS on the Atlantic.Net Cloud Platform
  • A valid domain name pointed to your server IP
  • A root password configured on your server

Step 1 – Create Atlantic.Net Cloud Server

First, log in to your Atlantic.Net Cloud Server. Create a new server, choosing Ubuntu 20.04 as the operating system with at least 2GB RAM. Connect to your Cloud Server via SSH and log in using the credentials highlighted at the top of the page.

Once you are logged in to your Ubuntu 20.04 server, run the following command to update your base system with the latest available packages.

apt-get update -y

Step 2 – Install Chatwoot

You can install Chatwoot easily by downloading its automated installation script.

You can download it with the following command:

apt install git -y
git clone https://github.com/chatwoot/chatoot.git
cd chatwoot/deployment/
bash setup_20.04.sh -O setup.sh

Note: the install process will take several minutes.

Once the installation has been completed successfully, you should get the following output:

Woot! Woot!! Chatwoot server installation is complete
The server will be accessible at http://<server-ip>:3000
To configure a domain and SSL certificate, follow the guide at 
https://www.chatwoot.com/docs/deployment/deploy-chatwoot-in-linux-vm

You can also verify the status of the Chatwoot service with the following command:

systemctl status chatwoot.target

You should get the following output:

  • chatwoot.target
    Loaded: loaded (/etc/systemd/system/chatwoot.target; enabled; vendor preset: enabled)
    Active: active since Mon 2021-01-11 07:13:25 UTC; 2min 20s ago
Jan 11 07:13:25 ubuntu2004 systemd[1]: Reached target chatwoot.target.

By default, Chatwoot listens on port 3000. You can verify it with the following command:

ss -antpl | grep 3000

You should see the following output:

LISTEN 0 1024 0.0.0.0:3000 0.0.0.0:* users:(("ruby",pid=57666,fd=8))

Step 3 – Configure Nginx as a Reverse Proxy

Next, you will need to install and configure Nginx as a reverse proxy for Chatwoot.

First, install the Nginx with the following command:

apt-get install nginx -y

Once the Nginx has been installed, create a new Nginx virtual host configuration file with the following command:

nano /etc/nginx/conf.d/chatwoot.conf

Add the following lines:

server {
server_name chatwoot.example.com;

# Point upstream to Chatwoot App Server
set $upstream 127.0.0.1:3000;

# Nginx strips out underscore in headers by default
# Chatwoot relies on underscore in headers for API
# Make sure that the config is turned on.
underscores_in_headers on;
location /.well-known {
alias /var/www/ssl-proof/chatwoot/.well-known;
}

location / {
proxy_pass_header Authorization;
proxy_pass http://$upstream;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Ssl on; # Optional

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_http_version 1.1;
proxy_set_header Connection “”;
proxy_buffering off;

client_max_body_size 0;
proxy_read_timeout 36000s;
proxy_redirect off;
}
listen 80;

}

Save and close the file, then verify Nginx for any syntax errors with the following command:

nginx -t

If you get this error:

nginx: [emerg] could not build server_names_hash, you should increase 
server_names_hash_bucket_size: 32

Do the following:

nano /etc/nginx/nginx.conf

In the http block, add:

server_names_hash_bucket_size 64;

Next, restart the Nginx to apply the configuration changes:

systemctl reload nginx

Step 4 – Access Chatwoot

Now, open your web browser and access the Chatwoot web interface using the URL http://chatwoot.example.com. You will be redirected to the following page:

Click on the Create new account button. You should see the following page:

Provide your username and email and click on the Submit button. You should see the Chatwoot dashboard in the following page:

Conclusion

Congratulations! You have successfully installed Chatwoot on Ubuntu 20.04. You can now use Chatwoot to integrate all your social accounts and manage them from a central location. Try it using a dedicated server from Atlantic.Net!

Get started with 12 months of free cloud VPS hosting

Free Tier includes:
G3.2GB Cloud VPS Server Free to Use for One Year
50 GB of Block Storage Free to Use for One Year
50 GB of Snapshots Free to Use for One Year