? 开源 | 开发了一款极简、极轻、无痕、匿名聊天室工具,支持多种方式部署

2024 年 6 月 22日,更新第二版 v0.0.5

  • - feat: 更换全新的界面和组件(更精致)
  • - feat: 支持使用 <img src="图片地址" /> 贴图
  • - feat: 修改密码校验逻辑
  • - feat: 修改昵称重复后的处理逻辑
  • - fix: 修复密码校验失败后空消息问题
  • 演示地址:[go.lion.im/wyk6y](https://go.lion.im/wyk6y)

    chatdemo1.png![chatdemo1.png](https://img.seeyou.me/imgs/2024-06-22/6675ba3386484.png)
    chatdemo2.png![chatdemo2.png](https://img.seeyou.me/imgs/2024-06-22/6675ba359c8db.png)
    chatdemo3.png![chatdemo3.png](https://img.seeyou.me/imgs/2024-06-22/6675ba341f9cb.png)

    ---

    >

    因为平时和朋友沟通,尤其是不会富强的朋友沟通一些特殊、敏感、危险的事情时、或临时传输剪贴一些特殊的文字、链接时,在微信或其他聊天软件是极度危险的,因为亲身(好朋友亲身)经历了被上门、被写保证书、微信一次永久封等真实事件,带来的后果看似没什么其实非常麻烦,所以对这方面会比较小心,所以开发了这款极简、极轻、无痕、匿名聊天工具,还你自由

    >

    题外话,之前看了一些坛友说用阿里富强啥事没有之类的言论,我觉得也正常,事情在没发生之前,就像第一次钱塘江观潮的观众,没在最后一刻被意料之外的巨浪淹没总是会觉得安全,也希望大家永远自由,但一切还请小心

    >

    如有兴致,还请赏个 github 的 Star .

    # Minichat

    Minichat 是一款极简、极轻、无痕、匿名的聊天工具,开发此程序的本意是用于自己平日与好友临时讨论敏感话题时使用,现开源共享,代码简陋,请多包涵。

    ***项目地址:[go.lion.im/h6i5k](https://go.lion.im/h6i5k)***

    ## 特性

  • * 无数据库、无前端组件、无日志,打包后镜像仅 16M
  • * 支持自定义服务端口、支持单独配置后端服务 Server API
  • * 良好的匿名特性、安全隐私特性,数据只在服务器内存中毫秒级短暂中转不留痕
  • * 支持房间密码、后进房间不能观看之前记录等特性,非常安全
  • * 只需随意填写用户昵称,无任何真实信息,非常安全
  • * 所有人离开房间即销毁,非常安全
  • * 简洁但用心的界面布局
  • * 适配手机端、Web端
  • ## 使用说明

    >

    🌟 其实只需要两步:
    你输入地址进入,输入昵称,开始聊天
    复制给别人地址,别人进入,输入昵称,开始聊天

  • 1. 进入页面,若地址栏未携带 room=xxx 的参数,将随机产生一个新房间
  • 2. 输入自己的昵称(随意),点击进入房间即可
  • 3. 将房间地址复制发送给其他小伙伴,小伙伴输入他自己的昵称(随意)后,将进入你的房间
  • 4. 开始愉快且无痕且私密的聊天
  • 5. 当所有房间内的人都离开后,房间会立刻销毁
  • ## 部署方式

    ---

    ### Docker compose 方式(推荐|仅支持 linux-amd64 机器)

  • 1. 环境要求: Git、Docker、Docker-Compose
  • 2. 克隆项目:
    ``` git clone [项目地址论坛脱敏] ```
  • 3. 修改 docker-compose.yml 文件,按需修改端口号(**只需修改 docker-compose.yml 文件中 - "8080:8080" 中前面的8080即可,后面的 8080 代表容器内的端口要和 config.yaml 中的端口一致,后面默认 8080 即可无需修改**),
  • 4. 如有特殊需要,修改 config.yaml 文件内,页面请求服务器的接口地址 server_url,如页面和服务使用同域名同端口,server_url 留空无需修改默认即可
  • 5. 进入刚 clone 的 minichat 文件夹,执行 ``` docker-compose up -d ```
  • 5. 部署成功后,通过ip+端口号访问
  • ---

    ### Docker run 方式

  • 1. 环境要求: Git、Docker
  • 2. 克隆项目: ``` git clone [项目地址论坛脱敏] ```
  • 3. 如有特殊需要,修改 config.yaml 文件内,页面请求服务器的接口 server_url,如页面和服务使用同域名同端口,server_url 留空无需修改默认即可
  • 4. 进入刚 clone 的 minichat 文件夹,执行(**只需修改 -p 8080:8080 中前面的 8080 即可,后面的 8080 代表容器内的端口,要和 config.yaml 中的端口一致,后面默认 8080 即可无需修改**``` docker pull okhanyu/minichat:latest docker run -d --name minichattest -p 8080:8080 -v $(pwd)/config.yaml:/app/config.yaml okhanyu/minichat:latest ```
  • 5. 部署成功后,通过ip+端口号访问
  • ---

    ### 可执行文件 方式(简单,无需docker)

  • 1. 环境要求: 无
  • 2. 创建本地文件夹 minichat (名字随意)
  • 3. minichat 文件夹内创建文件 config.yaml
  • 4. 修改 config.yaml 文件,按需修改端口号和页面请求服务器的接口地址 server_url,如页面和服务使用同域名同端口,server_url 留空即可 ``` port: 8080 server_url: "" ```
  • 5. minichat文件夹内,放置下载好的[可执行文件](https://github.com/okhanyu/minichat/releases/),保证 config.yaml 和 可执行文件在同目录下,双击打开可执行文件即可
  • 5. 成功后,通过ip+端口号访问
  • ---

    ## 其他

  • * 如果你需要的是一套支持自部署的完整、强大聊天室系统,请使用 [mattermost.com](https://mattermost.com/)
  • * 如果你需要的是一款支持自部署的复古、匿名聊天室系统,请使用 [hack.chat](https://hack.chat/)
  • 标题上多了第二个钻石图标,编辑帖子竟无法修改标题~

    image</s>image<e>

    无人回复之前是可以重命名的,但有人回复以后就不可以啦。

    [“\ud83d\udc8e \u5f00\u6e90 \uff5c\ud83d\udc8e \u5f00\u53d1\u4e86\u4e00\u6b3e\u6781\u7b80\u3001\u6781\u8f7b\u3001\u65e0\u75d5\u3001\u533f\u540d\u804a\u5929\u5ba4\u5de5\u5177\uff0c\u652f\u6301\u591a\u79cd\u65b9\u5f0f\u90e8\u7f72”,“\ud83d\udc8e \u5f00\u6e90 \uff5c \u5f00\u53d1\u4e86\u4e00\u6b3e\u6781\u7b80\u3001\u6781\u8f7b\u3001\u65e0\u75d5\u3001\u533f\u540d\u804a\u5929\u5ba4\u5de5\u5177\uff0c\u652f\u6301\u591a\u79cd\u65b9\u5f0f\u90e8\u7f72”]

    厉害了

    BTW: 这款聊天室的占用怎么样, 2C4G 的大概能支撑多少人同时在线聊天

    @“James”#p38858

    占用极小,基于纯内存操作,主要消耗在于网络IO,次要在内存中的hash结构的连接存储、锁,

    没有做过压测,james 无聊的时候可以部署一台做做压测,看看95线 RT 200ms内能达到多少TPS,看看负载极限之前能同时多少在线,但是只能压ws接口

    :ac01:

    @“hahahaha”#p38861 Linux.do 有一个小聊天室,上次金子也提议我们搞一个,你这个很适合哈哈。

    @“James”#p38862 看来老詹有想法了拉:huaji25:

    点亮star了,挺好玩的,给老james试试

    @“Jensfrank”#p38866 我都忘记 Star 了,已点

    牛逼啊大佬,在nodeloc也发一遍哈哈,好好好,早日升权限抽奖

    小韩,你也跑这里来了?

    酷:xhj06:

    真大佬,好项目,已star支持。提个小建议:

    信息输入窗口能否不要回车就直接发送信息,这种很不方便,想一次多说几句都不行,一回车就发送了。。

    另外,可否增加个中文切换,还有贴图功能

    再优化优化,就更奈斯了。

    @“James”#p38867

    @"金子会发光"#p38865

    @"Jensfrank"#p38866

    @"Feng"#p38999

    界面大更新,焕然一新,逻辑Bug修复。

    @“老张”#p38961

    一直在,只是潜水比较多。

    @“VIP”#p38992

    回车这个,我想想怎么做体验会比较好。

    刚更新了一版,可以贴图,但比较隐晦,使用html代码比如: <img src="图片地址" /> 就可以把图发出去

    @“hahahaha”#p39145 这样会增加注入危险,建议添加图片网址白名单功能