Skip to content

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

License

Notifications You must be signed in to change notification settings

teamgram/teamgram-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,282 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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: 222
  • 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.

About

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

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 21

Languages