目錄
一、系統版本要求:
二、部署步驟
2.1 安裝docker 和docker-compose
2.2 準備docker-compose.yaml
2.3 初始化數據庫
2.4 安裝nginx
2.6 啟動項目
三、使用教程
一、系統版本要求:
- linux ubuntu 22.04+
- 2核4G 40GB(或以上)
- 公網ip一個
- 端口白名單:80、443(0.0.0.0/0)
二、部署步驟
2.1 安裝docker 和docker-compose
apt update && apt install docker.io -y
wget https://github.com/docker/compose/releases/download/v2.30.1/docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 docker-compose && chmod +x ./docker-compose && mv ./docker-compose /usr/bin/
2.2 準備docker-compose.yaml
mkdir /data/chatwoot
vim /data/chatwoot/docker-compose.yaml
將下面配置文件復制到/docker-compose.yaml
version: '3'services:base: &baseimage: chatwoot:latestenv_file: .env ## Change this file for customized env variablesvolumes:- storage_data:/app/storagerails:<<: *basedepends_on:- postgres- redisports:- '127.0.0.1:3000:3000'environment:- NODE_ENV=production- RAILS_ENV=production- INSTALLATION_ENV=dockerentrypoint: docker/entrypoints/rails.shcommand: ['bundle', 'exec', 'rails', 's', '-p', '3000', '-b', '0.0.0.0']restart: alwayssidekiq:<<: *basedepends_on:- postgres- redisenvironment:- NODE_ENV=production- RAILS_ENV=production- INSTALLATION_ENV=dockercommand: ['bundle', 'exec', 'sidekiq', '-C', 'config/sidekiq.yml']restart: alwayspostgres:image: pgvector:pg16restart: alwaysports:- '0.0.0.0:5432:5432'volumes:- postgres_data:/var/lib/postgresql/dataenvironment:- POSTGRES_DB=chatwoot- POSTGRES_USER=postgres# Please provide your own password.- POSTGRES_PASSWORD=qishuo&_123redis:image: redis:alpinerestart: alwayscommand: ["sh", "-c", "redis-server --requirepass \"$REDIS_PASSWORD\""]env_file: .envvolumes:- redis_data:/dataports:- '127.0.0.1:6379:6379'volumes:storage_data:postgres_data:redis_data:
?如果國內下載失敗,可以嘗試使用阿里、清華源
docker-compose up -d
2.3 初始化數據庫
注意,容器名可能不叫chatwoot-rails-1,docker ps查看容器名確認后執行
docker-compose run --rm chatwoot-rails-1 bundle exec rails db:chatwoot_prepare
2.4 安裝nginx
目的是暴露到外網
apt install nginx
配置下面的nginx文件,注意修改server_name xxxx 為自己的域名
vim /etc/nginx/conf.d/chatwoot.conf
server {server_name xxxx;# Point upstream to Chatwoot App Serverset $upstream 127.0.0.1:3000;# Nginx strips out underscore in headers by default# Chatwoot relies on underscore in headers for API# Make sure that the config is set to on.underscores_in_headers on;location /.well-known {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; # Optionalproxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_http_version 1.1;proxy_buffering off;client_max_body_size 0;proxy_read_timeout 36000s;proxy_redirect off;}listen 80;
}
加載nginx配置
nginx -t && nginx -s reload
配置證書,最后一步需要填寫你自己的域名
apt install certbot
apt-get install python3-certbot-nginx
mkdir -p /var/www/ssl-proof/chatwoot/.well-known
certbot --webroot -w /var/www/ssl-proof/chatwoot -d 你的域名 -i nginx
2.6 啟動項目
訪問域名 https://你的域名
三、使用教程
待更新