 ---
> [!TIP] > Struggling to search Chinese, Japanese, or Korean (CJK) messages in Telegram? > > Important messages often get lost in the noise — especially when word boundaries aren’t clear. > > Telegram Search solves this with advanced semantic search and word segmentation, fully supporting CJK and all languages. > > Vector search enables fuzzy, sentence-level matching, making it easy to find the information you need—even in languages without spaces. ## 💖 Sponsors  ## ✅ Feature Highlights ### 📦 Export & Backup - [x] Export chat history to multiple database types: supports both PGlite and PostgreSQL - [x] Media files are automatically backed up to MinIO object storage—no manual steps required - [x] Automatic vector embedding and tokenization during export for precise future search - [x] Real-time sync keeps all conversations updated continuously ### 🔍 Chat Record Search - [x] Intelligent word segmentation for accurate, multilingual retrieval - [x] Combines fuzzy matching with vector-based semantic search for highly efficient results - [x] Image semantic search: find images by text description via image embedding - [x] Infinite scroll for search results — smoother browsing experience - [x] RAG-powered AI Q&A: Chat with AI using your Telegram history as real-time context ### 🤖 Telegram Bot - [x] Search and export messages via Bot - [x] Message deep links — jump to the original conversation in one click ### 🚀 Advanced Features - [x] Smart unread message summaries: Instantly aggregate all unread content with a concise AI-generated summary - [x] Date range filtering for quickly narrowing down search results - [x] Context menu to jump to the original Telegram message, with mobile support ## 🛣️ Roadmap ### 🧠 Enhanced AI Capabilities - [ ] Automatic session summaries - [ ] "Super Brain": Build knowledge graphs of people and events directly from your chat records ### 🔗 Media & Link Extensions - [ ] Intelligently organize your "Saved Messages" for efficient content management - [ ] Deep link and image indexing: web page summarization, OCR for images, AI-driven captions—powerful search & archival ### 🌐 Multi-platform Integration - [ ] Expand to Discord and other major social/messaging platforms for unified search and backup ## 🎉 Try It Now We offer an online experience—no deployment needed. Try all Telegram Search features instantly. Visit: https://search.lingogram.app > [!WARNING] > No cryptocurrency has been issued by us. Please beware of scams. > > This tool exports only your own chat history. Do not use it for illegal purposes. ## 🚀 Quick Start ### Deploy with Docker Compose The recommended way to self-host is with Docker Compose. This launches the UI, backend, database, and media storage in one step. 1. Create an empty folder for your Telegram Search data and config: ```bash mkdir telegram-search cd telegram-search ``` 2. Download the Docker Compose and default environment files: ```bash curl -L https://raw.githubusercontent.com/groupultra/telegram-search/refs/heads/main/docker/docker-compose.yml -o docker-compose.yml curl -L https://raw.githubusercontent.com/groupultra/telegram-search/refs/heads/main/docker/.env.example -o .env curl -L https://raw.githubusercontent.com/groupultra/telegram-search/refs/heads/main/docker/init.sql -o init.sql ``` 3. Start all containers: ```bash docker compose -f docker-compose.yml up -d ``` 4. Open **http://localhost:3333** in your browser to start using Telegram Search! 🎉 ### Deploy with Docker Image If MinIO is not configured, media files will be stored in the local `data/media` directory. ```bash docker run -d --name telegram-search -p 3333:3333 ghcr.io/groupultra/telegram-search:latest ``` ### Environment Variables > [!IMPORTANT] > AI Embedding & LLM settings are now **per-account** in-app (Settings → API). > > Please restart the service after modifying the `.env` file by running `docker compose -f docker-compose.yml up -d`. All environment variables are optional. If not provided, the default values will be used. | Variable | Description | Example | | ------------------- | ------------------------------------------------------------ | ----------------------------------------------------- | | `TELEGRAM_API_ID` | From [my.telegram.org](https://my.telegram.org/apps) | `611335` | | `TELEGRAM_API_HASH` | From [my.telegram.org](https://my.telegram.org/apps) | `d524b414d21f4d37f08684c1df41ac9c` | | `DATABASE_TYPE` | Database type: `postgres` or `pglite` | `pglite` | | `DATABASE_URL` | PostgreSQL connection string (`DATABASE_TYPE=postgres` only) | `postgresql://postgres:123456@pgvector:5432/postgres` | | `TELEGRAM_BOT_TOKEN`| Bot token from [@BotFather](https://t.me/BotFather) | `123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11` | | `PROXY_URL` | Proxy address (formats like `socks5://user:pass@host:port`) | `socks5://user:pass@host:port` | | `PORT` | Backend HTTP/WebSocket listening port | `3333` | | `HOST` | Backend listening address | `0.0.0.0` | | `BACKEND_URL` | Upstream backend for Nginx `/api`/`/ws` proxy | `http://127.0.0.1:3333` | | `MINIO_URL` | MinIO service address | `http://minio:9000` | | `MINIO_ACCESS_KEY` | MinIO access key | `minioadmin` | | `MINIO_SECRET_KEY` | MinIO secret key | `minioadmin` | | `MINIO_BUCKET` | MinIO bucket name | `telegram-media` | ### Deploy with Docker Image Please modify the environment variables according to your needs. ```bash docker run -d --name telegram-search \ -p 3333:3333 \ -e TELEGRAM_API_ID=1234567890 \ -e TELEGRAM_API_HASH=1234567890 \ -e DATABASE_TYPE=postgres \ -e DATABASE_URL=postgresql://postgres:123456@pgvector:5432/postgres \ -e PROXY_URL=socks5://user:pass@host:port \ -e PORT=3333 \ -e HOST=0.0.0.0 \ ghcr.io/groupultra/telegram-search:latest ``` ## 💻 Development Guide ### Browser-only Mode ```bash git clone https://github.com/groupultra/telegram-search.git cd telegram-search pnpm install cp .env.example .env pnpm run dev ``` ### Server Mode ```bash git clone https://github.com/groupultra/telegram-search.git cd telegram-search pnpm install cp .env.example .env docker compose up -d pgvector minio pnpm run server:dev pnpm run web:dev ``` 📖 **More details:** [CONTRIBUTING.md](../docs/CONTRIBUTING.md) ## 🚀 Activity 