NebulaChat - Open source mtproto server written in golang

NebulaChat - Open source mtproto server written in golang

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

Introduce

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 Translate By @steedfly

Windows-Build By @robinfoxnan

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/nebula-chat/chatengine
cd chatengine
# 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

Depends

  • redis
  • mysql
  • etcd

Build

  • Get source code 
mkdir -p $GOPATH/src/github.com/nebula-chat/
cd $GOPATH/src/github.com/nebula-chat/
git clone https://github.com/nebula-chat/chatengine.git

  • Build

    build frontend
        cd $GOPATH/src/github.com/nebula-chat/chatengine/access/frontend
        go build
    
    build auth_key
        cd $GOPATH/src/github.com/nebula-chat/chatengine/access/auth_key
        go build
    
    build auth_session
        cd $GOPATH/src/github.com/nebula-chat/chatengine/service/auth_session
        go build
        
    build sync
        cd $GOPATH/src/github.com/nebula-chat/chatengine/messenger/sync
        go build
    
    build upload
        cd $GOPATH/src/github.com/nebula-chat/chatengine/messenger/upload
        go build
    
    build document
        cd $GOPATH/src/github.com/nebula-chat/chatengine/service/document
        go build
    
    build biz_server
        cd $GOPATH/src/github.com/nebula-chat/chatengine/messenger/biz_server
        go build
        
    build session
        cd $GOPATH/src/github.com/nebula-chat/chatengine/access/session
        go build
    
  • Run

    cd $GOPATH/src/github.com/nebula-chat/chatengine/service/auth_session
    ./auth_session
    
    cd $GOPATH/src/github.com/nebula-chat/chatengine/service/document
    ./document
    
    cd $GOPATH/src/github.com/nebula-chat/chatengine/messenger/sync
    ./sync
    
    cd $GOPATH/src/github.com/nebula-chat/chatengine/messenger/upload
    ./upload
    
    cd $GOPATH/src/github.com/nebula-chat/chatengine/messenger/biz_server
    ./biz_server
    
    cd $GOPATH/src/github.com/nebula-chat/chatengine/access/auth_key
    ./auth_key
    
    cd $GOPATH/src/github.com/nebula-chat/chatengine/access/session
    ./session
    
    cd $GOPATH/src/github.com/nebula-chat/chatengine/access/frontend
    ./frontend
    

More

Build document

Build script

Prerequisite script

Note

