快速开始
林语(Linyu)是一套可自托管的开源即时通讯系统。当前主线由 Go 服务端与基于 Tauri 2 + Vue 3 + TypeScript 的桌面客户端组成,提供聊天、通讯录、群组、文件、音视频、AI Work 与插件扩展能力。
这篇指南使用全本地依赖启动一套开发环境。完成后,客户端通过 http://localhost:9088 访问服务端,WebSocket 地址会自动推导为 ws://localhost:9088/api/ws。
准备项目
从 linyu-im GitHub 组织 获取项目。建议把两个仓库放在同一个父目录中:
git clone https://github.com/linyu-im/linyu-server.git
git clone https://github.com/linyu-im/linyu-client.git
linyu/
├─ linyu-client/ # 桌面客户端
└─ linyu-server/ # Go 服务端
需要准备:
- Go:版本以
linyu-server/go.mod为准,当前为 Go 1.26.5。 - Node.js:建议使用当前 LTS 版本。
- pnpm:客户端包管理器。
- Rust 与 Tauri 2 的系统依赖:只有运行桌面壳和打安装包时需要。
go version
node --version
pnpm --version
rustc --version
启动服务端
进入服务端仓库,打开 assets/config/config.yml,将核心依赖切换为本地实现:
server:
port: 9088
route-prefix: /api
node-id: 1
cache:
type: otter
otter:
capacity: 10000
rdb:
type: sqlite
sqlite:
db-path: ./linyu/db
db-name: linyu
storage:
type: local
local:
base-url: http://localhost:9088
file-path: ./linyu/storage
event-bus:
type: local
vector:
type: chromem
chromem:
path: ./linyu/chromem
同时替换 jwt.secret,关闭不使用的 LDAP,并检查邮件、LiveKit、Gitee OAuth 与 AI Embedding 配置。仓库中的示例值只能用于理解字段,不能直接用于生产环境。
在服务端仓库根目录运行:
cd linyu-server
go mod download
go run .
首次启动会创建 linyu/ 数据目录并自动迁移数据库表。看到服务监听 9088 端口后,再启动客户端。
启动客户端
客户端的 .env 只需要配置 HTTP 服务根地址:
VITE_SERVICE_URL=http://localhost:9088
当前客户端会由该地址自动推导 WebSocket 地址;无需单独配置 WebSocket。
cd linyu-client
pnpm install
pnpm tauri dev
如果只开发 Vue 页面、不需要 Tauri 原生能力,可以使用 pnpm dev,再访问终端输出的本地地址;涉及托盘、通知、截图、文件系统、插件或多窗口时必须使用 pnpm tauri dev。
验证与下一步
- 客户端能够打开登录页。
- 注册或登录请求指向
http://localhost:9088/api。 - 登录后 WebSocket 连接为
ws://localhost:9088/api/ws。 - 服务端根目录出现 SQLite、文件和向量数据目录。
需要安装给用户使用,请继续阅读“部署指南”;需要修改代码,请进入“客户端开发”或“服务端开发”;需要扩展应用中心,请阅读“插件开发”。