ca7554f88c
Co-authored-by: Pranav Raj S <pranav@thoughtwoot.com>
3.5 KiB
3.5 KiB
path | title |
---|---|
/docs/deployment/deploy-chatwoot-in-linux-vm | Linux VM Chatwoot Production deployment guide |
Deploying to Linux VM
We have prepared a deployment script for ubuntu 18.04. Run the script or refer the script and make changes accordingly to OS.
https://github.com/chatwoot/chatwoot/blob/develop/deployment/setup.sh
After logging in to your Linux VM as the root user perform the following steps for initial set up
- Create the
chatwoot.sh
file and copy the content from deployment script. - Execute the script and it will take care of the initial Chatwoot setup
- Chatwoot Installation will now be accessible at
http://{your_ip}:3000
Configure ngix and letsencrypt
- configure Nginx to serve as a frontend proxy by following steps in your shell
cd /etc/nginx/sites-enabled
nano yourdomain.com.conf
- Add the required Nginx config after replacing the
yourdomain.com
inserver_name
server {
server_name yourdomain.com;
# where rails app is running
set $upstream 127.0.0.1:3000;
# Here we define the web-root for our SSL proof
location /.well-known {
# Note that a request for /.well-known/test.html will be made
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;
}
- Verify and reload your Nginx config by running following command.
nginx -t
systemctl reload nginx
- Run Letsencrypt and configure SSL
mkdir -p /var/www/ssl-proof/chatwoot/.well-known
certbot --webroot -w /var/www/ssl-proof/chatwoot/ -d yourdomain.com -i nginx
- You Chatwoot installation should be accessible from the
https://yourdomain.com
now.
Configure the required environment variables
For your chatwoot installation to properly function you would need to configure some of the essential environment variables like FRONTEND_URL
, mailer and storage config etc. refer environment variables for the full list.
- Login as chatwoot and edit the .env file.
# login as chatwoot user
sudo -i -u chatwoot
cd chatwoot
nano .env
- Refer environment variables and update the required variables. Save the
.env
file. - Restart the Chatwoot server and enjoy using Chatwoot.
systemctl restart chatwoot.target
Updating your Chatwoot Installation on a Linux VM
Run the following steps on your VM if you made use of our installation script Or making changes accordingly to your OS
# login as chatwoot user
sudo -i -u chatwoot
# navigate to the chatwoot directory
cd chatwoot
# pull the latest version of the master branch
git pull
# update dependencies
bundle
yarn
# recompile the assets
rake assets:precompile RAILS_ENV=production
# migrate the database schema
RAILS_ENV=production bundle exec rake db:migrate
#Restart the chatwoot server
systemctl restart chatwoot.target