Unofficial open source mtproto server written in golang with compatible telegram client.
See the code中文 | English
Unofficial open-source MTProto server implementation in Go. Compatible with Telegram clients; supports self-hosted deployment.

DeepWiki teamgram/teamgram-server| 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:
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-server
This 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 -d
docker 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 |
The following are available in the enterprise edition (contact the author):
See specs/roadmap.md for community vs. enterprise scope.
If this project helps you, consider giving it a star.
152 followers · starred Jul 2019
54 followers · starred Dec 2022
27 followers · starred Sep 2022
89 followers · starred Oct 2021
Unofficial open source mtproto server written in golang with compatible telegram client.
See the code中文 | English
Unofficial open-source MTProto server implementation in Go. Compatible with Telegram clients; supports self-hosted deployment.

DeepWiki teamgram/teamgram-server| 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:
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-server
This 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 -d
docker 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 |
The following are available in the enterprise edition (contact the author):
See specs/roadmap.md for community vs. enterprise scope.
If this project helps you, consider giving it a star.
152 followers · starred Jul 2019
54 followers · starred Dec 2022
27 followers · starred Sep 2022
89 followers · starred Oct 2021