Back to all templates
Chatwoot logo

Chatwoot

Application1024MB+ RAM

Open-source customer engagement platform

chatcustomer-supportintercom-alternative

Deploy Chatwoot in 3 Steps

1

Connect Your VPS

Add your server credentials to Server Compass

2

Select Chatwoot

Choose from our template library

3

Deploy & Configure

Fill in settings and click Deploy

No Docker knowledge required
Step-by-step deployment guide

Deploy Chatwoot on a VPS with Server Compass

Use the Chatwoot template in Server Compass to deploy a self-hosted customer support inbox with PostgreSQL and Redis on your VPS, then verify the Chatwoot web UI in a browser.

About 7 minutesBrowser verified
1
Step 1

Open the server Apps tab

Select your VPS, open the Apps tab, and start a new app deployment. Keep sensitive server details hidden before capturing or sharing screenshots.

Server Compass Apps tab before creating a Chatwoot app
2
Step 2

Choose an app template

Click New App and choose the template deployment path so Server Compass can load the built-in catalog.

Choosing to deploy an app from a Server Compass template
3
Step 3

Search for Chatwoot

Use the template picker search to find Chatwoot in the Server Compass template catalog.

Searching for Chatwoot in the Server Compass template picker
4
Step 4

Select the Chatwoot template

Choose the Chatwoot template. Server Compass fills the Chatwoot image, host port, public URL and persistent PostgreSQL data volume.

Chatwoot template selected in Server Compass
5
Step 5

Review the Chatwoot settings

Confirm the app name and compose services. In this run, the app was named chatwoot-demo and used host port 3000.

Reviewing Chatwoot project settings and compose services
6
Step 6

Deploy Chatwoot

Review the generated environment values, confirm the port is available, and click Deploy Now.

Reviewing Chatwoot environment variables and port before deployment
7
Step 7

Watch the deployment progress

Keep the deployment modal open while Server Compass uploads the compose file, pulls the Chatwoot image, starts the container, and verifies the stack.

Server Compass deploying the Chatwoot template on the VPS
8
Step 8

Confirm Chatwoot is running

After deployment finishes, return to the Apps tab and confirm the Chatwoot app is marked Running with its application URL available.

Chatwoot template running in the Server Compass Apps tab
9
Step 9

Open Chatwoot in the browser

Open the application URL in a browser. The Chatwoot web UI confirms the site is reachable.

The deployed Chatwoot web UI loaded in a browser

After Chatwoot Opens

  • Complete the Chatwoot setup wizard and create the first admin account before production use.
  • Configure inbox channels, HTTPS, email, and user access before production use.
  • Add a domain and HTTPS before exposing the Chatwoot setup wizard to users.
  • Back up the Chatwoot PostgreSQL volume before relying on it for production chat.

Verified Result

The Chatwoot web UI loaded successfully in a browser.

Chatwoot deployment questions

What does the Chatwoot template deploy?

It deploys Chatwoot with PostgreSQL, Redis, and persistent application storage.

Which port did the tutorial use?

The tutorial used host port 3000, which maps to the Chatwoot web server on container port 3000.

Why does the guide stop at the first-run web UI?

The tutorial verifies the clean first-run web UI because real users, channels, integrations, and access rules depend on the production server.

Should this become a blog post?

No. The deployment guide should live on the Chatwoot template detail page and be linked from the reusable template deployment docs page.

Manual Setup Guide

Set Up Chatwoot from Terminal

Get your hands dirty: manual Chatwoot deployment guide for developers.

1

Connect to Your VPS via SSH

Fire up your terminal application and establish a connection to your remote server.

terminal
# Access your VPS
ssh root@YOUR_SERVER_IP

# With SSH key authentication
ssh -i ~/.ssh/your-private-key root@YOUR_SERVER_IP

First time? Ensure Docker is installed first: curl -fsSL https://get.docker.com | sh

2

Initialize Project Folder

Create a folder to house your Docker Compose configuration.

terminal
# Create and navigate to project directory
mkdir -p ~/apps/chatwoot
cd ~/apps/chatwoot
3

Create Docker Configuration

Define your services in a docker-compose.yml file:

docker-compose.yml
services:
  chatwoot_setup:
    image: chatwoot/chatwoot:latest
    environment:
      - RAILS_ENV=production
      - NODE_ENV=production
      - SECRET_KEY_BASE=<your-secret-key>
      - FRONTEND_URL=<your-frontend-url>
      - POSTGRES_HOST=db
      - POSTGRES_DATABASE=chatwoot
      - POSTGRES_USERNAME=chatwoot
      - POSTGRES_PASSWORD=<your-db-password>
      - REDIS_URL=redis://redis:6379
    command: bundle exec rails db:chatwoot_prepare
    restart: "no"
    depends_on:
      db:
        condition: service_healthy
      redis:
        condition: service_started

  chatwoot:
    image: chatwoot/chatwoot:latest
    ports:
      - "3000:3000"
    environment:
      - RAILS_ENV=production
      - NODE_ENV=production
      - SECRET_KEY_BASE=<your-secret-key>
      - FRONTEND_URL=<your-frontend-url>
      - POSTGRES_HOST=db
      - POSTGRES_DATABASE=chatwoot
      - POSTGRES_USERNAME=chatwoot
      - POSTGRES_PASSWORD=<your-db-password>
      - REDIS_URL=redis://redis:6379
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - chatwoot_storage:/app/storage
    restart: unless-stopped
    depends_on:
      chatwoot_setup:
        condition: service_completed_successfully
      db:
        condition: service_healthy
      redis:
        condition: service_started

  sidekiq:
    image: chatwoot/chatwoot:latest
    environment:
      - RAILS_ENV=production
      - NODE_ENV=production
      - SECRET_KEY_BASE=<your-secret-key>
      - POSTGRES_HOST=db
      - POSTGRES_DATABASE=chatwoot
      - POSTGRES_USERNAME=chatwoot
      - POSTGRES_PASSWORD=<your-db-password>
      - REDIS_URL=redis://redis:6379
    command: bundle exec sidekiq -C config/sidekiq.yml
    volumes:
      - chatwoot_storage:/app/storage
    restart: unless-stopped
    depends_on:
      chatwoot_setup:
        condition: service_completed_successfully
      db:
        condition: service_healthy
      redis:
        condition: service_started

  db:
    image: pgvector/pgvector:pg16
    environment:
      - POSTGRES_USER=chatwoot
      - POSTGRES_PASSWORD=<your-db-password>
      - POSTGRES_DB=chatwoot
    volumes:
      - postgres_data:/var/lib/postgresql/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U chatwoot"]
      interval: 10s
      timeout: 5s
      retries: 10

  redis:
    image: redis:7-alpine
    volumes:
      - redis_data:/data
    restart: unless-stopped

volumes:
  chatwoot_storage:
  postgres_data:
  redis_data:
Environment Variables
PORTHost port(default: 3000)
FRONTEND_URLFrontend URL
SECRET_KEYSecret key
DB_PASSWORDDB password
4

Execute the Deployment

Start your containers and verify they're running correctly.

terminal
# Launch the stack
docker compose up -d

# Verify container status
docker compose ps

# Follow the logs
docker compose logs --follow
5

Allow Network Access

Update UFW rules to allow traffic on the application port.

terminal
# Allow the application port through firewall
sudo ufw allow 3000/tcp
sudo ufw reload

# Access your app at:
# http://your-server-ip:3000
Skip the Terminal

Don't want to type commands? We've got you.

Why type commands when you can click? Deploy Chatwoot the easy way with Server Compass.

  • No terminal required
  • Point-and-click setup
  • Auto SSL certificates
  • Rolling deployments
  • Health monitoring
  • Instant rollbacks
Download Server Compass$29 one-time • Lifetime license

After Deployment

After deploying Chatwoot with Server Compass, complete these steps to finish setup

1

Complete setup wizard

2

Create admin account

3

Configure email channels

Need help? Check out our documentation for detailed guides.

Chatwoot FAQ

Common questions about self-hosting Chatwoot

How do I deploy Chatwoot with Server Compass?

Simply download Server Compass, connect to your VPS, and select Chatwoot from the templates list. Fill in the required configuration and click Deploy. The entire process takes under 3 minutes.

What are the system requirements for Chatwoot?

Chatwoot requires a minimum of 1024MB RAM. We recommend a VPS with at least 2048MB RAM for optimal performance. Any modern Linux server with Docker support will work.

Can I migrate my existing Chatwoot data?

Yes! Server Compass provides volume mapping that allows you to import existing data. You can also use standard Chatwoot backup and restore procedures.

How do I update Chatwoot to the latest version?

Server Compass makes updates easy. Simply click the Update button in your deployment dashboard, and the latest Chatwoot image will be pulled and deployed with zero downtime.

Is Chatwoot free to self-host?

Chatwoot is open-source software. You only pay for your VPS hosting (typically $5-20/month) and optionally Server Compass ($29 one-time). No subscription fees or per-seat pricing.

Ready to Self-Host Chatwoot?

Download Server Compass and deploy Chatwoot to your VPS in under 3 minutes. No Docker expertise required.

Download Server Compass