×

开源企业级 IM!一款高颜值的即时通讯聊天应用!

hqy hqy 发表于2025-12-06 01:12:37 浏览17 评论0

抢沙发发表评论

今天,再给大家推荐一款高颜值的即时通讯聊天应用,轻量且高性能!

项目介绍

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

「功能特色」

  • 「全局特性」:消息加密传输,永久存储,并支持多端同步(App、Web、PC 等)
  • 「通讯功能」:支持单聊和群聊,具备消息撤回功能,群聊人数无限制,支持群机器人
  • 「用户关系管理」:支持好友搜索、添加,可设置免打扰、置顶等,支持通用的群管理功能(群设置配置、成员管理等)
  • 「后台管理」:提供了完善的后台管理功能,方便管理员对系统进行全方位的运营和维护,涵盖用户管理、群组管理、消息管理、应用配置等多个维度
  • 「多平台支持」:提供 Web/PC 端、Android、iOS、Windows、MAC 端等多端体验

「项目架构」

图片

快速上手

TangSengDaoDaoServer 支持使用 Docker 部署,可通过 Docker Compose 快速部署。

「环境要求」

  • Linux系统(建议配置 2 核 8G)
  • Docker
  • Docker Compose

1、创建安装目录

mkdir -p /data/software/tsdd

cd /data/software/tsdd

2、在 tsdd 下创建 docker-compose.yaml 文件

vi docker-compose.yaml

3、复制如下内容到 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 2>&1"
      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_MYSQLADDR=root:${MYSQL_ROOT_PASSWORD}@tcp(mysql)/${MYSQL_DATABASE}?charset=utf8mb4&parseTime=true&loc=Local
      -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_URL=http://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_URL=http://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-plugin=mysql_native_password
    healthcheck:
      test:["CMD","mysqladmin","ping","-h","localhost"]
    volumes:
      -./mysqldata:/var/lib/mysql
    environment:
      -TZ=Asia/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:8080


4、创建配置文件 .env

vi .env

5、复制如下内容到 .env 文件中,并保存

EXTERNAL_IP 必须修改为服务器的 IP 地址,其他参数都可使用默认值。

# ######### 基础配置 #########

# 服务器的对外 IP 地址
EXTERNAL_IP=xxx.xxx.xxx.xxx

# MySQL root 用户的密码
MYSQL_ROOT_PASSWORD=Aa1234567
# MySQL 默认数据库名字
MYSQL_DATABASE=im

# ######### Minio文件服务配置 #########

# Minio 文件服务的用户名
MINIO_ROOT_USER=minio
# Minio 文件服务的密码
MINIO_ROOT_PASSWORD=Aa1234567

######### WuKongIM相关的配置 #########

# 模式 debug or release
WK_MODE=release  
# 开启最近会话服务端维护
WK_CONVERSATION_ON=true  
# 业务服务的grpc地址
WK_WEBHOOK_GRPCADDR=tangsengdaodaoserver:6979 
# 业务服务的数据源地址
WK_DATASOURCE_ADDR=http://tangsengdaodaoserver:8090/v1/datasource 
# 开启频道信息同步
WK_DATASOURCE_CHANNELINFOON=true 
# 开启token认证
WK_TOKENAUTHON=true  
# 是否关闭个人白名单功能,默认是开启的,如果关闭发送消息将不做好友关系的判断
WK_WHITELISTOFFOFPERSON=false 
# JWT的密钥
WK_JWT_SECRET=wk_secret_123
# 默认安装搜索插件
WK_PLUGIN_INSTALL=https://gitee.com/WuKongDev/plugins/releases/download/latest/wk.plugin.search-${os}-${arch}.wkp

######### TangSengDaoDao的配置 #########

# 模式 debug or release
TS_MODE=release  
# wukongim的内网访问地址
TS_WUKONGIM_APIURL=http://wukongim:5001
# Redis 连接地址
TS_DB_REDISADDR=redis:6379
# 验证码,如果此值不为空,则使用此值作为验证码,为空则使用短信提供商发送的验证码
TS_SMSCODE=123456
# 使用文件服务的类型
TS_FILESERVICE=minio
# 默认头像获取地址
TS_AVATAR_DEFAULTBASEURL=https://api.dicebear.com/8.x/avataaars/png?seed={avatar}&size=180 # 备用https://robohash.org/{avatar}
# 唐僧叨叨后台管理系统的管理员密码,用户名为 superAdmin,可随机填写(至少8位)
TS_ADMINPWD=admin1234567
# 唐僧叨叨的文件服务地址
TS_MINIO_UPLOADURL=http://minio:9000

6、运行启动

docker-compose up -d

7、运行启动成功后,浏览器访问


  • Web 端
http://{IP/域名}:52

登录手机号和密码可通过后台「新增用户」进行注册。

  • 后台管理端
http://{IP/域名}:52

默认用户名/密码:superAdmin/admin1234567(密码为配置文件 TS_ADMINPWD 参数值).

功能体验

聊天界面

  • 「私聊」

图片

  • 「群聊」

图片

  • 「暗黑主题」

图片

  • 「通讯录」

图片

  • 「个人信息」

图片

后台管理

  • 「首页」

图片

  • 「用户列表」

图片

  • 「好友列表」

图片

  • 「聊天记录」

图片

  • 「群列表」

图片

  • 「违禁词」

图片

  • 「设置」

图片

TangSengDaoDaoServer 的开源特性意味着可以私有化部署,完全掌控数据安全,避免信息泄露风险,同时可根据业务需求进行定制开发。如果你正在寻找一款可靠的企业级即时通讯应用,不妨试试~

项目地址:https://github.com/TangSengDaoDao/TangSengDaoDaoServer


打赏

本文链接:https://www.jingber.cn/post/3864.html 转载需授权!

分享到:

群贤毕至

访客

您的IP地址是: