款基于 GO 开发,轻量级,高性能,且重安全专注于私有化部署的开源即时通讯系统。

款基于 GO 开发,轻量级,高性能,且重安全专注于私有化部署的开源即时通讯系统。 全局特性消息加密传输永久存储并支持多端同步App、Web、PC 等通讯功能支持单聊和群聊具备消息撤回功能群聊人数无限制支持群机器人用户关系管理支持好友搜索、添加可设置免打扰、置顶等支持通用的群管理功能群设置配置、成员管理等后台管理提供了完善的后台管理功能方便管理员对系统进行全方位的运营和维护涵盖用户管理、群组管理、消息管理、应用配置等多个维度多平台支持提供 Web/PC 端、Android、iOS、Windows、MAC 端等多端体验项目架构快速上手TangSengDaoDaoServer支持使用 Docker 部署可通过 Docker Compose 快速部署。环境要求Linux系统建议配置 2 核 8GDockerDocker Compose1、创建安装目录mkdir -p /data/software/tsdd cd /data/software/tsdd2、在tsdd下创建docker-compose.yaml文件vi docker-compose.yaml3、复制如下内容到docker-compose.yaml文件中并保存version: 3.1 services: wukongim: # 唐僧叨叨通讯服务悟空IM image: registry.cn-shanghai.aliyuncs.com/wukongim/wukongim:v2 restart: always ports: # - 5001:5001 # http api端口业务端调用仅限内网开放 - 5100:5100 # tcp长连接端口外网开放 - 5200:5200 # websocket端口外网开放 - 5300:5300 # 监控端口 volumes: - ./wukongim:/root/wukongim env_file: - .env environment: - WK_EXTERNAL_IP${EXTERNAL_IP} tangsengdaodaoserver: # 唐僧叨叨的业务服务 image: registry.cn-shanghai.aliyuncs.com/wukongim/tangsengdaodaoserver:v1.5 restart: always command: api healthcheck: test: wget -q -Y off -O /dev/null http://localhost:8090/v1/ping /dev/null 21 interval: 10s timeout: 10s retries: 3 depends_on: - redis - mysql - wukongim ports: - 8090:8090 volumes: - ./data:/home/tsdddata - ./conf:/home/configs # 如果需要使用yaml配置在当前目录下创建tsdd/configs目录并新建tsdd.yaml配置文件注意配置生效优先级environment高于配置文件如果你配置了environment将覆盖tsdd.yaml的配置项 env_file: - .env environment: - TS_DB_MYSQLADDRroot:${MYSQL_ROOT_PASSWORD}tcp(mysql)/${MYSQL_DATABASE}?charsetutf8mb4parseTimetruelocLocal - TS_EXTERNAL_IP${EXTERNAL_IP} - TS_FILESERVICE${TS_FILESERVICE} - TS_MINIO_ACCESSKEYID${MINIO_ROOT_USER} - TS_MINIO_SECRETACCESSKEY${MINIO_ROOT_PASSWORD} tangsengdaodaoweb: # 唐僧叨叨的web服务 image: registry.cn-shanghai.aliyuncs.com/wukongim/tangsengdaodaoweb:latest restart: always environment: - API_URLhttp://tangsengdaodaoserver:8090/ ports: - 82:80 depends_on: tangsengdaodaoserver: condition: service_healthy tangsengdaodaomanager: # 唐僧叨叨的后台管理系统 image: registry.cn-shanghai.aliyuncs.com/wukongim/tangsengdaodaomanager:latest restart: always environment: - API_URLhttp://tangsengdaodaoserver:8090/ ports: - 83:80 depends_on: tangsengdaodaoserver: condition: service_healthy minio: # minio文件管理服务 image: registry.cn-shanghai.aliyuncs.com/wukongim/minio:RELEASE.2023-07-18T17-49-40Z # minio/minio:RELEASE.2023-07-18T17-49-40Z expose: - 9000 - 9001 command: server /data --console-address :9001 ports: - 9000:9000 - 9001:9001 environment: - MINIO_ROOT_USER${MINIO_ROOT_USER} - MINIO_ROOT_PASSWORD${MINIO_ROOT_PASSWORD} healthcheck: test: [CMD, curl, -f, http://localhost:9000/minio/health/live] interval: 30s timeout: 20s retries: 3 volumes: - ./miniodata:/data mysql: # mysql数据库 image: registry.cn-shanghai.aliyuncs.com/wukongim/mysql:8.0.33 # mysql:8.0.33 command: --default-authentication-pluginmysql_native_password healthcheck: test: [CMD, mysqladmin ,ping, -h, localhost] volumes: - ./mysqldata:/var/lib/mysql environment: - TZAsia/Shanghai - MYSQL_ROOT_PASSWORD${MYSQL_ROOT_PASSWORD} - MYSQL_DATABASE${MYSQL_DATABASE} redis: # redis image: registry.cn-shanghai.aliyuncs.com/wukongim/redis:7.2.3 # redis:7.2.3 restart: always healthcheck: test: [CMD, redis-cli, ping] interval: 1s timeout: 3s retries: 30 adminer: # mysql web管理工具 调试用为了安全生产不要打开 image: registry.cn-shanghai.aliyuncs.com/wukongim/adminer:latest # adminer:latest ports: - 8306:80804、创建配置文件.envvi .env5、复制如下内容到.env文件中并保存EXTERNAL_IP必须修改为服务器的 IP 地址其他参数都可使用默认值。# ######### 基础配置 ######### # 服务器的对外 IP 地址 EXTERNAL_IPxxx.xxx.xxx.xxx # MySQL root 用户的密码 MYSQL_ROOT_PASSWORDAa1234567 # MySQL 默认数据库名字 MYSQL_DATABASEim # ######### Minio文件服务配置 ######### # Minio 文件服务的用户名 MINIO_ROOT_USERminio # Minio 文件服务的密码 MINIO_ROOT_PASSWORDAa1234567 ######### WuKongIM相关的配置 ######### # 模式 debug or release WK_MODErelease # 开启最近会话服务端维护 WK_CONVERSATION_ONtrue # 业务服务的grpc地址 WK_WEBHOOK_GRPCADDRtangsengdaodaoserver:6979 # 业务服务的数据源地址 WK_DATASOURCE_ADDRhttp://tangsengdaodaoserver:8090/v1/datasource # 开启频道信息同步 WK_DATASOURCE_CHANNELINFOONtrue # 开启token认证 WK_TOKENAUTHONtrue # 是否关闭个人白名单功能默认是开启的如果关闭发送消息将不做好友关系的判断 WK_WHITELISTOFFOFPERSONfalse # JWT的密钥 WK_JWT_SECRETwk_secret_123 # 默认安装搜索插件 WK_PLUGIN_INSTALLhttps://gitee.com/WuKongDev/plugins/releases/download/latest/wk.plugin.search-${os}-${arch}.wkp ######### TangSengDaoDao的配置 ######### # 模式 debug or release TS_MODErelease # wukongim的内网访问地址 TS_WUKONGIM_APIURLhttp://wukongim:5001 # Redis 连接地址 TS_DB_REDISADDRredis:6379 # 验证码如果此值不为空则使用此值作为验证码为空则使用短信提供商发送的验证码 TS_SMSCODE123456 # 使用文件服务的类型 TS_FILESERVICEminio # 默认头像获取地址 TS_AVATAR_DEFAULTBASEURLhttps://api.dicebear.com/8.x/avataaars/png?seed{avatar}size180 # 备用https://robohash.org/{avatar} # 唐僧叨叨后台管理系统的管理员密码,用户名为 superAdmin可随机填写(至少8位) TS_ADMINPWDadmin1234567 # 唐僧叨叨的文件服务地址 TS_MINIO_UPLOADURLhttp://minio:9000