Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

Opengram

Читать на других языках: English

Opengram — это самостоятельный сервер Telegram, написанный на C# (.NET 9). Проект является форком mytelegram и реализует серверную часть API Telegram (MTProto), которую можно развернуть на собственной инфраструктуре. Наш телеграм канал: https://t.me/opengrame

Возможности

  • MTProto-транспорты (Abridged, Intermediate), layer 216;
  • личные чаты, группы, супергруппы и каналы;
  • секретные (end-to-end) чаты;
  • голосовые и видеозвонки (через TURN/STUN и SFU mediasoup);
  • боты и Bot API;
  • настройки приватности и двухфакторная аутентификация;
  • стикеры, реакции, кастомные эмодзи;
  • звёзды (Stars) и подарки (Star Gifts), включая перепродажу и апгрейд;
  • истории (Stories), темы оформления и обои;
  • запланированные и самоудаляющиеся сообщения.

Архитектура

Сервер состоит из набора микросервисов, которые запускаются через Docker Compose:

СервисНазначение
gateway-serverТочка входа для MTProto-подключений клиентов
auth-serverАвторизация и обмен ключами
session-serverХранение сессий и маршрутизация обновлений
messenger-command-serverОбработка команд (запись, CQRS)
messenger-query-serverОбработка запросов (чтение, CQRS)
bot-api-serverHTTP Bot API
admin-apiСлужебный API администрирования
file-server / file-merge-proxyХранение и раздача файлов
turn-serverTURN/STUN для звонков
sms-senderОтправка кодов подтверждения
data-seederПервичное наполнение базы данных

Инфраструктура: MongoDB (хранилище и event store), Redis (кеш), RabbitMQ (шина событий), MinIO (объектное хранилище файлов).

Дополнительные компоненты репозитория:

  • mediasoup-server/ — SFU для групповых видеозвонков (Node.js);
  • stargift-admin/ — веб-панель управления подарками (backend на Node.js, frontend на React);
  • scripts/ — вспомогательные скрипты запуска и тестовые боты.

Быстрый старт (Docker)

Потребуются Docker и Docker Compose.

  1. Перейдите в каталог с compose-файлом:

    cd docker/compose
  2. Откройте файл .env и задайте свои значения вместо плейсхолдеров CHANGE_ME (пароли MongoDB, Redis, RabbitMQ, MinIO, ключ Admin API), а также укажите внешний IP-адрес сервера в параметрах App__WebRtcConnections и App__DcOptions.

  3. Сгенерируйте RSA-ключи MTProto и положите их в docker/compose/secrets/mtproto/ (см. secrets/mtproto/README.md).

  4. Запустите сервисы:

    docker compose up -d

    Часть сервисов (в том числе messenger-query-server) собирается локально из исходников, а не скачивается из реестра, поэтому docker login не требуется. При первом запуске образы соберутся автоматически. Чтобы пересобрать их вручную:

    docker compose build docker compose up -d

После старта подключите клиент Telegram, прописав адрес вашего дата-центра.

Сборка из исходников

Для сборки нужен .NET 9 SDK.

cd source dotnet build MyTelegram.sln -c Release

Скрипты сборки Docker-образов лежат в каталоге build/.

Конфигурация

Все настройки задаются через переменные окружения (файл .env) либо через appsettings.json отдельных сервисов. В репозитории все значения паролей и ключей заменены на плейсхолдеры CHANGE_ME — перед запуском замените их на свои.

Не храните реальные пароли и приватные ключи в репозитории.

Лицензия и происхождение

Проект основан на mytelegram. Все права на оригинальный код принадлежат его авторам; уважайте условия лицензии исходного проекта и товарные знаки Telegram.

关于 About

No description, website, or topics provided.

语言 Languages

C#93.1%
JavaScript6.2%
Dockerfile0.2%
PowerShell0.1%
Shell0.1%
CSS0.1%
Batchfile0.1%
HTML0.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
6
Total Commits
峰值: 6次/周
Less
More

核心贡献者 Contributors