一个基于golang开发的IM学习项目。CQUPT蓝山工作室后端GO组2026暑期考核项目AIM选题。
终于写好能交了,很难想象这玩意儿的代码量已经比我的Punklorde还多了。
你说有bug?那叫特性!懒得改了,体谅一下。
| 层级 | 技术 |
|---|---|
| 后端框架 | Go + go-zero |
| 服务发现 | etcd |
| 数据库 | PostgreSQL |
| 缓存 | Garnet(Redis 兼容) |
| 消息队列 | NATS |
| 对象存储 | RustFS |
| 向量数据库 | Qdrant |
| 图数据库 | HugeGraph |
| 前端 | SolidJS + Kobalte UI + Tailwind CSS |
| 桌面端 | Tauri v2 |
| 认证协议 | OPAQUE协议+ OAuth 2.0 |
| 可观测性 | OpenTelemetry + Prometheus + Grafana + Loki + Tempo + Jaeger |
katheryne/
├── app/ # 前端桌面应用 (SolidJS + Tauri)
│ ├── src/
│ │ ├── components/ # UI 组件
│ │ ├── pages/ # 页面
│ │ ├── services/ # API、WebSocket、配置服务
│ │ └── stores/ # 状态管理
│ └── src-tauri/ # Tauri 后端 (Rust)
├── config/ # 基础设施配置
│ ├── observability/ # Grafana 面板、Prometheus 等配置
│ └── qdrant/ # Qdrant 配置
├── db/ # 数据库初始化脚本
│ ├── init/ # PostgreSQL 初始化
│ └── sql/ # 各模块 DDL/DML
│ ├── im_message/ # 消息模块
│ ├── im_social/ # 社交模块
│ ├── mod_bot/ # Bot 模块
│ ├── mod_rag/ # RAG 模块
│ ├── oauth2/ # OAuth 2.0 模块
│ └── users/ # 用户模块
├── docs/ # 项目文档
├── services/ # 后端微服务 (Go)
│ ├── api/
│ │ ├── gateway/ # REST API 网关
│ │ └── ws-gateway/ # WebSocket 网关
│ ├── internal/
│ │ ├── auth/ # 认证服务
│ │ ├── bot/ # Bot 管理服务
│ │ ├── conversation/ # 会话服务
│ │ ├── mem/ # 记忆管理服务
│ │ ├── message/ # 消息服务
│ │ ├── oss/ # 对象存储服务
│ │ ├── rag/ # RAG 知识库服务
│ │ ├── social/ # 社交服务
│ │ └── user/ # 用户服务
│ └── thirdparty/
│ └── ai-bot/ # 官方 AI Bot
├── docker-compose.yml # Docker 编排
├── go.work # Go Workspace
└── README.md
- Go 1.26+
- Node.js / Bun(前端开发)
- Docker & Docker Compose(运行基础设施)
cp .env.template .env编辑 .env 文件,填写必要配置:
| 变量 | 说明 |
|---|---|
POSTGRES_USER |
PostgreSQL 用户名 |
POSTGRES_PASSWORD |
PostgreSQL 密码 |
POSTGRES_DB |
PostgreSQL 数据库名 |
RUSTFS_ACCESS_KEY |
RustFS 访问密钥 |
RUSTFS_SECRET_KEY |
RustFS 密钥 |
GF_SECURITY_ADMIN_USER |
Grafana 管理员用户名 |
GF_SECURITY_ADMIN_PASSWORD |
Grafana 管理员密码 |
AI_BOT_CLIENT_SECRET |
AI Bot 客户端密钥 |
OPENAI_API_KEY |
OpenAI API Key |
OPENAI_BASE_URL |
OpenAI API 基础 URL |
LLM_MODEL |
LLM 模型名称 |
docker compose up -d这将启动所有微服务及基础设施(PostgreSQL、Garnet、NATS、etcd、Qdrant、RustFS 等)。
cd app
bun install
bun run tauri devcd app
bun install
bun run tauri build参见 docs。