docker及源码部署

小苹果IM部署文档

一、准备工作

注意事项 详细说明
运行环境 2台配置4核CPU 内存16G 硬盘SSD 240G以上,带宽100M
操作系统:
a服务器Centos8.0 1台,root用户
b服务器Ubuntu 20.04 1台,root用户
图片视频文件存储 支持阿里oss/本地存储
https/wss协议 1. 需申请域名或者子域名(web im端登录注册及im 服务端使用)域名解析
api.xxx.com 接口 解析到a服
im.xxx.com 通讯 解析到a服
web.xxx.com 电脑端 解析到a服
2.file.xxx.com 上传 解析到a服
3. 管理后台子域名,seo.xxx.com 管理后台 解析到a服
4. live.xxx.com 解析到b服务器web.xx.xx,部署nginx,并配置证书。
离线推送(app被杀死或未启动时推送) 国内申请申请厂商通道以及个推,建议提前申请;海外申请firebase;
苹果开发者账号 如需打包、上架,请自行申请账号
手机验证码服务 请自行申请阿里云,建议提前申请
组织架构 组织架构模块
机器资源 如果用户量小于10万,可用2台配置4核CPU 内存16G 硬盘SSD 240G以上,带宽100M即可
logo 1024 x 1024png
软著 如需上架国内市场,提前准备软著
管理后台 部署nginx管理后台


二、docker-compose一键部署

IM服务机环境下的组件部署,可以通过docker-compose一键部署,本项目提供批处理文件可省掉很多繁琐的安装过程,上传到/opt目录下输入如下命令:

sh start.sh

进入小苹果IM-Server项目后

1.修改c3p0.properties


# [DB connect url]
#microsoft JDBC driver1.2 URL
c3p0.jdbcUrl=jdbc:mysql://127.0.0.1:3306/数据库名?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&&serverTimezone=Asia/Shanghai
#MySQL JDBC driver
c3p0.driverClass=com.mysql.cj.jdbc.Driver
							
verificationCode
# [DB username for MySQL]
c3p0.user=root
c3p0.password=数据库密码
							
						

2.修改IM配置

base_conf.properties 一般不需要修改信息。


############################# IM实时通道的基本配置
#IM的UDP长连接服务的监听端口号(修改此端口号,则客户端中连接的服务端端口号,也要相应修改为本配置值)
IM_SERVER_UDP_LISTENNING_PORT=9903
#IM的TCP长连接服务的监听端口号(修改此端口号,则客户端中连接的服务端端口号,也要相应修改为本配置值)
IM_SERVER_TCP_LISTENNING_PORT=9903
#IM的是否开启UDP协议支持,true表示开启、false表示关闭,默认true(如您不知此为何物,请始终设为true即可)
IM_SERVER_UDP_SUPPORT=true
#IM的是否开启TCP协议支持,true表示开启、false表示关闭,默认true(如您不知此为何物,请始终设为true即可)
IM_SERVER_TCP_SUPPORT=true



############################# 其它配置
#自动定期转储过期的聊天记录、离线消息的扫描时间间隔(单位:毫秒):目前定期扫描间隔时间是1天
AUTO_TIMING_RESTORE_MESSAGES_INTERVAL=86400000
#聊天记录、离线消息的超期时长(单位:秒):目前超期时间是15天,及意味着过了这个期限用户还未读就让它超期自动转储
AUTO_TIMING_RESTORE_MESSAGES_TIMEOUT=1296000
IP_ADDRESS=aaslslasdjk							
							
						

3.构建工件,生成war包部署并启动。

上传apache-tomcat-9.0.45.tar.gz到/opt/解压文件并改名


cd /opt/
tar -zxvf apache-tomcat-9.0.45.tar.gz
mv apache-tomcat-9.0.45 tomcat							
						

上传war到/opt/tomcat/webapps中 转到目录 启动IM服务端 端口8080可访问


cd /opt/tomcat/bin
./startup.sh							
						

三、端口开放及访问路由

如果按照(五)做了nginx配置,仅开放443和80端口即可。如果未配置nginx,则开发10001-10010端口即可,需要注意的时候访问路径有调整,具体查看下表的对应关系。

a服务器开放TCP端口


3306(布署完后关闭)6379 9903 80 880-890

b服务器开放端口


b服务器开放端口:UDP10000-20000 TCP80
设置开机启用防火墙:systemctl enable firewalld.service
启动防火墙:systemctl start firewalld
查看防火墙状态:firewall-cmd --state
重新加载配置:firewall-cmd --reload
查看开放的端口:firewall-cmd --list-ports

音视频通话


sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10000/udp
sudo ufw allow 22/tcp
sudo ufw allow 3478/udp
sudo ufw allow 5349/tcp