genal-chat

用 TypeScript 一把梭,快速搭建全栈实时聊天室

genal-chat 是一个基于 NestJS + Vue 的全栈聊天室项目,采用 TypeScript 编写,前后端分离架构。它解决了开发者快速搭建实时聊天应用的需求,提供完整的聊天室功能,包括用户认证、消息收发、群组管理、好友系统等。核心能力在于使用 Socket.IO 实现实时双向通信,通过 TypeORM 管理数据持久化,并利用 Vuex 管理前端状态。项目结构清晰,代码规范,适合作为学习全栈 TypeScript 开发的范例,也可作为生产环境的起点。它涵盖了从后端 API 设计到前端组件开发的完整流程,帮助开发者理解前后端交互、实时通信、数据库设计等关键知识点。

开源 free 对话助手
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1992
维护状态 低维护
是否开源 是
定价模式 free

项目数据

分类对话助手
开发团队genalhuang
所属国家
定价模式free
价格说明开源项目,MIT许可证,官网可访问,提供在线聊天室服务,完全免费。
访问状态
是否开源是
开源协议MIT
主要语言TypeScript
技术栈/模型chatbot,chatroom,javascript,nestjs,nodejs,socket-io,typeorm,typescript,vue,vuex
GitHub 星标★ 1992
30天Star增速
HF 下载量
上线时间2020-06-24 00:00:00
最近更新2026-09-06 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数3

使用教程

难度:入门 约 15 分钟 部署方式:本地安装 5 步

环境要求

  • Node.js(README 标注版本 node v10.16.3)
  • MySQL 数据库,并新建一个名为 chat 的数据库
  • chat 数据库字符集必须为 utf8mb4
  • 已安装 npm,用于前后端依赖安装

安装与启动步骤

  1. 1克隆项目代码

    把仓库拉到本地,得到前后端两个子目录 genal-chat-client 和 genal-chat-server。

    git clone https://github.com/genalhuang/genal-chat.git
    cd genal-chat
  2. 2创建 MySQL 数据库

    README 说明数据库没有 SQL 脚本,只需新建一个 chat 数据库,注意字符集为 utf8mb4。

    mysql -u root -p -e "CREATE DATABASE chat DEFAULT CHARACTER SET utf8mb4;"
  3. 3修改数据库配置

    打开后端 app.module.ts,直接把里面的数据库密码改成你自己的 MySQL 密码,库名保持 chat。

  4. 4安装并启动后端

    进入后端目录安装依赖并启动开发服务,启动后有编译报错需先解决再继续。

    cd genal-chat-server
    npm i
    npm run start:dev
  5. 5安装并启动前端

    另开一个终端进入前端目录,安装依赖并启动开发服务器,按提示打开本地地址访问。

    cd genal-chat-client
    npm i
    npm run serve

关键配置

配置项必填说明示例
数据库密码(app.module.ts)是后端连接 MySQL 使用的密码,需改成你自己的'your_mysql_password'
数据库名是README 要求新建并使用的数据库名chat
数据库字符集是建库时指定的字符集,README 强调必须为 utf8mb4utf8mb4

如何确认成功

后端 npm run start:dev 无报错持续运行;前端 npm run serve 输出本地访问地址,浏览器打开能看到聊天室登录界面并能注册登录。

常见问题

Q:MySQL 连接报 error: ER_NOT_SUPPORTED_AUTH_MODE 怎么办?

A:README 说明这是 mysql 版本不兼容导致的,参考文中给出的文章(https://blog.csdn.net/qq_41831345/article/details/83150502)调整即可。

Q:项目没有 SQL 脚本,表结构怎么来?

A:README 明确说没有 sql 脚本,只需新建 chat 数据库并修改后端 app.module.ts 中的数据库密码,表结构由后端 TypeORM 处理。

Q:为什么官网 www.genal.fun 打不开?

A:README 标注该在线地址已失效,作者不打算再部署,需要自己按本文档在本地跑起来。

注意事项

  • README 声明项目已停止迭代,作者欢迎 fork 后自行开发。
  • 必须使用 utf8mb4 建库,否则中文或表情包可能出现乱码。
  • 前端和后端要分别在两个终端里启动,后端不停运行时前端才能正常通信。
  • README 中另有《阿童木聊天室部署说明》文档链接,可进一步参考生产部署方式。

核心亮点

  • 全栈 TypeScript,前后端类型安全,开发体验统一
  • 基于 NestJS + Socket.IO,实时通信稳定且架构清晰
  • 功能完整,包含用户认证、群组、好友等聊天室核心模块

不足之处

  • 项目星标量级一般,社区生态和文档支持可能有限
  • 功能相对基础,高级特性如消息已读、语音视频等缺失

适用场景

  • 学习 NestJS 和 Vue 全栈开发的最佳实践
  • 快速搭建内部团队沟通工具或小型社群聊天室
  • 作为实时通信功能(如客服系统)的脚手架

替代项目

Rocket.Chat、Mattermost、Tailchat

项目介绍

genal-chat 是对话助手领域的开源项目,由 genalhuang 开发,2020 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(1,992)位列前 30%,在对话助手分类的 907 个项目里位列前 13%。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-06。MIT许可证,官网可访问,提供在线聊天室服务,完全免费。从国内网络环境看,可直接访问。

它主要面向的使用场景是:学习NestJS和Vue全栈开发的最佳实践。同类可对比的替代方案包括 Rocket.Chat、Mattermost、Tailchat。

上一篇:onebot

下一篇:messaging-apis

同类项目推荐

open-webui 开源

给本地模型配个漂亮聊天室,全家都能用

User-friendly AI Interface (Supports Ollama, OpenAI API, ...)

★ 152821 2026-08-09
prompts.chat 开源

海量好提示词,抄了就能让 AI 更听话

f.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the commun···

★ 170999 2026-08-09
elia 开源

终端里用键盘快速聊 AI,多模型切换不打断思路

A snappy, keyboard-centric terminal user interface for interacting with large langua···

★ 2479 2026-08-09
NextChat 开源

一个界面聊遍所有主流AI模型,支持全平台部署,轻快又私密。

✨ Zero-config AI chat assistant. No API key needed — sign up and instantly chat wi···

★ 88802 2026-08-09