teamgram-server

module
v0.90.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 24, 2023 License: Apache-2.0

README

Teamgram - Unofficial open source mtproto server written in golang

open source mtproto server implemented in golang with compatible telegram client.

Introduce

Open source mtproto server implementation written in golang, support private deployment.

Features

  • MTProto 2.0
    • Abridged
    • Intermediate
    • Padded intermediate
    • Full
  • API Layer: 147
  • private chat
  • basic group
  • contacts

Architecture

Architecture

Documents

Diffie–Hellman key exchange

Creating an Authorization Key

Mobile Protocol: Detailed Description (v.1.0, DEPRECATED)

Encrypted CDNs for Speed and Security Translate By @steedfly

Installing Teamgram

Teamgram relies on open source high-performance components:

Privatization deployment Before Teamgram, please make sure that the above five components have been installed. If your server does not have the above components, you must first install Missing components.

If you have the above components, it is recommended to use them directly. If not, it is recommended to use docker-compose-env.yaml.

Source code deployment
Install Go environment. Make sure Go version is at least 1.17.
Get source code 
git clone https://github.com/teamgram/teamgram-server.git
cd teamgram-server
Init data
  • init database

    1. create database teamgram
    2. init teamgram database
       mysql -uroot teamgram < teamgramd/sql/teamgram2.sql
       mysql -uroot teamgram < teamgramd/sql/migrate-*.sql
       mysql -uroot teamgram < teamgramd/sql/init.sql
    
  • init minio buckets

    • bucket names
      • documents
      • encryptedfiles
      • photos
      • videos
    • Access http://ip:xxxxx and create
Build
make
Run
cd teamgramd/bin
./runall2.sh
Docker deployment
Install Docker
Install Docker Compose
Get source code
git clone https://github.com/teamgram/teamgram-server.git
cd teamgram-server
Install depends
  • change 192.168.1.150 to your ip in docker-compose-env.yaml

  • install depends

    # pull docker images
    docker-compose -f docker-compose-env.yaml pull
    
    # run docker-compose
    docker-compose -f docker-compose-env.yaml up -d
    
Init data
  • init database

    
    # Copy some files to container
    docker exec -it mysql /bin/bash
    mkdir teamgramd
    docker cp ./teamgramd/sql/ mysql:/teamgramd/sql/
    
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/teamgram2.sql
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/migrate-20220321.sql
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/migrate-20220326.sql
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/migrate-20220328.sql
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/migrate-20220401.sql
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/migrate-20220412.sql
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/migrate-20220419.sql
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/migrate-20220423.sql
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/migrate-20220504.sql
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/migrate-20220721.sql
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/migrate-20220826.sql
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/migrate-20220919.sql
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/migrate-20221008.sql
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/migrate-20221011.sql
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/migrate-20221016.sql
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/migrate-20221023.sql
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/migrate-20221101.sql
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/migrate-20221127.sql
    mysql -uteamgram -h127.0.0.1 -pteamgram teamgram < teamgramd/sql/init.sql
    
    # quit docker mysql
    exit
    
  • init minio buckets

    • bucket names:

      • documents
      • encryptedfiles
      • photos
      • videos
    • create buckets

      # get mc
      docker run -it --entrypoint=/bin/bash minio/mc
      
      # change 192.168.1.150 to your ip    
      mc alias set minio http://192.168.1.150:9000 minio miniostorage
      
      # create buckets
      mc mb minio/documents
      mc mb minio/encryptedfiles
      mc mb minio/photos
      mc mb minio/videos
      
      # quit docker minio/mc
      exit
      
Run
# run docker-compose
docker-compose up -d

Compatible clients

Important: default signIn verify code is 12345

Android client for Teamgram

iOS client for Teamgram

tdesktop for Teamgram

Feedback

Please report bugs, concerns, suggestions by issues, or join telegram group Teamgram中文社区 Or Teamgram to discuss problems around source code.

Notes

If need enterprise edition:

  • sticker/theme/wallpaper/reactions/2fa/secretchat/sms/push(apns/web/fcm)/web...
  • channel/megagroup
  • audiocall/videocall/groupcall/rtmp live stream
  • bots

please PM the author

Give a Star! ⭐

If you like or are using this project to learn or start your solution, please give it a star. Thanks!

Directories

Path Synopsis
app
service/dfs/internal/imaging/jpeg
Package jpeg implements a JPEG image decoder and encoder.
Package jpeg implements a JPEG image decoder and encoder.
service/dfs/internal/imaging/jpeg/imageutil
Package imageutil contains code shared by image-related packages.
Package imageutil contains code shared by image-related packages.
pkg
mention
Package mention provides function for parsing twitter like mentions and hashtags
Package mention provides function for parsing twitter like mentions and hashtags

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL