一、介绍rocket.chat是一款开源的社交软件,可以直接在网页端使用,也可以下载APP(安卓、IOS),Windows,MacOS)主要功能:群聊、直接交流、私聊群、桌面通知、媒体嵌入、链接预览、文件上传、语音/视频聊天、截图等,还支持实时翻译,实现自动化用户之间的通信实时消息转换。也可以作为公司内部的聊天平台,所有数据都在自己的服务器上。官网官方github地址二、下载、安装、安装有几种方式。这里,我们使用docker-compose容器安装方式,几分钟就可以搭建完成。前提是已经安装了docker和docker-compose。参考官方文档:https://docs.rocket.chat/#创建目录mkdirrocketchat#进入目录cdrocketchat#获取官方docker-compose.yml文件curl-Lhttps://go.rocket.chat/i/docker-compose.yml-O以下是获取到的官方docker-compose.yml,默认端口3000,使用mongo数据库,根据需要更改。我这里什么都不用改,直接用就行了。版本:'2'服务:rocketchat:图片:registry.rocket.chat/rocketchat/rocket.chat:最新命令:>bash-c"foriin`seq130`;donodemain.js&&s=$$?&&break||s=$$?;echo\"尝试了$$i次。等待5秒...\";睡眠5;完成;(退出$$s)"重新启动:除非停止卷:-./uploads:/app/uploads环境:-PORT=3000-ROOT_URL=http://localhost:3000-MONGO_URL=mongodb://mongo:27017/rocketchat-MONGO_OPLOG_URL=mongodb://mongo:27017/local-REG_TOKEN=${REG_TOKEN}#-MAIL_URL=smtp://smtp.email#-HTTP_PROXY=http://proxy.domain.com#-HTTPS_PROXY=http://proxy.domain.com取决于:-mongo端口:-3000:3000标签:-“traefik.backend=rocketchat”-“traefik.frontend.rule=Host:your.domain.tld"mongo:image:mongo:4.0restart:unless-stoppedvolumes:-./data/db:/data/db#-./data/dump:/dumpcommand:mongod--smallfiles--oplogSize128--replSetrs0--storageEngine=mmapv1labels:-"traefik.enable=false"#这个容器的作业只是运行命令来初始化副本集。#它将运行命令并删除自己(它不会继续运行)mongo-init-replica:image:mongo:4.0command:>bash-c"foriin`seq130`;domongomongo/rocketchat--eval\"rs.initiate({_id:'rs0',members:[{_id:0,host:'localhost:27017'}]})\"&&s=$$?&&break||s=$$?;echo\"尝试了$$i次。等待5秒...\";睡眠5;完成;(退出$$s)"depends_on:-mongo#traefik:#image:traefik:latest#restart:unless-stopped#command:>#traefik#--docker#--acme=true#--acme.domains='your.domain.tld'#--acme.email='your@email.tld'#--acme.entrypoint=https#--acme.storagefile=acme.json#--defaultentrypoints=http#--defaultentrypoints=https#--entryPoints='Name:http地址::80Redirect.EntryPoint:https'#--entryPoints='Name:httpsAddress::443TLS.Certificates:'#ports:#-80:80#-443:443#volumes:#-/var/run/docker.sock:/var/run/docker.sock下载完成后,直接运行sudodocker-composeup-d注意,打开3000端口或者关闭防火墙,如果你是公有云服务器,记得修改你的安全组!浏览器输入IP:3000,即可访问3.登录使用第一次登录,需要创建管理员相关信息,组织公司相关信息(不重要),只要邮箱有效即可。然后输入您的电子邮件以确认链接以进行验证。创建完成后,您可以登录账户或创建一个新的普通用户。当然,相关设置只能由第一个管理员账号进行设置。登录,默认进入#general公共频道,可以自己创建频道拉人。使用管理员帐户研究其余功能。四、SSL配置和nginx反向代理rocket.chat有官方APP,可以直接在相关应用商店下载安装。但是可能是app连接服务器有问题,导致连接不上。如下:SSL配置问题一:Androidapp必须要求SSL连接,即https://,所以要么在服务器上使用自签名,要么使用域名提供商的ssl,比如Cloudflare,配置域名自动免费签证。为简单起见,为自己的IP配置域名并启用SSL即可。易于自己设置。Cloudflare配置好域名后,记得开启“始终使用HTTPS”功能。注意:如果直接配置域名,请将你的docker映射端口3000改为80端口,否则不会生效,即将docker-compose.yml中的ports端口3000:3000改为80:3000nginx反向proxy提交代理后,app提示websocket已被禁止在本服务器上使用nginx反向代理。情况:其他安装方式无法更改3000端口(rocket.chat默认端口)。当docker服务被其他nginx的80端口占用时,80端口不能更改,docker的3000端口被其他nginx反向代理。或者为了服务器安全,使用其他服务器nginx反向代理到真实服务器。如果直接配置如下:server{listen80;server_nameywbj.cc;位置/{proxy_passhttp://localhost:3000;proxy_set_header主机$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;}}App连接显示会提示:websockethasbeenbannedonthisserver。原因是nginx需要开启websocket,加上这两行重要的配置即可。proxy_set_headerUpgrade$http_upgrade;proxy_set_headerConnection$connection_upgrade;更换后配置如下:map$http_upgrade$connection_upgrade{defaultupgrade;''关闭;}服务器{听80;server_nameywbj.cc;位置/{proxy_passhttp://localhost:3000;proxy_set_header主机$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_header升级$http_upgrade;proxy_set_header连接$connection_upgrade;}}再次连接app成功登录。
