A community of enthusiasts has developed Opengram, an open implementation of the server side Telegram messenger. This project serves as an independent server that implements the MTProto protocol, supporting layers up to 216. Opengram can be utilized to replace the official Telegram server infrastructure by deploying it on one’s own equipment. Official Telegram clients like Telegram Desktop and mobile applications are supported after adjusting the data center address and public RSA key of the server.
Opengram is a fork of the mytelegram project, with its code written in C# (.NET 9) and distributed in source code form. While the license for Opengram is not specified, the original mytelegram project is provided under the Apache 2.0 license.
The server is constructed using a set of microservices launched via Docker Compose. These services include the MTProto connection gateway, authorization and exchange server keys, session server, command and query servers following the CQRS architecture, HTTP Bot API, administration service API, file storage and distribution servers, TURN/STUN for calls, and a service for sending confirmation codes. Infrastructure components such as MongoDB, Redis, RabbitMQ, and MinIO are utilized in the server setup.
The Opengram project supports various features including personal chats, groups, supergroups, and channels, as well as secret (end-to-end) chats. It also enables voice and video calls via TURN/STUN and SFU mediasoup, bots and Bot API, privacy settings, two-factor authentication, stickers, reactions, custom emoji, Stars and Star Gifts with resale and upgrades, stories, themes, wallpapers, and scheduled or self-deleting messages.