The community of enthusiasts is developing Opengram — an open implementation of the server part of the Telegram messenger. The project is a standalone server that implements the MTProto protocol (supports layers up to 216) and can be used as a replacement for the official Telegram server infrastructure when deployed on your own hardware. Official Telegram clients (Telegram Desktop, mobile applications) are supported after changing the data center address and the server's public RSA key.
Opengram is a fork of the mytelegram project. The Opengram code is written in C# (.NET 9) and
is distributed in source code without a license specified. The original mytelegram project is provided under the Apache 2.0 license, which requires the inclusion of a copy of the license text when distributing derivative works as per section 4a.
The server is built on a set of microservices, launched through Docker Compose: MTProto connection gateway, authorization and key exchange server, session server, servers command and request handling (CQRS architecture), HTTP Bot API, administrative service API, storage and file distribution servers, TURN/STUN for calls, and a service for sending confirmation codes. MongoDB, Redis, RabbitMQ, and MinIO are used as the infrastructure.
Supported features include: personal chats, groups, supergroups, channels, secret (end-to-end) chats, voice and video calls (via TURN/STUN and SFU mediasoup), bots and Bot API, privacy settings and two-factor authentication, stickers, reactions, and custom emojis; stars and star gifts, including resale and upgrades; stories, themes, and wallpapers; scheduled and self-deleting messages.
Source: opennet.ru
