当前位置:   article > 正文

Ubuntu Docker部署开源客户沟通平台ChatWoot

chatwoot

Chatwoot 是一款开源的多渠道客户支持平台,旨在帮助企业建立强大、高效的客户服务体系。以下是 Chatwoot 的一些主要特点和功能:

  1. 多渠道支持: Chatwoot 支持通过多种渠道与客户进行互动,包括实时聊天、电子邮件、社交媒体(如 Facebook 和 Twitter)等。
  2. 实时聊天: 提供实时聊天功能,使客服团队能够与客户实时互动,解决问题并提供支持。
  3. 帮助中心功能: Chatwoot 还提供强大的帮助中心功能,帮助企业创建和维护丰富的知识库,使客户能够自助获取信息,提高服务效率。
  4. 电子邮件集成: 可以集成多个电子邮件账户,使客服团队能够通过 Chatwoot 统一管理和回复客户的电子邮件。
  5. 自动化和工作流: 提供自动化工作流和规则引擎,帮助优化客户服务流程,提高效率。
  6. 开放源代码: Chatwoot 是开源软件,你可以自由查看、修改和定制其代码以满足特定需求。
  7. 多语言支持: 提供多语言支持,适应全球范围内的用户和客户。
  8. 团队协作: 支持多用户和团队协作,使团队成员能够协同工作,提供一致的客户支持。
  9. 跟踪和分析: 提供报告和分析工具,帮助你了解客户服务绩效,并采取相应的改进措施。

通过使用 Chatwoot,企业可以更好地管理和响应客户请求,提高客户满意度,同时保持对话历史记录,以更好地了解客户需求。

效果图
请添加图片描述

准备

  • Ubuntu
    • docker
    • docker compose

安装docker

apt-get update
apt-get upgrade
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
apt install docker-compose-plugin
  • 1
  • 2
  • 3
  • 4
  • 5

下载必须文件

cd ~
mkdir chatwoot
cd chatwoot
# 新建docker挂载的子目录
mkdir -p ./{postgres,redis,storage}
# env 环境变量文件
wget -O .env https://raw.githubusercontent.com/chatwoot/chatwoot/develop/.env.example
# docker-compose.yaml
wget -O docker-compose.yaml https://raw.githubusercontent.com/chatwoot/chatwoot/develop/docker-compose.production.yaml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

编辑.env

vim .env
  • 1

需要修改的环境变量:

  • SECRET_KEY_BASE : 可以用命令 openssl rand -base64 32 来生成;
  • FRONTEND_URL : 前端地址,根据实际情况填写,例如 http://127.0.0.1:3000,或具体ip,例如http://192.168.0.10:3000
  • HELPCENTER_URL : 帮助中心地址,可以和 FRONTEND_URL 一样
  • POSTGRES_PASSWORD: PostgresSQL 数据库密码,这个密码需要与 docker-compose.yaml 里的 PostgresSQL 密码一致

我的这些设置为(具体位置需要自行寻找):

SECRET_KEY_BASE=45t2G7OgWpfgvnsOgzwilYY9q5hd7DyxiJWk1YbCRyI=
FRONTEND_URL=http://192.168.0.10:3000
HELPCENTER_URL=http://192.168.0.10:3000
POSTGRES_PASSWORD=password
  • 1
  • 2
  • 3
  • 4

保存配置

编辑 docker-compose.yaml

vim docker-compose.yaml
  • 1
version: '3'

services:
  base: &base
    image: chatwoot/chatwoot:latest
    env_file: .env ## 环境变量
    volumes:
      - ./storage:/app/storage ## 挂载的路径

  rails:
    <<: *base
    depends_on:
      - postgres
      - redis
    ports:
      - 3000:3000
    environment:
      - NODE_ENV=production
      - RAILS_ENV=production
      - INSTALLATION_ENV=docker
    entrypoint: docker/entrypoints/rails.sh
    command: ['bundle', 'exec', 'rails', 's', '-p', '3000', '-b', '0.0.0.0']

  sidekiq:
    <<: *base
    depends_on:
      - postgres
      - redis
    environment:
      - NODE_ENV=production
      - RAILS_ENV=production
      - INSTALLATION_ENV=docker
    command: ['bundle', 'exec', 'sidekiq', '-C', 'config/sidekiq.yml']

  postgres:
    image: postgres:12
    restart: always
    ports:
      - 5432:5432
    volumes:
      - ./postgres:/var/lib/postgresql/data ## 挂载的路径
    environment:
      - POSTGRES_DB=chatwoot
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=password ## .env 里设置的 postgres 密码

  redis:
    image: redis:alpine
    restart: always
    command: ["sh", "-c", "redis-server --requirepass \"$REDIS_PASSWORD\""]
    env_file: .env
    volumes:
      - ./redis:/data ## 挂载的路径
    ports:
      - 6379:6379
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55

保存配置

通过运行迁移来准备数据库

