Giter VIP home page Giter VIP logo

teamgram-server's Introduction

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
    
  • 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

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/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!

teamgram-server's People

Contributors

abirdcfly avatar alikhadivi avatar blogcloud avatar devnulldevzero avatar haupc avatar iineva avatar lionpuchipuchi avatar mittwillson avatar ngocanh1909 avatar qusonann avatar teamgramio avatar techiedesu avatar wubenqi avatar yeehaw456789 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.