前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NAS轻松部署自己的即时通讯—唐僧叨叨,八年时间打造 - 熊猫不是猫QAQ

NAS轻松部署自己的即时通讯—唐僧叨叨,八年时间打造 - 熊猫不是猫QAQ

作者头像
熊猫不是猫
发布2023-08-10 16:15:57
5290
发布2023-08-10 16:15:57
举报

前言

该项目为群友提供让我折腾一下。项目名字很有趣,叫唐僧叨叨。一款非微信专家,非腾讯专家,历时八年时间打造的运营级别的开源即时通讯聊天软件,采用的是WuKongIM提供通讯动力。看介绍还是蛮不错的,但还是有很多雷区,这些我不提,先跟着熊猫的节奏部署一下看看效果吧!

部署

项目部署很简单,而且作者也给到了部署方法,熊猫也只是将就着方法换成NAS部署的形式。按照作者的方式,我们首先需要在docker文件夹中新建一个tsdd文件夹,随后在该文件下新建一个docker-compose.yaml文件,文件内容按照自己情况更改:

代码语言:javascript
复制
version: '3'
services:
  wukongim:  # 唐僧叨叨通讯服务(悟空IM)
    image: registry.cn-shanghai.aliyuncs.com/wukongim/wukongim:latest
    restart: always
    ports:
      # - "5010:5001" # http api端口(业务端调用,仅限内网开放) 
      - "5100:5100"  # tcp长连接端口(外网开放)
      - "5200:5200" # websocket端口(外网开放)
      - "5300:5300" # 监控端口
    volumes:
      - ./wukongim:/root/wukongim
    environment:
      - WK_MODE=${WK_MODE}
      - WK_EXTERNAL_IP=${EXTERNAL_IP}
      - WK_CONVERSATION_ON=true
      - WK_WEBHOOK_GRPCADDR=tangsengdaodaoserver:6979
      - WK_DATASOURCE_ADDR=http://tangsengdaodaoserver:8090/v1/datasource
      - WK_DATASOURCE_CHANNELINFOON=true
      - WK_TOKENAUTHON=true  
  tangsengdaodaoserver:  # 唐僧叨叨的业务服务
    image: registry.cn-shanghai.aliyuncs.com/wukongim/tangsengdaodaoserver:latest
    restart: always
    command: "api"
    healthcheck:
      test: "wget -q -Y off -O /dev/null http://localhost:8095/v1/ping > /dev/null 2>&1"
      interval: 10s
      timeout: 10s
      retries: 3
    depends_on:
       - redis
       - mysql
       - wukongim
    ports:
      - "8095:8090"
    volumes:
      - ./tsdd:/home/tsdddata
      # - ./tsdd/configs/tsdd.yaml:/home/configs/tsdd.yaml
    environment:
      - TS_MODE=${TS_MODE}
      - TS_WUKONGIM_APIURL=http://wukongim:5001
      - TS_DB_MYSQLADDR=root:${MYSQL_ROOT_PASSWORD}@tcp(mysql)/${MYSQL_DATABASE}?charset=utf8mb4&parseTime=true&loc=Local
      - TS_DB_REDISADDR=redis:6379
      - TS_EXTERNAL_IP=${EXTERNAL_IP}
      - TS_SMSCODE=${TS_SMSCODE}
      - TS_FILESERVICE=${TS_FILESERVICE}
      - TS_MINIO_ACCESSKEYID=${MINIO_ROOT_USER}
      - TS_MINIO_SECRETACCESSKEY=${MINIO_ROOT_PASSWORD}
      - TS_AVATAR_DEFAULTBASEURL=https://api.multiavatar.com/{avatar}.png
  tangsengdaodaoweb:  # 唐僧叨叨的web服务
    image: registry.cn-shanghai.aliyuncs.com/wukongim/tangsengdaodaoweb:latest
    restart: always
    environment:
      - API_URL=http://${EXTERNAL_IP}:8090/
    ports:
      - "822:80" 
  minio: # minio文件管理服务
    image: minio/minio:latest # use a remote image
    expose:
      - "9000"
      - "9001"
    command: "server /data --console-address ':9001'"
    ports:
      - "9002: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: mysql:latest
    command: --default-authentication-plugin=mysql_native_password
    healthcheck:
      test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
    environment:
      - TZ=Asia/Shanghai
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - MYSQL_DATABASE=${MYSQL_DATABASE}
    volumes:
      - ./mysqldata:/var/lib/mysql                    
  redis:  # redis
    image: redis
    restart: always
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 1s
      timeout: 3s
      retries: 30
  adminer:  # mysql web管理工具 调试用,为了安全生产不要打开
   image: adminer:latest
   ports:
     - 8306:8080

将次文件放入新建的tsdd文件夹中,紧接着我们还需要创建一个.env配置文件,文件内容如下:

代码语言:javascript
复制
# Common config

# The IP address of the server.
EXTERNAL_IP=192.168.101.66

# MYSQL Config

 # The password of the root user of the mysql database
MYSQL_ROOT_PASSWORD=panda
# The name of the mysql database
MYSQL_DATABASE=im

# Minio Config

# The access key ID of the minio file service
MINIO_ROOT_USER=minio
# The secret access key of the minio file service
MINIO_ROOT_PASSWORD=panda

# WuKongIM Config

# debug or release
WK_MODE=debug

# TangSengDaoDao Config

# File service type, default is minio
TS_FILESERVICE=minio
# debug or release
TS_MODE=debug
# The SMS code for testing, if it is not empty, the SMS code will be this value (If you need to configure real SMS, please refer to the SMS configuration in the complete configuration)
TS_SMSCODE=123456

其中我们需要更改一些内容,EXTERNAL_IP:服务器的对外IP地址;MYSQL_ROOT_PASSWORD: mysql数据库的root用户密码,随机填写;MINIO_ROOT_PASSWORD: minio 文件服务的密码,随机填写;TS_SMSCODE为手机注册默认的短信验证码。再将该文件也放入tsdd文件夹下。

目录树

最后我们打开群晖的SSH端口,并通过SSH工具链接到群晖。在获取了管理员权限后,我们cd到项目目录下输入命令docker-compose up -d启动项目。

命令行

中间会出现一些报错,提示找不到文件夹,我们按照它给出的提示,新建好对应的文件夹就可以了。需要在tsdd文件夹中分别新建miniodata、mysqldata、wukongim以及tsdd文件夹。随后再次输入命令,就能看到项目部署成功了。

重启项目

体验

浏览器输入http://nasip+端口号就可以看到登录界面了。

登录界面

该项目需要先在手机端注册才能在web端使用,去官方下载好app登录页面长按“欢迎登录唐僧叨叨”这是一个隐藏的注册入口,点击进入注册页面,输入手机号,默认验证码为:123456即可 (不用点获取验证吗)

服务器输入

登录之后就能看到主界面了,说实话和微信不能说一模一样,简直就是双胞胎啊。上几个图给大家看看。

演示图

演示图

总结

更多的功能就需要小伙伴们自行去了解了,对于即时通讯这一类,熊猫并不是很感冒。毕竟自己搭建并没有觉得有什么不同,所以还是直接用微信吧。

以上便是本期的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 部署
  • 体验
  • 总结
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档