# `docker compose` 是新版 cli 命令,如果执行不了,就换成 `docker-compose`
# 即 `docker-compose run --rm rails bundle exec rails db:chatwoot_prepare` 
docker compose run --rm rails bundle exec rails db:chatwoot_prepare
  • 1
  • 2
  • 3

会先拉取镜像,请确保网络正确,我已经拉取好了镜像,运行结果如下

ubuntu@ubuntu:~/chatwoot$ docker compose run --rm rails bundle exec rails db:chatwoot_prepare
[+] Creating 2/2
 ✔ Container chatwoot-postgres-1  Recreated                                                                                                                             0.1s
 ✔ Container chatwoot-redis-1     Recreated                                                                                                                             0.4s
[+] Running 2/2
 ✔ Container chatwoot-postgres-1  Started                                                                                                                               0.3s
 ✔ Container chatwoot-redis-1     Started                                                                                                                               0.4s
+ rm -rf /app/tmp/pids/server.pid
+ rm -rf '/app/tmp/cache/*'
+ echo 'Waiting for postgres to become ready....'
Waiting for postgres to become ready....
+ docker/entrypoints/helpers/pg_database_url.rb
+ export 'POSTGRES_PORT=5432'
+ PG_READY='pg_isready -h postgres -p 5432 -U postgres'
+ pg_isready -h postgres -p 5432 -U postgres
postgres:5432 - no response
+ sleep 2
+ pg_isready -h postgres -p 5432 -U postgres
postgres:5432 - accepting connections
+ echo 'Database ready to accept connections.'
Database ready to accept connections.
+ bundle install
Bundle complete! 125 Gemfile dependencies, 247 gems now installed.
Gems in the groups 'development' and 'test' were not installed.
Bundled gems are installed into `/gems`
+ BUNDLE='bundle check'
+ bundle check
The Gemfile's dependencies are satisfied
+ exec bundle exec rails db:chatwoot_prepare
/gems/ruby/3.2.0/gems/gmail_xoauth-0.4.2/lib/gmail_xoauth/imap_xoauth_authenticator.rb:31: warning: Net::IMAP.add_authenticator is deprecated.  Use Net::IMAP::SASL.add_authenticator instead.
/gems/ruby/3.2.0/gems/gmail_xoauth-0.4.2/lib/gmail_xoauth/imap_xoauth2_authenticator.rb:24: warning: Net::IMAP.add_authenticator is deprecated.  Use Net::IMAP::SASL.add_authenticator instead.
fatal: not a git repository (or any of the parent directories): .git
Created database 'chatwoot_production'
ubuntu@ubuntu:~/chatwoot$
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

当看到 Created database 'chatwoot_production' 即表示创建成功,继续执行下面的命令

# 需要先删除数据库容器
docker compose down

# 一键启动
docker compose up -d
  • 1
  • 2
  • 3
  • 4
  • 5
ubuntu@ubuntu:~/chatwoot$ docker compose down
[+] Running 6/6
 ✔ Container chatwoot-sidekiq-1   Removed                                                                                                                               0.0s
 ✔ Container chatwoot-base-1      Removed                                                                                                                               0.0s
 ✔ Container chatwoot-rails-1     Removed                                                                                                                               0.0s
 ✔ Container chatwoot-redis-1     Removed                                                                                                                               0.0s
 ✔ Container chatwoot-postgres-1  Removed                                                                                                                               0.0s
 ✔ Network chatwoot_default       Removed
ubuntu@ubuntu:~/chatwoot$ docker compose up -d
[+] Running 6/6
 ✔ Network chatwoot_default       Created                                                                                                                               0.1s
 ✔ Container chatwoot-postgres-1  Started                                                                                                                               0.1s
 ✔ Container chatwoot-redis-1     Started                                                                                                                               0.0s
 ✔ Container chatwoot-base-1      Started                                                                                                                               0.1s
 ✔ Container chatwoot-sidekiq-1   Started                                                                                                                               0.1s
 ✔ Container chatwoot-rails-1     Started                                                                                                                               0.0s
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

打开网页

请添加图片描述
正确输入信息后登录
请添加图片描述
设置中文:Settings --> Account Setting --> Site language ,下拉找到简体中文
请添加图片描述
点右上角的绿色按钮 Update settings 保存设置
请添加图片描述

请添加图片描述
正确填写信息后创建

请添加图片描述
请添加图片描述
生成 script 代码

请添加图片描述

<script>
      (function(d,t) {
        var BASE_URL="http://192.168.0.10:3000";
        var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
        g.src=BASE_URL+"/packs/js/sdk.js";
        g.defer = true;
        g.async = true;
        s.parentNode.insertBefore(g,s);
        g.onload=function(){
          window.chatwootSDK.run({
            websiteToken: 'ERpVa8q5916PQqnEbNNNH3GS',
            baseUrl: BASE_URL
          })
        }
      })(document,"script");
    </script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

script 标签内容添加在index.htmlhead 标签内

效果如下:
请添加图片描述
客服:请添加图片描述

我的博客,欢迎前往: https://blog.ivwv.site/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/433495
推荐阅读
相关标签
  

闽ICP备14008679号