Telegram Search 是一个用于导出并模糊搜索 Telegram 聊天记录的开源工具
Telegram Search 详细部署教程
一、项目简介
Telegram Search 是一个用于导出并模糊搜索 Telegram 聊天记录的开源工具。它解决了 Telegram 原生搜索对中文支持不佳、无法进行语义搜索等问题。该项目支持智能分词、向量语义搜索、图片语义搜索以及 AI 智能问答等高级功能。
二、部署前准备
1. 获取 Telegram API 凭证
访问 my.telegram.org/apps 登录您的 Telegram 账号,创建一个应用以获取:
TELEGRAM_API_ID:应用 ID(示例:611335)TELEGRAM_API_HASH:应用 Hash(示例:d524b414d21f4d37f08684c1df41ac9c)
这些凭证是连接 Telegram 所必需的,请妥善保管。
2. 系统要求
| 组件 | 版本要求 |
|---|---|
| Node.js | >= 24.13.0 |
| pnpm | 10.28.1 |
| Docker(可选) | 任意较新版本 |
| Git | 任意较新版本 |
如果使用 Docker 部署,无需单独安装 Node.js 和 pnpm。
三、部署方式
项目支持多种部署方式,您可以根据需求选择最适合的一种。
方式一:Docker Compose(推荐)
这是最快捷的部署方式,适合生产环境使用。
步骤 1:创建工作目录
1 | mkdir telegram-search |
步骤 2:下载必要文件
1 | curl -L https://raw.githubusercontent.com/groupultra/telegram-search/refs/heads/main/docker/docker-compose.yml -o docker-compose.yml |
步骤 3:配置环境变量
编辑 .env 文件,填入您的 Telegram API 凭证:
1 | # Telegram API 凭证(必需) |
步骤 4:启动服务
1 | docker compose -f docker-compose.yml up -d |
步骤 5:访问应用
打开浏览器访问 http://localhost:3333 即可使用。
方式二:Docker 单容器模式
适合快速体验,使用内置的 PGlite 数据库,无需额外组件。
1 | docker run -d --name telegram-search \ |
若未配置 MinIO,媒体文件将默认保存在容器的
data/media目录。
方式三:源码开发模式(CLI / Agent 模式)
适合开发者或需要高级命令行操作的场景。
步骤 1:克隆仓库
1 | git clone https://github.com/groupultra/telegram-search.git |
步骤 2:安装依赖
1 | pnpm install |
步骤 3:配置环境
1 | cp .env.example .env |
编辑 .env 文件,填入您的 Telegram API 凭证。
步骤 4:构建 CLI
1 | pnpm run build:packages |
步骤 5:配置并登录 Profile
1 | # 配置 API 凭证 |
步骤 6:使用 CLI 操作
1 | # 列出所有聊天会话 |
重要:批量同步必须使用
--takeout参数并经过用户明确授权。Telegram 可能会要求您在手机端确认数据导出请求,请留意 Telegram 应用中的通知。
四、重要配置说明
1. 数据库选择
| 类型 | 适用场景 | 配置方式 |
|---|---|---|
| PGlite | 浏览器模式、开发测试 | DATABASE_TYPE=pglite(默认) |
| PostgreSQL | 生产环境、多用户 | DATABASE_TYPE=postgres + 配置 DATABASE_URL |
2. 代理配置(可选)
如果需要通过代理访问 Telegram API:
1 | PROXY_URL=socks5://user:pass@host:port |
3. Telegram Bot(可选)
通过 @BotFather 创建 Bot 并获取 Token:
1 | TELEGRAM_BOT_TOKEN=123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 |
4. AI 增强功能
AI Embedding 和 LLM 设置在应用内按账户配置(路径:设置 → API),无需在环境变量中配置。
五、常见问题与排错
1. 同步时提示需要授权
现象:同步时卡住,提示 TAKEOUT_AUTHORIZATION_REQUIRED。
解决方法:打开手机 Telegram,查看“数据导出”请求并确认。确认后重新执行同步命令。
2. API Key 错误
现象:日志中出现 401 错误,提示 invalid_api_key。
解决方法:检查 .env 中的 TELEGRAM_API_ID 和 TELEGRAM_API_HASH 是否正确。
3. 登录后需要重新认证
现象:重启服务后需要再次登录。
解决方法:正常情况下 session 会保存,检查数据目录是否持久化(Docker 需挂载 volume)。
4. 部分消息未显示
原因:某些 Channel 或 Group 的消息可能因为权限或同步范围问题未完全拉取。建议确认同步时指定的时间范围是否正确。
六、快速体验(在线 Demo)
如果您不想自行部署,项目官方提供了在线体验版:
https://search.lingogram.app
安全提示:本工具仅用于导出和检索个人聊天记录,请勿用于任何违法用途。使用 UserBot 存在账号风险,请谨慎操作。











