# im-system 即时通讯(IM)系统,monorepo 结构,前后端分离。 ## 项目结构 ``` im-system/ ├── backend/ # 后端(Kotlin + Spring Boot,Gradle 多模块) │ ├── gateway/ # 网关(Spring Cloud Gateway,端口 8080) │ ├── im-service/ # 主服务(IM 业务,端口 8081,Kafka 生产者) │ └── log-service/ # 日志服务(端口 8082,Kafka 消费者) └── frontend/ # 前端(Vue 3 + TypeScript + Vite,pnpm workspace) └── packages/ ├── admin/ # 管理后台(Element Plus,端口 5173) └── app/ # 聊天 App(端口 1420,预留 Tauri 迁移) ``` ## 技术栈 | 层 | 技术 | 版本 | | --- | --- | --- | | 后端语言 | Kotlin | 2.4.10 | | 后端框架 | Spring Boot | 4.1.0 | | 网关 | Spring Cloud Gateway | 2025.1.2(Oakwood) | | 消息队列 | Kafka | 由 `KAFKA_BOOTSTRAP_SERVERS` 指定 | | 构建 | Gradle | 9.6.1 | | 前端框架 | Vue 3 + TypeScript | 3.5 / 7.0 | | 前端构建 | Vite | 8.2.0 | | 包管理 | pnpm | 11.20.0 | ## 服务通信 ``` 浏览器 ── /api/* ──> gateway(8080) ── /api/im/** → im-service(8081) └────── /api/log/** → log-service(8082) im-service ──Kafka topic `im-logs`──> log-service ``` ## 快速开始 ```bash # 后端 cd backend gradle wrapper --gradle-version 9.6.1 # 仅首次需要 ./gradlew :gateway:bootRun # 三个服务分终端启动 # 前端 cd frontend pnpm install pnpm --filter @im-system/admin dev # http://localhost:5173 pnpm --filter @im-system/app dev # http://localhost:1420 ``` ## 文档 - [DEVELOPMENT.md](DEVELOPMENT.md) — 开发指南(环境、启动、配置、常见问题) - [CONTRIBUTING.md](CONTRIBUTING.md) — 贡献指南(分支、提交、PR 规范) ## 许可 [MIT](LICENSE) © 2026 msksbr