Skip to content

Kupinggajah, The Indonesian Open Source Secure Chat Server.

License

Notifications You must be signed in to change notification settings

lombok-android-developer/kupinggajah

 
 

Repository files navigation

Kupinggajah

Indonesian Open Source Secure Chat Platform: Chat Server

Motivasi pembuatan Kupinggajah:

Menyediakan chat platform yang sepenuhnya terbuka sehingga bebas digunakan dan dimodifikasi baik oleh kepentingan perorangan atau suatu instansi tanpa perlu membuat codebase chat platform dari awal.

Dependencies:

C Libraries/ Binaries Distributions

kore lnats lpthread ldl lhiredis ljson-c
libtool autoconf automake

Tambahan dependencies jika menggunakan fitur nats-streaming-server yg tidak ada di gnatsd:

libprotobuf-dev  libtool autoconf automake

Development Notes:

Sudah dites di Linux amd64 Ubuntu LTS 18.04.

Getting Started:

Install dependensi, Redis, dan jalankan NATS Server

sudo apt install autoconf automake libtool redis # Redis 4.0 up
wget https://github.com/nats-io/nats-streaming-server/releases/download/v0.14.3/nats-streaming-server-v0.14.3-linux-amd64.zip
unzip nats-streaming-server-v0.14.3-linux-amd64.zip
# pada versi nats streaming server ini, masih compatible dengan protokol NATS 1.0
# dan kompatibel dengan fitur gnatsd
cd nats-streaming-server-v0.14.3-linux-amd64
chmod +x nats-streaming-server
./nats-streaming-server -D &

sudo systemctl start redis

Clone repository beserta dependensi, compile dan install di sistem anda.

Catatan tentang versi pada dependendensi:

Kore 3.3.1
NATS C June 2, 2019
Hiredis 1.0
Json-C June 10, 2019
git clone --recurse-submodules https://github.com/aviezab/kupinggajah.git

cd kupinggajah

cd kore
export NOTLS=1
make
sudo make install

cd ../

cd nats.c
mkdir build
cd build
cmake .. -DNATS_BUILD_WITH_TLS=OFF -DNATS_BUILD_STREAMING=OFF #(hilangkan -DNATS_BUILD_STREAMING=OFF jika anda menginginkan untuk dukungan fitur nats-streaming-server yang tidak ada di gnatsd)
make
sudo make install

cd ../

cd hiredis
mkdir build
cd build
cmake ..
make
sudo make install

cd ../

cd json-c
sh autogen.sh
./configure
make
sudo make install

cd ../

# Finishing
sudo ldconfig

Untuk menjalankan Server Kupinggajah, pastikan firewall anda allow port 30000

kodev clean && kodev run

Untuk compile Worker dan menjalankan

gcc subq1.c natshighsend.c redishigh.c  -L/usr/local/lib -L. -I/usr/local/include -I/usr/local/include/hiredis  -Wl,--as-needed -ldl -lnats -lpthread -lprotobuf -ljson-c -lhiredis -o worker1
./worker1

Architecture

alt text

Status Development:

Server kupinggajah sudah bisa menerima pesan, meroutingnya, dan client sudah bisa mengambil pesan dari pengirim. alt text

Worker sudah menjalankan fungsinya sebagai router. alt text

Milestones Pengembangan (dalam progress)

  • Bisa menerima pesan √
  • Bisa mengoper pesan ke MQ1 √
  • Worker bisa mengambil pesan dari MQ1 lempar ke MQ2 √
  • User bisa mengambil pesan dari user lain yang mengirim √
  • Database user untuk registrasi, login dan daftar kontak
  • Fungsi untuk register, login dan list kontak
  • Security: validasi dan enkripsi baik transport HTTPS dan cipher
  • Front-end berupa web dan mobile app
  • Tes benchmark untuk konkurensi per detik dengan ukuran pesan tertentu
  • Untuk upload gambar dan file, akan dihandle oleh front-end karena menggunakan back-end terpisah

Mengapa menggunakan C?

Karena kami bisa. C juga memiliki performa tinggi dengan machine code yang sedikit.

Anda ingin berkontribusi?

Anda bisa cari dan chat kami di grup Telegram: https://t.me/idcplc , https://t.me/CCpp_Indonesia

License

Dibuat di bawah lisensi MIT.

Inisiasi dilakukan oleh teman-teman dari grit.id . Dimulai dari hal kecil di Indonesia, untuk dunia.

© Copyleft 2019, inisiator: aviezab.

About

Kupinggajah, The Indonesian Open Source Secure Chat Server.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 100.0%