import all scripts/*.sql

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

tdesktop-builder

tdesktop-builder

TODO

Feedback

Please report bugs, concerns, suggestions by issues.

Notes

Chatengine is not a commercial project, only supports mtproto API layer 86, and only supports private chats and small groups.

If need enterprise edition, please PM the author or download clients from nebula.chat (default verify code is: 12345).

Comments
  • Not an issue

    Not an issue

    Hello , This’s not an issue but some general questions : 1- What does bff stand for ? ( naming convention ! ) 2- The build doc is OLD ( not updated with the new project design architect ) Correct me if i’m wrong ! . 3- Personally i liked the OLD project Design architect ; well organized ( packages … etc ) ; Not talking about the code .

    thank you for all your efforts and time .

  • go build

    go build

    I follow this https://github.com/nebula-chat/chatengine

    cd $GOPATH/src/github.com/nebula-chat/chatengine/access/frontend
    go build
    

    got

    root@indachat:/var/workspace/src/github.com/nebula-chat/chatengine/access/frontend# go build
    ../../vendor/github.com/coreos/etcd/clientv3/auth.go:18:2: cannot find package "context" in any of:
            /var/workspace/src/github.com/nebula-chat/chatengine/vendor/github.com/coreos/etcd/vendor/context (vendor tree)
            /var/workspace/src/github.com/nebula-chat/chatengine/vendor/context
            /usr/lib/go-1.6/src/context (from $GOROOT)
            /var/workspace/src/context (from $GOPATH)
    

    Could you help please to build the solution?

  • 运行frontend模块报错

    运行frontend模块报错

    我按照文档编译和运行顺序操作时,在最后运行frontend模块时提示端口占用:{0xc0000f71e0 /nebulaim/frontend80/node1 {"Addr":"127.0.0.1:10000","Metadata":{}} 10000000000 0xc00009d500 0x593570} F0529 21:03:22.584240 18720 mtproto_server.go:66] Endpoint already exists for id: client-bufv8c5dtrq8,查看源代码文件中如下: image,而在session模块中配置文件中端口号也是10000,不知道是不是有问题? image

  • server.go:104:6: unknown field 'PollClient' in struct literal of type

    server.go:104:6: unknown field 'PollClient' in struct literal of type

    Error compiling ...

    build biz...

    github.com/teamgram/teamgram-server/app/service/biz/biz/internal/server

    app/service/biz/biz/internal/server/server.go:104:6: unknown field 'PollClient' in struct literal of type "github.com/teamgram/teamgram-server/app/service/biz/message/internal/config".Config make: *** [Makefile:40: biz] Lỗi 2

    drwxrwxr-x 1 minh minh 6 Thg 10 10 20:44 go -rw-rw-r-- 1 minh minh 148883574 Thg 10 5 00:44 go1.19.2.linux-amd64.tar.gz -rw-rw-r-- 1 minh minh 16628 Thg 10 10 20:26 go-minio-kafka.howto.txt drwxr-xr-x 1 minh minh 172 Thg 10 10 19:40 kafka_2.13-3.3.1 -rw-rw-r-- 1 minh minh 105053134 Thg 10 3 06:05 kafka_2.13-3.3.1.tgz drwxrwxr-x 1 minh minh 46 Thg 10 9 22:56 linux-6.0 drwxrwxr-x 1 minh minh 2232 Thg 10 10 15:10 linux-next drwxrwxr-x 1 minh minh 90 Thg 10 10 20:35 minio -rw-rw-r-- 1 minh minh 31806114 Thg 10 6 05:40 minio.deb -rw-rw-r-- 1 minh minh 0 Thg 10 10 22:24 report.txt drwxrwxr-x 1 minh minh 280 Thg 10 10 21:38 teamgram-server

  • Question: Update API Layer

    Question: Update API Layer

    is there a guide how to update the API Layer? I got the schema for layer 121 and I can convert it based on the implementation however I don't know how to generate the file descriptor is there any guide for it?

  • 测试服务的版本和master分支的代码是否相同

    测试服务的版本和master分支的代码是否相同

    按照补丁编译好的telegram,选择目前的测试服(47.103.102.219)可以登录并正常收发单聊消息的,但按照docker代码进行构建并使用客户端连接私服,客户端无法正常收发消息,且切换到别的应用程序再切回来后会一直显示Connecting... 服务端异常日志:

    E0517 20:18:00.226402      85 rpc_recovery_handler.go:32] BizUnaryRecoveryHandler - goroutine 134 [running]:
    runtime/debug.Stack(0x406234, 0xc0001d2a80, 0xc000b05300)
     /usr/local/go/src/runtime/debug/stack.go:24 +0x9d
    github.com/nebula-chat/chatengine/pkg/grpc_util.BizUnaryRecoveryHandler(0x18870e0, 0xc00084c870, 0x12e0a20, 0x2769c10, 0x46ec3e, 0xc000d7c0b0)
     /go/src/github.com/nebula-chat/chatengine/pkg/grpc_util/rpc_recovery_handler.go:32 +0x34
    github.com/nebula-chat/chatengine/pkg/grpc_util/middleware/recovery2.unaryRecoverFrom(0x18870e0, 0xc00084c870, 0x12e0a20, 0x2769c10, 0x1688358, 0xc000b053b0, 0x0)
     /go/src/github.com/nebula-chat/chatengine/pkg/grpc_util/middleware/recovery2/interceptors.go:75 +0x5a
    github.com/nebula-chat/chatengine/pkg/grpc_util/middleware/recovery2.UnaryServerInterceptor.func1.1(0x18870e0, 0xc00084c870, 0xc000c490a0, 0xc000b05ad8)
     /go/src/github.com/nebula-chat/chatengine/pkg/grpc_util/middleware/recovery2/interceptors.go:42 +0x77
    panic(0x12e0a20, 0x2769c10)
     /usr/local/go/src/runtime/panic.go:522 +0x1b5
    github.com/nebula-chat/chatengine/messenger/biz_server/biz/core/message.(*MessageModel).SendMessage.func2(0xc000000006, 0xc0002955e0)
     /go/src/github.com/nebula-chat/chatengine/messenger/biz_server/biz/core/message/message_helper.go:559 +0x1d2
    github.com/nebula-chat/chatengine/messenger/biz_server/biz/core/message.(*MessageModel).SendInternalMessage(0xc000913da0, 0x6, 0xc000ac02c0, 0x912b636b948557a7, 0xc0000d8900, 0xc00084cba0, 0xc000b05780, 0xbc, 0x203000)
     /go/src/github.com/nebula-chat/chatengine/messenger/biz_server/biz/core/message/message_helper.go:362 +0x698
    github.com/nebula-chat/chatengine/messenger/biz_server/biz/core/message.(*MessageModel).SendMessage(0xc000913da0, 0xc000000006, 0xc000ac02c0, 0x912b636b948557a7, 0xc00084cba0, 0xc000b5c710, 0xc000cbadc0, 0xc000b5c720, 0x0, 0x0, ...)
     /go/src/github.com/nebula-chat/chatengine/messenger/biz_server/biz/core/message/message_helper.go:554 +0x110
    github.com/nebula-chat/chatengine/messenger/biz_server/server/messages.(*MessagesSer
    
  • Can't find name: TLInvokeWithLayer

    Can't find name: TLInvokeWithLayer

    2020-05-11T01:49:50.162820Z error server/session_handler.go:1684 rpc error: code = 500 desc = INTERNAL: INTERNAL_SERVER_ERROR 2020-05-11T01:49:50.273698Z error mtproto/rpc_client_registers.go:352 Can't find name: TLInvokeWithLayer 2020-05-11T01:49:50.273833Z error grpc_util/rpc_client.go:107 Invoke error: constructor:CRC32_invokeWithLayer layer:97 query:"\270\210Qx\002\000\000\000\252\333\000\000\riPhone 7 Plus\000\000\00611.4.1\000\0071.0 (2)\nzh-Hans-HK\000\003ios\rclassic-zh-cn\000\000\235\324\301\231\025\304\265\034\003\000\000\000\331\033\336\300\010bundleId\000\000\000zv\036\267\nRG293LY76W\000\331\033\336\300\004data\000\000\000zv\036\267\034pvmTaKMP6WzT3WE+xKp2wb2RWyE=\000\000\000\331\033\336\300\004name\000\000\000zv\036\267^/UID=MJ69F8KJJW/CN=Apple Development: xxxxx (xxxxxxxxx)/OU=RG293LY76W/O=VPNGo Inc./C=US\000k\030\371\304" not regist!

  • Pulling chatengine (chatengine/server:latest)... 报错

    Pulling chatengine (chatengine/server:latest)... 报错

    [root@localhost chatengine]# docker-compose -f ./docker-compose.yml up -d Pulling chatengine (chatengine/server:latest)... ERROR: The image for the service you're trying to recreate has been removed. If you continue, volume data could be lost. Consider backing up your data before continuing.

  • 客户端无法连接服务器呢?

    客户端无法连接服务器呢?

    我在windows10下,和ubuntu18.04下都部署了,测试发现客户端连不上呢?能解答一下么? 在frontend中提示:

    I0407 09:07:46.337977 10096 mtproto_server.go:94] onNewConnection 192.168.1.23:6044 I0407 09:07:46.338954 10096 server.go:140] onServerNewConnection - {peer: {connID: 58@frontend443-(192.168.1.23:12345->192.168.1.23:6044)}, ctx: {&{{0 0} 256 0xc00030ce10 0}}} I0407 09:07:46.340953 10096 mtproto_proxy_codec.go:236] first_bytes_64: c7d428f9fe2f4b3da6f530529833f967a1db6dab1bb19a0e6e39e382dec363d685bafac770866d8bd229404cecdaefcaf091b35e88dbe5b6efefefef0100f79b I0407 09:07:46.340953 10096 mtproto_app_codec.go:63] size1: 40 I0407 09:07:46.340953 10096 mtproto_server.go:102] onConnectionDataArrived 192.168.1.23:6044 I0407 09:07:46.342951 10096 server.go:145] onServerMessageDataArrived - receive data: {peer: {connID: 58@frontend443-(192.168.1.23:12345->192.168.1.23:6044)}, md: {conn_type: 1, auth_key_id: 0, quick_ack_id: 0, payload_len: 40}, msg: %!s(MISSING)} I0407 09:07:46.343951 10096 server.go:301] onServerUnencryptedRawMessage - receive data: {peer: {connID: 58@frontend443-(192.168.1.23:12345->192.168.1.23:6044)}, ctx: &{{%!s(int32=0) %!s(uint32=0)} %!s(int=256) %!s(*mtproto.TLHandshakeData=&{0xc0009085f0 {} [] 0}) %!s(int64=0)}, msg: {conn_type: 1, auth_key_id: 0, quick_ack_id: 0, payload_len: 40}} I0407 09:07:46.343951 10096 server.go:340] sendMessage - handshake: {peer: {connID: 58@frontend443-(192.168.1.23:12345->192.168.1.23:6044)}, md: request:<service_name:"handshake" method_name:"mtproto.TLHandshakeData" log_id:1247330190485360640 trace_id:1247330190485360642 span_id:1247330190485360643 > correlation_id:1247330190485360641 attachment_size:40 mtproto_meta:<auth_key_id:0 server_id:1 client_conn_id:58 client_addr:"192.168.1.23:6044" from:"frontend" receive_time:1586221666343 > , msg: data2:<state:513 client_conn_id:58 ctx:<constructor:CRC32_handshakeContext data2:<> > > } I0407 09:07:46.349948 10096 server.go:223] onClientHandshakeMessage - handshake: peer({connID: 1@handshake-(127.0.0.1:5702->127.0.0.1:10005)}), state: {data2:<state:514 res_state:1 client_conn_id:58 ctx:<constructor:CRC32_handshakeContext data2:<nonce:"XM\240\027C\311\375\207\221\275\036}\341d\313\267" server_nonce:"\020uW\342\277\003\242?\004\263\210g^\254\277" > > > } I0407 09:07:46.349948 10096 server.go:245] onClientHandshakeMessage - sendToClient to: {peer: {connID: 58@frontend443-(192.168.1.23:12345->192.168.1.23:6044)}, handshake: data2:<state:514 res_state:1 client_conn_id:58 ctx:<constructor:CRC32_handshakeContext data2:<nonce:"XM\240\027C\311\375\207\221\275\036}\341d\313\267" server_nonce:"\020uW\342\277\003\242?\004\263\210g^\254\277" > > > } I0407 09:07:46.356944 10096 mtproto_app_codec.go:63] size1: 88 I0407 09:07:46.356944 10096 mtproto_server.go:102] onConnectionDataArrived 192.168.1.23:6044 I0407 09:07:46.357944 10096 server.go:145] onServerMessageDataArrived - receive data: {peer: {connID: 58@frontend443-(192.168.1.23:12345->192.168.1.23:6044)}, md: {conn_type: 1, auth_key_id: 7899566645959756554, quick_ack_id: 0, payload_len: 88}, msg: %!s(MISSING)} I0407 09:07:46.357944 10096 server.go:345] onServerEncryptedRawMessage - receive data: {peer: {connID: 58@frontend443-(192.168.1.23:12345->192.168.1.23:6044)}, ctx: &{{%!s(int32=0) %!s(uint32=0)} %!s(int=512) %!s(*mtproto.TLHandshakeData=&{0xc000713900 {} [] 0}) %!s(int64=0)}, msg: {conn_type: 1, auth_key_id: 7899566645959756554, quick_ack_id: 0, payload_len: 88}} E0407 09:07:46.358957 10096 zrpc_client.go:140] not found kaddr by key: 7899566645959756554 I0407 09:07:48.825550 10096 mtproto_server.go:119] onConnectionClosed - 192.168.1.23:6044 I0407 09:07:48.835371 10096 server.go:176] onServerConnectionClosed - {peer: {connID: 58@frontend443-(192.168.1.23:12345->192.168.1.23:6044)}}

  • 运行时间长了,session服务会崩溃

    运行时间长了,session服务会崩溃

    goroutine 282555 [sync.Cond.Wait, 10 minutes]: sync.runtime_notifyListWait(0xc000da42d0, 0x7) /usr/lib/golang/src/runtime/sema.go:510 +0xeb sync.(*Cond).Wait(0xc000da42c0) /usr/lib/golang/src/sync/cond.go:56 +0x92 github.com/nebula-chat/chatengine/pkg/queue2.(*SyncQueue).Pop(0xc000f5f860, 0xc000cdf540, 0xc000cdf540) /root/src/github.com/nebula-chat/chatengine/pkg/queue2/sync_queue.go:51 +0x5b github.com/nebula-chat/chatengine/access/session/server.(*authSessions).rpcRunLoop(0xc000455cc0) /root/src/github.com/nebula-chat/chatengine/access/session/server/auth_sessions.go:404 +0x48 created by github.com/nebula-chat/chatengine/access/session/server.(*authSessions).Start /root/src/github.com/nebula-chat/chatengine/access/session/server/auth_sessions.go:356 +0x6c

    goroutine 156673 [select]: github.com/nebula-chat/chatengine/access/session/server.(*authSessions).runLoop(0xc001da4320) /root/src/github.com/nebula-chat/chatengine/access/session/server/auth_sessions.go:373 +0x16f created by github.com/nebula-chat/chatengine/access/session/server.(*authSessions).Start /root/src/github.com/nebula-chat/chatengine/access/session/server/auth_sessions.go:357 +0x8e

    goroutine 284740 [select]: github.com/nebula-chat/chatengine/access/session/server.(*authSessions).runLoop(0xc000454a00) /root/src/github.com/nebula-chat/chatengine/access/session/server/auth_sessions.go:373 +0x16f created by github.com/nebula-chat/chatengine/access/session/server.(*authSessions).Start /root/src/github.com/nebula-chat/chatengine/access/session/server/auth_sessions.go:357 +0x8e

  • 运行一段时间之后回报错

    运行一段时间之后回报错

    BizUnaryRecoveryHandler - goroutine 131366 [running]: runtime/debug.Stack(0x7f1815167fa8, 0xc001163080, 0xc001b3e2f0) /usr/lib/golang/src/runtime/debug/stack.go:24 +0xa7 github.com/nebula-chat/chatengine/pkg/grpc_util.BizUnaryRecoveryHandler(0x1701dc0, 0xc001d66420, 0x12498e0, 0xc00154fa50, 0x4c97db, 0xc00142c02d) /root/src/github.com/nebula-chat/chatengine/pkg/grpc_util/rpc_recovery_handler.go:32 +0x34 github.com/nebula-chat/chatengine/pkg/grpc_util/middleware/recovery2.unaryRecoverFrom(0x1701dc0, 0xc001d66420, 0x12498e0, 0xc00154fa50, 0x151ee40, 0xc000f61780, 0x40d47f) /root/src/github.com/nebula-chat/chatengine/pkg/grpc_util/middleware/recovery2/interceptors.go:75 +0x5a github.com/nebula-chat/chatengine/pkg/grpc_util/middleware/recovery2.UnaryServerInterceptor.func1.1(0x1701dc0, 0xc001d66420, 0xc0004bb2a0, 0xc000f61b38) /root/src/github.com/nebula-chat/chatengine/pkg/grpc_util/middleware/recovery2/interceptors.go:42 +0x77 panic(0x12498e0, 0xc00154fa50) /usr/lib/golang/src/runtime/panic.go:513 +0x1b9 github.com/nebula-chat/chatengine/messenger/biz_server/biz/base.(*PeerUtil).ToPeer(0xc0013df000, 0xc00116fae0) /root/src/github.com/nebula-chat/chatengine/messenger/biz_server/biz/base/peer_util.go:194 +0x3ca github.com/nebula-chat/chatengine/messenger/biz_server/server/messages.(*MessagesServiceImpl).MessagesGetPeerDialogs(0xc000010d80, 0x1701dc0, 0xc001d66420, 0xc00132e540, 0xc000010d80, 0x20, 0xc000f61a98) /root/src/github.com/nebula-chat/chatengine/messenger/biz_server/server/messages/messages.getPeerDialogs_handler.go:68 +0x9f2 github.com/nebula-chat/chatengine/mtproto._RPCMessages_MessagesGetPeerDialogs_Handler.func1(0x1701dc0, 0xc001d66420, 0x13dc5c0, 0xc00132e540, 0xc0004bb2a0, 0xc000f61b38, 0x40dd08, 0x20) /root/src/github.com/nebula-chat/chatengine/mtproto/schema.tl.sync_service.pb.go:18163 +0x89 github.com/nebula-chat/chatengine/pkg/grpc_util/middleware/recovery2.UnaryServerInterceptor.func1(0x1701dc0, 0xc001d66420, 0x13dc5c0, 0xc00132e540, 0xc001c3b460, 0xc001c3b480, 0x0, 0x0, 0x0, 0x0) /root/src/github.com/nebula-chat/chatengine/pkg/grpc_util/middleware/recovery2/interceptors.go:47 +0xba github.com/nebula-chat/chatengine/mtproto._RPCMessages_MessagesGetPeerDialogs_Handler(0x14b8260, 0xc000010d80, 0x1701dc0, 0xc001d66420, 0xc0010c20e0, 0xc000560db0, 0x0, 0x0, 0x0, 0x0) /root/src/github.com/nebula-chat/chatengine/mtproto/schema.tl.sync_service.pb.go:18165 +0x158 github.com/nebula-chat/chatengine/vendor/google.golang.org/grpc.(*Server).processUnaryRPC(0xc00041a900, 0x1716a60, 0xc00043de00, 0xc0013e9300, 0xc000529950, 0x25c0b78, 0x0, 0x0, 0x0) /root/src/github.com/nebula-chat/chatengine/vendor/google.golang.org/grpc/server.go:982 +0x4cd github.com/nebula-chat/chatengine/vendor/google.golang.org/grpc.(*Server).handleStream(0xc00041a900, 0x1716a60, 0xc00043de00, 0xc0013e9300, 0x0) /root/src/github.com/nebula-chat/chatengine/vendor/google.golang.org/grpc/server.go:1208 +0x1311 github.com/nebula-chat/chatengine/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc0004820f0, 0xc00041a900, 0x1716a60, 0xc00043de00, 0xc0013e9300) /root/src/github.com/nebula-chat/chatengine/vendor/google.golang.org/grpc/server.go:686 +0x9f created by github.com/nebula-chat/chatengine/vendor/google.golang.org/grpc.(*Server).serveStreams.func1 /root/src/github.com/nebula-chat/chatengine/vendor/google.golang.org/grpc/server.go:684 +0xa1 E0710 11:36:05.589755 2653 rpc_recovery_handler.go:44] Panic: rpc error: code = Unknown desc = panic unknown triggered: ToPeer(PEER_SELF: {peer_id: 0, access_hash: 0) error!

An open source Pusher server implementation compatible with Pusher client libraries written in Go

Try browsing the code on Sourcegraph! IPÊ An open source Pusher server implementation compatible with Pusher client libraries written in Go. Why I wro

Aug 27, 2022
Magma is an open-source software platform that gives network operators an open, flexible and extendable mobile core network solution.
Magma is an open-source software platform that gives network operators an open, flexible and extendable mobile core network solution.

Connecting the Next Billion People Magma is an open-source software platform that gives network operators an open, flexible and extendable mobile core

Dec 31, 2022
Squzy - is a high-performance open-source monitoring, incident and alert system written in Golang with Bazel and love.

Squzy - opensource monitoring, incident and alerting system About Squzy - is a high-performance open-source monitoring and alerting system written in

Dec 12, 2022
Headscale - An open source, self-hosted implementation of the Tailscale control server

Headscale - An open source, self-hosted implementation of the Tailscale control server

Dec 29, 2022
gRelay is an open source project written in Go that provides the circuit break pattern with a relay idea behind.
gRelay is an open source project written in Go that provides the circuit break pattern with a relay idea behind.

gRELAY gRelay is an open source project written in Go that provides: Circuit Break ✔️ Circuit Break + Relay ✔️ Concurrecny Safe ✔️ Getting start Insta

Sep 30, 2022
Open Source HTTP Reverse Proxy Cache and Time Series Dashboard Accelerator
Open Source HTTP Reverse Proxy Cache and Time Series Dashboard Accelerator

Trickster is an HTTP reverse proxy/cache for http applications and a dashboard query accelerator for time series databases. Learn more below, and chec

Jan 2, 2023
Open source 5G core network base on 3GPP R15
Open source 5G core network base on 3GPP R15

What is free5GC The free5GC is an open-source project for 5th generation (5G) mobile core networks. The ultimate goal of this project is to implement

Jan 4, 2023
Open Source Continuous File Synchronization
Open Source Continuous File Synchronization

Goals Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers. We strive to fulfill the goals belo

Dec 31, 2022
Project Kebe is the open-source Snap Store implementation.

Introduction Kebe intends to be a full replacement for the Snap Store. Quickstart Once you have an environment setup (for instance using https://githu

Nov 9, 2022
CDN for Open Source, Non-commercial CDN management
CDN for Open Source, Non-commercial CDN management

CDN Control Official Website: https://cluckcdn.buzz Documentation (Traditional Chinese): https://cluckcdn.buzz/docs/ 简体中文 README: README_CN.md Please

Dec 20, 2021
Apache Traffic Control is an Open Source implementation of a Content Delivery Network

Apache Traffic Control Apache Traffic Control is an Open Source implementation of a Content Delivery Network. Documentation Intro CDN Basics Traffic C

Jan 6, 2023
mysshw - a free and open source ssh cli client soft.

mysshw install go version <= 1.16.* use go get go get -u github.com/cnphpbb/mysshw go version >= 1.17.* use go install go install github.com/cnphpbb/

Dec 16, 2021
Hybridnet is an open source container networking solution, integrated with Kubernetes and used officially by following well-known PaaS platforms

Hybridnet What is Hybridnet? Hybridnet is an open source container networking solution, integrated with Kubernetes and used officially by following we

Jan 4, 2023
Openp2p - an open source, free, and lightweight P2P sharing network
Openp2p - an open source, free, and lightweight P2P sharing network

It is an open source, free, and lightweight P2P sharing network. As long as any device joins in, you can access them anywhere

Dec 31, 2022
Scout is a standalone open source software solution for DIY video security.
Scout is a standalone open source software solution for DIY video security.

scout Scout is a standalone open source software solution for DIY video security. https://www.jonoton-innovation.com Features No monthly fees! Easy In

Oct 25, 2022
Open-source platform to request any SSP like Bidswitch or Xandr.

The project goal is to provide an unique program to contact every SSP without know the differences between all of them.

Apr 7, 2022
Kasen - Yet-another open-source CMS for scanlators

Kasen Oh no, a yet-another open-source CMS for scanlators. Anyways... The back-e

Dec 27, 2022