teamgram
teamgram-server
Go

Unofficial open source mtproto server written in golang with compatible telegram client.

Last updated Jul 8, 2026
2.2k
Stars
439
Forks
17
Issues
+5
Stars/day
Attention Score
83
Language breakdown
No language data available.
Files click to expand
README

Teamgram Server

中文 | English


Unofficial open-source MTProto server implementation in Go. Compatible with Telegram clients; supports self-hosted deployment.

Features

  • MTProto 2.0
- Abridged - Intermediate - Padded intermediate - Full
  • API Layer: 227
  • Core features
- private chat - basic group - contacts - web

Architecture

Architecture

Prerequisites

| 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).


Manual installation

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.

Docker installation

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.

1. Clone

git clone https://github.com/teamgram/teamgram-server.git
cd teamgram-server

2. Start dependency stack

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

3. Start application

docker compose up -d

Logging, monitoring & tracing

| 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 (中文) |


Compatible clients

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 |


Documentation


Community & feedback


Enterprise edition

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.

License

Apache License 2.0.


Give a Star! ⭐

If this project helps you, consider giving it a star.

🔗 More in this category

© 2026 GitRepoTrend · teamgram/teamgram-server · Updated daily from GitHub