中文 | English
Unofficial open-source MTProto server implementation in Go. Compatible with Telegram clients; supports self-hosted deployment.
- MTProto 2.0
- Abridged
- Intermediate
- Padded intermediate
- Full
- API Layer: 222
- Core features
- private chat
- basic group
- contacts
- web
- Architecture Docs -
DeepWikiteamgram/teamgram-server - Architecture (specs) — service topology, data flow, and ports
- Service topology and configuration — ports, infrastructure dependencies, call graph, and Mermaid diagram (中文)
| Component | Purpose |
|---|---|
| MySQL 5.7+ / 8.0 | Primary data store |
| Redis | Cache, session, deduplication |
| etcd | Service discovery & config |
| Kafka | Message & event pipeline |
| MinIO | Object storage |
| FFmpeg | Media transcoding (on server) |
Detailed versions and optional monitoring stack: Dependencies and runtime (specs).
For running the server from source (Go build), follow the step-by-step guides:
- Manual installation (Linux) — CentOS, Fedora, Ubuntu/Debian
- Manual installation (macOS) — Intel and Apple Silicon
Requires Go 1.21+. You must install and configure dependencies (MySQL, Redis, etcd, Kafka, MinIO, FFmpeg), initialize the database and MinIO, then build and run.
For running the full stack with Docker. No manual data initialization: the dependency stack initializes the database (via mounted SQL) and MinIO buckets (via minio-mc) on first start.
git clone https://github.com/teamgram/teamgram-server.git
cd teamgram-serverThis starts MySQL, Redis, etcd, Kafka, MinIO (and optional monitoring). The database and MinIO buckets are initialized automatically.
docker compose -f docker-compose-env.yaml up -ddocker compose up -d| Area | Brief | Detailed docs |
|---|---|---|
| Log | Filebeat → Kafka (teamgram-log) → go-stash → Elasticsearch → Kibana. Config: teamgramd/deploy/filebeat/conf/filebeat.yml, teamgramd/deploy/go-stash/etc/. |
Log collection (中文) |
| Monitor | Prometheus scrapes metrics; Grafana for dashboards. Enable via Prometheus block in teamgramd/etc2/*.yaml. Config: teamgramd/deploy/prometheus/server/prometheus.yml. |
Service monitoring (中文) |
| Tracing | go-zero Jaeger / Zipkin support. Set Telemetry in teamgramd/etc2/*.yaml. Jaeger is included in docker-compose-env.yaml. |
Link tracking (中文) |
Default sign-in verification code: 12345 (change for production.)
| Platform | Repository | Patch Link |
|---|---|---|
| Android | https://github.com/teamgram/teamgram-android | teamgram-android |
| iOS | https://github.com/teamgram/teamgram-ios | teamgram-ios |
| Desktop (TDesktop) | https://github.com/teamgram/teamgram-tdesktop | teamgram-tdesktop |
- Project specs — Architecture, protocol, dependencies, contributing, security, roadmap
- Service topology and configuration — Ports, infrastructure, call graph (中文)
- CONTRIBUTING · SECURITY · CHANGELOG
- Issues: bugs and feature requests
- Telegram: Teamgram group
The following are available in the enterprise edition (contact the author):
- sticker/theme/chat_theme/wallpaper/reactions/secretchat/2fa/sms/push(apns/web/fcm)/web/scheduled/autodelete/...
- channels/megagroups
- audio/video/group/conferenceCall
- bots
- miniapp
See specs/roadmap.md for community vs. enterprise scope.
If this project helps you, consider giving it a star.
