安装docker
1.首先,确保系统处于最新状态:
yum update
2.安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
3.添加 Docker 的官方 GPG 密钥:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4.安装 Docker CE(社区版):
yum install docker-ce
5.启动 Docker 服务
systemctl start docker
6.(可选)将 Docker 添加到开机启动项中:
systemctl enable docker
7.验证 Docker 是否正确安装:
docker --version
安装 Docker Compose
1.在 GitHub 上下载 Docker Compose 的最新版本:
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2.添加执行权限:
chmod +x /usr/local/bin/docker-compose
3.创建软链接以便在任何位置使用 docker-compose 命令:
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
4.验证 Docker Compose 是否正确安装:
docker-compose version
安装git(如果有的话,就不用安装是为了下载chatwoot的代码。或者你的代码是从本地上传)
#更新系统软件包:
yum update
#安装 Git:
yum install git
#验证安装:
git --version
下载chatwoot到指定的目录(我这里是/opt/chatwoot)
cd /opt/chatwoot # 进入 chatwoot 目录
git clone https://github.com/chatwoot/chatwoot.git # 克隆 Chatwoot 存储库
配置chatwoot根据官方文档
下面显示官方的配置文档的链接
使用docker的配置链接https://www.chatwoot.com/docs/self-hosted/deployment/docker
主要是配置下面的这两个文件
注释说明:env.txt 是由原来的.env.example文件复制重命名而来的(需要指定一下如下图)
3338端口是服务器开放的端口指定到容器的端口(注意服务器的防火墙对于3338端口是否放行,阿里云服务器的话注意配置安全组)
需要用到里面的其他配置到.env里面去找有注释的,根据自己的需求配置
启动chatwoot(进入到chatwoot的目录下面进行执行命令)
#1.通过运行迁移来准备数据库。
docker compose run --rm rails bundle exec rails db:chatwoot_prepare
#2.启动并运行服务(后台)
docker compose up -d
#一般执行完成1和2以后程序就运行起来了
#其他命令
#停止命令停止在 docker-compose.yml 文件中定义的所有服务,然后删除相关的容器、网络和数据卷。这对于清理开发环境或停止运行的服务非常有用。
docker-compose down
#命令用于构建 Docker Compose 项目中的服务镜像,修改了Dockerfile 或者相关的构建上下文(build context)后,你需要运行 docker-compose build 来重新构建镜像。这个命令会重新构建所有的服务镜像,除非指定了特定的服务。
docker-compose build
完成上面的配置chatwoot就以及启动成功了,访问你配置的端口就可以查看注册页面
完成上面的步骤,虽然启动成功了,但是他是http的不是https的,需要来配置https,然后我使用的apche,还需要配置代理。我用的的是阿里云,在阿里云对应的域名里面去配置子域名,添加a记录。
然后http://chat.polaronsolar.com/这个就可以访问了。
然后再使用
https://letsencrypt.osfipin.com/ 这个网站去申请一个证书,申请完成之后https://chat.polaronsolar.com/这个就可以访问了
然后我是在apache里面配置的ssl,conf里面配置的证书,以及websocket。
最后好了。