使用Docker安装Chatwoot,让你不错过任何一个客户咨询

使用Docker安装Chatwoot,让你不错过任何一个客户咨询
2024年4月16日
Share

如果你正在寻找一个开源的在线聊天工具,那么Chatwoot可能是你的理想选择。Chatwoot提供了一个能够帮助你与客户进行交流并管理客户关系的平台。本教程将指导你如何通过Docker在自己的服务器上安装Chatwoot,让你快速启动并运行这个功能强大的工具,让你不会错失任何一个询盘和客户。重点是开源的,你也不会当心客户资料泄露等风险。

准备工作

在开始安装之前,请确保你的系统满足以下基本要求,安装最新的docker环境

# example in ubuntu
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   //最新的docker compose 以插件的形式安装

下载所需文件

# Download the env file template
wget -O .env https://raw.githubusercontent.com/chatwoot/chatwoot/develop/.env.example
# Download the Docker compose template
wget -O docker-compose.yaml https://raw.githubusercontent.com/chatwoot/chatwoot/develop/docker-compose.production.yaml

这里需要调整 .env 和 docker-compose.yaml  的几个地方

nano .env
SECRET KEY BASE=45t2G70gWpfgvns0gzwilyy9q5hd7DyxiJwk1YbCRyI  //非必须设置,可以用命令 openssl rand -base64 32 来生成
FRONTEND URL=http://127.0.0.1:3000   //指定本机地址或者外网地址
HELPCENTER URL=http://127.0.0.1:3000  //非必须设置
POSTGRES PASSWORD=password   //设置密码要同compose 文件一致

修改docker-compose.yaml 配置文件,其他地方可以都不用动,只需要修改POSTGRES_PASSWORD 密码

nano docker-compose.yaml

  postgres:
    image: postgres:12
    restart: always
    ports:
      - '127.0.0.1:5432:5432'
    volumes:
      - /data/postgres:/var/lib/postgresql/data   //绝对路径,也可以修改成相对路径的写法,./
    environment:
      - POSTGRES_DB=chatwoot
      - POSTGRES_USER=postgres
      # Please provide your own password.
      - POSTGRES_PASSWORD=password    //修改成和.env 保持一致

运行准备数据库

docker compose run --rm rails bundle exec rails db:chatwoot_prepare

启动创建容器

docker compose up -d

这时候就已经安装完成了,但是注意我们的端口只是绑定了本机,只能通过本机访问,所以你无法通过你的域名或者外网IP+端口访问项目,如果要验证安装是否正常工作,请尝试 curl -I localhost:3000/api 查看它是否返回 200,我使用nginx proxy manager 来反向代理端口,修改下compose 配置文件,加上npm的镜像

  nginx-proxy-manager:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: npm
    restart: always
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./npm-data:/data
      - ./letsencrypt:/etc/letsencrypt

再次运行创建容器,访问npm 面板设置