Skip to content

PluralityNET/PluralGramServer

 
 

Repository files navigation

License

PluralityServer

PluralityServer is a fork of nebula-chat/chatengine

PluralityServer's main repo: https://github.com/PluralityNET/PluralGramServer

PluralityServer's status: Limited functionality (as in public NebulaChat's chatengine). Currently making the code build and run from Plurality repo.

PluralityServer's chat: irc.ilita.i2p #i2pgram

Quick start with Docker

  1. Install docker and docker-compose
  2. Edit docker-compose.yml: replace CHATENGINE_HOST to "127.0.0.1".
  3. Run make command in your shell.
  4. Now, i2pgram server is listening on your host port 12345.

AKA

  • AKA i2pgram server
  • AKA NebulaChat chatengine (original name by Chinese author)
  • AKA PluralityServer
  • AKA PluralGramServer
  • AKA freegram server
  • AKA Beauty server

Website

http://beauty.i2p/


OBSOLETE/OLD INFO BELOW

NebulaChat - Open source mtproto server written in golang

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

Introduction

Open source mtproto server written in golang

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 @steedfly翻译

Quick start with Docker

  1. Install docker and docker-compose
  2. Edit docker-compose.yml: replace CHATENGINE_HOST to your own host IP
  3. Run make command in your shell.
  4. Now, Chatengine is running on your host port 12345.

Docker run demo

git clone https://github.com/PluralityNET/PluralityServer
cd PluralityServer
# replace 192.168.1.100 to you own host IP.
sed -i "" 's/CHATENGINE_HOST=127.0.0.1/CHATENGINE_HOST=192.168.1.100/g' docker-compose.yml # macOS
# sed -i 's/CHATENGINE_HOST=127.0.0.1/CHATENGINE_HOST=192.168.1.100/g' docker-compose.yml # linux
make

Manual Build and Install

Note: You will probably need a VM for this as the code often uses root at MySQL and root for filesystem write access.

Depends

  • redis
  • mysql
  • etcd

Build

  • Get source code 
mkdir -p $GOPATH/src/github.com/PluralityNET/
cd $GOPATH/src/github.com/PluralityNET/
git clone https://github.com/PluralityNET/PluralityServer.git
  • Build

    build frontend
        cd $GOPATH/src/github.com/PluralityNET/PluralityServer/access/frontend
        go build
    
    build auth_key
        cd $GOPATH/src/github.com/PluralityNET/PluralityServer/access/auth_key
        go build
    
    build auth_session
        cd $GOPATH/src/github.com/PluralityNET/PluralityServer/service/auth_session
        go build
        
    build sync
        cd $GOPATH/src/github.com/PluralityNET/PluralityServer/messenger/sync
        go build
    
    build upload
        cd $GOPATH/src/github.com/PluralityNET/PluralityServer/messenger/upload
        go build
    
    build document
        cd $GOPATH/src/github.com/PluralityNET/PluralityServer/service/document
        go build
    
    build biz_server
        cd $GOPATH/src/github.com/PluralityNET/PluralityServer/messenger/biz_server
        go build
        
    build session
        cd $GOPATH/src/github.com/PluralityNET/PluralityServer/access/session
        go build
    
  • Init

    • configure mysql passwordless login for OS user root for mysql user root@localhost;

    • then,

    cd $GOPATH/src/github.com/PluralityNET/PluralityServer/scripts/
    mysql -u root
        CREATE DATABASE PluralityServer;
        use PluralityServer;
        source PluralityServer.sql
        source merge_20181129_201906.sql
        exit;
  • Run

    cd $GOPATH/src/github.com/PluralityNET/PluralityServer/service/auth_session
    ./auth_session
    
    cd $GOPATH/src/github.com/PluralityNET/PluralityServer/service/document
    ./document
    
    cd $GOPATH/src/github.com/PluralityNET/PluralityServer/messenger/sync
    ./sync
    
    cd $GOPATH/src/github.com/PluralityNET/PluralityServer/messenger/upload
    ./upload
    
    cd $GOPATH/src/github.com/PluralityNET/PluralityServer/messenger/biz_server
    ./biz_server
    
    cd $GOPATH/src/github.com/PluralityNET/PluralityServer/access/auth_key
    ./auth_key
    
    cd $GOPATH/src/github.com/PluralityNET/PluralityServer/access/session
    ./session
    
    cd $GOPATH/src/github.com/PluralityNET/PluralityServer/access/frontend
    ./frontend

More

Build document

Build script

Prerequisite script

Compatible clients

Important: default signIn and signOut verify code is 12345

Android client for NebulaChat

FOSS client for NebulaChat

iOS client for NebulaChat

tdesktop for NebulaChat

Feedback

PluralityNET's chat: irc.ilita.i2p #plurality

Nebula Chat's chats:

About

Open source mtproto server written in golang with compatible telegram client

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 98.8%
  • Smarty 0.8%
  • Shell 0.2%
  • C++ 0.1%
  • Python 0.1%
  • Dockerfile 0.0%