fazer.ai
fazer.ai
Admin
🎫

No licenses yet

Licenses will appear here once you subscribe to a plan.

📦

No instances yet

Register your first application instance to get started

Attach to Instance

Select an instance:

No compatible instances found

Or create a new instance

Add Instance

The identifier from your Chatwoot installation.
Optional name for this instance.
Attached Licenses

Not sure how to start? Click here for a quick guide!

Installation Guide

Follow these steps to set up Chatwoot fazer.ai Pro on your server.

1

Generate Download Credentials

On the Licenses tab, find your license and click "Create Credentials" in the Download Credentials section.

2

Copy the Login Command

A modal will appear with a docker login command. Click the copy button to copy the entire command. Save this command — the password will only be shown once!

3

Access Your Server

Open a terminal on the server where you want to run Chatwoot fazer.ai Pro. This could be via SSH or directly on the machine.

4

Run the Login Command

Paste and run the docker login command you copied. You should see "Login Succeeded".

5

Test the Credentials

Verify your credentials work by pulling the image:

docker pull harbor.fazer.ai/chatwoot/fazer-ai/chatwoot-pro:latest

6

Deploy Chatwoot fazer.ai Pro

If you already have a Chatwoot installation, update your docker-compose or deployment configuration to use the new image:

harbor.fazer.ai/chatwoot/fazer-ai/chatwoot-pro:latest
New Installation?

If you don't have Chatwoot yet, you can use our pre-configured docker-compose for Coolify below.

Docker Compose for Coolify

Copy this docker-compose configuration and paste it into Coolify:

version: "3"
services:
  chatwoot:
    image: "harbor.fazer.ai/chatwoot/fazer-ai/chatwoot-pro:latest"
    pull_policy: always
    volumes:
      - "rails-data:/app/storage"
    depends_on:
      - postgres
      - redis
    environment:
      - SERVICE_URL_CHATWOOT
      - NODE_ENV=production
      - RAILS_ENV=production
      - INSTALLATION_ENV=docker
      - DEFAULT_LOCALE=pt_BR
      - "FRONTEND_URL=${SERVICE_URL_CHATWOOT}"
      - "INTERNAL_HOST_URL=http://rails:3000"
      - POSTGRES_HOST=postgres
      - POSTGRES_PORT=5432
      - "POSTGRES_USERNAME=${SERVICE_USER_POSTGRES}"
      - "POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}"
      - "POSTGRES_DATABASE=${POSTGRES_DB:-chatwoot}"
      - "SECRET_KEY_BASE=${SERVICE_PASSWORD_64_SECRETKEYBASE}"
      - "REDIS_URL=redis://redis:6379"
      - "REDIS_PASSWORD=${SERVICE_PASSWORD_REDIS}"
      - "BAILEYS_PROVIDER_DEFAULT_CLIENT_NAME=${BAILEYS_PROVIDER_DEFAULT_CLIENT_NAME:-Chatwoot}"
      - "BAILEYS_PROVIDER_DEFAULT_URL=http://baileys-api:3025"
      - "BAILEYS_PROVIDER_DEFAULT_API_KEY=${SERVICE_PASSWORD_64_DEFAULTAPIKEY}"
      - BAILEYS_PROVIDER_USE_INTERNAL_HOST_URL=true
      - "MAILER_SENDER_EMAIL=${MAILER_SENDER_EMAIL}"
      - "RESEND_API_KEY=${RESEND_API_KEY}"
    entrypoint: docker/entrypoints/rails.sh
    command:
      - bundle
      - exec
      - rails
      - s
      - "-p"
      - "3000"
      - "-b"
      - 0.0.0.0
    restart: always
    post_start:
      - command:
          - sh
          - "-c"
          - 'bundle exec rails db:chatwoot_prepare && bundle exec rails branding:update && if [ -n "$${BRAND_ASSETS_URL}" ]; then deployment/extract_brand_assets.sh "$${BRAND_ASSETS_URL}"; fi'
    healthcheck:
      test:
        - CMD-SHELL
        - 'wget -qO- --header="Accept: text/html" http://127.0.0.1:3000/'
      interval: 60s
      timeout: 20s
      retries: 10
  sidekiq:
    image: "harbor.fazer.ai/chatwoot/fazer-ai/chatwoot-pro:latest"
    pull_policy: always
    volumes:
      - "rails-data:/app/storage"
    depends_on:
      - postgres
      - redis
    environment:
      - NODE_ENV=production
      - RAILS_ENV=production
      - INSTALLATION_ENV=docker
      - DEFAULT_LOCALE=pt_BR
      - "FRONTEND_URL=${SERVICE_URL_RAILS}"
      - "INTERNAL_HOST_URL=http://rails:3000"
      - POSTGRES_HOST=postgres
      - POSTGRES_PORT=5432
      - "POSTGRES_USERNAME=${SERVICE_USER_POSTGRES}"
      - "POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}"
      - "POSTGRES_DATABASE=${POSTGRES_DB:-chatwoot}"
      - "SECRET_KEY_BASE=${SERVICE_PASSWORD_64_SECRETKEYBASE}"
      - "REDIS_URL=redis://redis:6379"
      - "REDIS_PASSWORD=${SERVICE_PASSWORD_REDIS}"
      - "BAILEYS_PROVIDER_DEFAULT_CLIENT_NAME=${BAILEYS_PROVIDER_DEFAULT_CLIENT_NAME:-Chatwoot}"
      - "BAILEYS_PROVIDER_DEFAULT_URL=http://baileys-api:3025"
      - "BAILEYS_PROVIDER_DEFAULT_API_KEY=${SERVICE_PASSWORD_64_DEFAULTAPIKEY}"
      - BAILEYS_PROVIDER_USE_INTERNAL_HOST_URL=true
      - "MAILER_SENDER_EMAIL=${MAILER_SENDER_EMAIL}"
      - "RESEND_API_KEY=${RESEND_API_KEY}"
    command:
      - bundle
      - exec
      - sidekiq
      - "-C"
      - config/sidekiq.yml
    restart: always
    healthcheck:
      test:
        - CMD-SHELL
        - "ps aux | grep [s]idekiq"
      interval: 20s
      timeout: 20s
      retries: 10
  postgres:
    image: "ghcr.io/fazer-ai/postgres-16-pgvector:latest"
    restart: always
    volumes:
      - "postgres:/var/lib/postgresql/data"
    environment:
      - "POSTGRES_DB=${POSTGRES_DB:-chatwoot}"
      - "POSTGRES_USER=${SERVICE_USER_POSTGRES}"
      - "POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}"
    healthcheck:
      test:
        - CMD-SHELL
        - "pg_isready -h localhost -p 5432 -U $${POSTGRES_USER} -d $${POSTGRES_DB}"
      interval: 20s
      timeout: 20s
      retries: 10
  redis:
    image: "redis:alpine"
    restart: always
    command:
      - sh
      - "-c"
      - 'redis-server --requirepass "${SERVICE_PASSWORD_REDIS}"'
    volumes:
      - "redis:/data"
    environment:
      - "REDIS_PASSWORD=${SERVICE_PASSWORD_REDIS}"
    healthcheck:
      test:
        - CMD-SHELL
        - "redis-cli -h localhost -p 6379 -a $${REDIS_PASSWORD} ping"
      interval: 20s
      timeout: 20s
      retries: 10
  baileys-api:
    image: "ghcr.io/fazer-ai/baileys-api:latest"
    pull_policy: always
    volumes:
      - "storage:/app/storage"
    environment:
      - NODE_ENV=production
      - "REDIS_URL=redis://redis:6379"
      - "REDIS_PASSWORD=${SERVICE_PASSWORD_REDIS}"
      - "LOG_LEVEL=${LOG_LEVEL:-debug}"
      - "BAILEYS_LOG_LEVEL=${BAILEYS_LOG_LEVEL:-error}"
      - "BAILEYS_PROVIDER_DEFAULT_API_KEY=${SERVICE_PASSWORD_64_DEFAULTAPIKEY}"
    command:
      - sh
      - "-c"
      - "bun manage-api-keys create user ${SERVICE_PASSWORD_64_DEFAULTAPIKEY} && bun start"
    restart: always
    healthcheck:
      test:
        - CMD-SHELL
        - "wget -qO- http://localhost:3025/status"
      interval: 20s
      timeout: 20s
      retries: 10

7

Open the Super Admin Dashboard

Open your Chatwoot Super Admin page and navigate to "Settings".

8

Copy the Installation Identifier

On the Settings page, copy the Installation Identifier. You will use this to register a new instance on the fazer.ai dashboard with the "Attach" button on your license.

9

Validate Your Instance

After registering your instance, click "Refresh" on the fazer.ai subscription section in the Super Admin dashboard to validate your instance.

10

Enable Features for Accounts

Go to the Accounts page, click "Edit" on an account you'd like to enable the new features for, scroll down and enable the features in the "fazer.ai Features" section. After clicking "Update Account", the new features will be available for the selected account.

Any issues? suporte@fazer.ai