avatar RicalDocs

The Daily Stack

  • HOME
  • CATEGORIES
  • TAGS
  • ARCHIVES
  • ABOUT
Home WeeBeeTalk
Article

WeeBeeTalk

Solusi telekomunikasi hybrid yang berfokus pada privasi, dirancang untuk konferensi enterprise dengan mengintegrasikan stack teknologi open-source seperti Rocket.Chat, Jitsi, dan Asterisk.

Published Jun 10, 2025 Updated Oct 3, 2025
By Risnanda Pascal
10 min read
WeeBeeTalk
WeeBeeTalk

1. Pendahuluan

WeeBeeTalk merupakan arsitektur telekomunikasi hybrid berorientasi privasi yang dirancang khusus untuk memenuhi kebutuhan konferensi enterprise melalui integrasi tumpukan teknologi sumber terbuka. Solusi ini dikembangkan oleh Risnanda Pascal & Gineng B. Pamungkas sebagai respons terhadap tantangan kontemporer dalam komunikasi bisnis modern, terutama menyangkut kerahasiaan data, interoperabilitas sistem, dan kontrol infrastruktur mandiri.

Dalam konteks lingkungan korporat yang semakin terdigitalisasi, kebutuhan akan platform konferensi yang mampu menjamin keamanan end-to-end tanpa mengorbankan fungsionalitas menjadi krusial. Arsitektur hybrid WeeBeeTalk memadukan teknologi berbasis IP (Rocket.Chat), komunikasi real-time berbasis WebRTC (Jitsi), dan teleponi tradisional (Asterisk) dalam satu ekosistem terintegrasi. Pendekatan ini memungkinkan organisasi untuk:

  1. Mempertahankan kedaulatan data melalui implementasi on-premise
  2. Mengurangi ketergantungan pada penyedia layanan cloud pihak ketiga
  3. Menerapkan kebijakan enkripsi dan otentikasi yang konsisten
  4. Menjaga interoperabilitas dengan infrastruktur telekomunikasi yang sudah ada

Inti arsitektur ini terletak pada integrasi strategis tiga komponen utama:

  • Rocket.Chat sebagai platform kolaborasi berbasis pesan instan
  • Jitsi Meet sebagai engine konferensi video WebRTC
  • Asterisk sebagai gateway teleponi berbasis IP-PBX

Arsitektur WeeBeeTalk Arsitektur WeeBeeTalk

Implementasi WeeBeeTalk mengadopsi paradigma “privacy by design” dengan menerapkan enkripsi end-to-end pada semua lapisan komunikasi (data-at-rest dan data-in-transit), Role-Based Access Control (RBAC), serta mekanisme autentikasi multi-faktor.

2. Lingkungan Sistem dan Prasyarat

WeeBeeTalk diimplementasikan pada lingkungan sistem operasi Debian GNU/Linux (versi stabil terkini) sebagai platform dasar, dipilih karena stabilitas jangka panjang (LTS), ekosistem paket yang komprehensif, dan kompatibilitas optimal dengan tumpukan teknologi open-source yang digunakan. Implementasi ini mengasumsikan lingkungan server Debian minimal dengan konfigurasi berikut:

2.1. Spesifikasi Sistem Minimum

  • Sistem Operasi: Debian 12 (Bookworm) x86_64
  • CPU: 4 core (arsitektur x64)
  • RAM: 8 GB
  • Storage: 50 GB (SSD direkomendasikan)
  • Jaringan: Alamat IP publik statis/DNS yang terkonfigurasi

2.2. Prasyarat Khusus Debian

1
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
1
sudo apt install -y apt-transport-https ca-certificates gnupg2 curl software-properties-common

3. Konfigurasi Rocket.Chat via Docker

3.1 Mengambil Konfigurasi Docker Compose Rocket.Chat

Konfigurasi yang diperlukan untuk penerapan Rocket.Chat melalui Docker tersedia dalam repositori resmi rocketchat-compose.

  1. Kloning repositori resmi rocketchat-compose menggunakan Git dengan perintah berikut:
    1
    
    git clone --depth 1 https://github.com/RocketChat/rocketchat-compose.git
    

    Opsi --depth 1 digunakan untuk hanya mengunduh riwayat commit terakhir, sehingga proses lebih cepat.

  2. Masuk ke direktori yang telah dikloning:
    1
    
    cd rocketchat-compose
    

    Direktori ini berisi berkas compose.yml, .env.example, serta berkas konfigurasi lain yang diperlukan untuk menyiapkan instansi Rocket.Chat.

  3. Salin berkas .env.example untuk membuat berkas .env:
    1
    
    cp .env.example .env
    

    Berkas .env ini digunakan untuk mendefinisikan konfigurasi penerapan, seperti versi Rocket.Chat, URL workspace, dan konfigurasi HTTPS opsional, tanpa perlu menyunting langsung berkas compose.yml.

3.2 Mengonfigurasi Rocket.Chat

Sebelum meluncurkan workspace Rocket.Chat, beberapa variabel kunci harus dikonfigurasi dalam berkas .env.

  1. Buka berkas .env dengan editor teks pilihan Anda, misalnya:
    1
    
    nano .env
    
  2. Atur variabel RELEASE ke versi Rocket.Chat yang diinginkan. Untuk lingkungan produksi, sangat disarankan untuk tidak menggunakan latest dan menentukan versi tertentu (contoh: 7.10.0) untuk memastikan stabilitas.
    1
    
    RELEASE=7.10.0
    

    Versi tersedia dapat dilihat di Rilis Rocket.Chat.

3.3 Menjalankan Rocket.Chat

Setelah berkas .env dikonfigurasi dan disimpan, siap untuk memulai workspace Rocket.Chat.

  1. Jalankan perintah berikut untuk mengunduh image Docker yang diperlukan dan memulai kontainer Rocket.Chat beserta layanan pendukungnya:
    1
    
    docker compose -f compose.database.yml -f compose.monitoring.yml -f compose.traefik.yml -f compose.yml up -d
    
  2. Periksa status semua kontainer yang berjalan dengan perintah:
    1
    
    docker ps
    

3.4 Penyesuaian Penerapan

Penerapan dapat disesuaikan dengan hanya menyertakan layanan yang diperlukan. Sebagai contoh, jika pemantauan atau reverse proxy Traefik tidak digunakan, berkas .yml terkait dapat dihilangkan dari perintah.

Contoh perintah tanpa pemantauan dan Traefik:

1
docker compose -f compose.database.yml -f compose.yml up -d

3.4 Mengakses Workspace Rocket.Chat

Setelah instance Rocket.Chat diterapkan, dapat diakses melalui browser.

  • Untuk pengujian lokal: Buka http://localhost:3000.
  • Untuk lingkungan produksi: Akses ROOT_URL yang telah dikonfigurasi di berkas .env (contoh: https://nama-domain.com).

4. Integrasi dengan WebRTC (Jitsi)

4.1 Paket yang Diperlukan dan Pembaruan Repositori

Untuk menyiapkan lingkungan yang diperlukan, paket-paket berikut harus diinstal:

Paket:

  • gnupg2: Implementasi lengkap dan gratis dari standar OpenPGP.
  • nginx-full: Server web berkinerja tinggi dan server proxy terbalik.
  • sudo: Diperlukan hanya jika berniat menggunakan sudo untuk tugas administratif.
  • curl: Alat baris perintah untuk mentransfer data dengan URL. Sebagai alternatif, wget dapat digunakan untuk menambahkan repositori paket Jitsi.

Pastikan sistem diperbarui dan paket-paket yang diperlukan telah diinstal. Jalankan sebagai root atau dengan sudo:

1
sudo apt update && sudo apt install -y apt-transport-https gnupg2 nginx-full curl

Sangat penting untuk menggunakan OpenJDK 11 demi kompatibilitas dan kinerja yang optimal.

4.2 Instalasi Jitsi Meet

4.2.1 Menginstal Kunci Repositori Jitsi

Kunci repositori Jitsi dapat diinstal ke dalam sistem dengan menjalankan perintah berikut:

1
curl https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg'

4.2.2 Membuat File sources.list.d dengan Repositori

File sources.list.d untuk repositori Jitsi dapat dibuat menggunakan perintah berikut:

1
echo 'deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list > /dev/null

4.2.3 Memperbarui Daftar Paket

Daftar paket dapat diperbarui dengan menjalankan perintah berikut:

1
sudo apt update

4.2.4 Menyiapkan dan Mengonfigurasi Firewall

Port-port berikut perlu dibuka di firewall untuk memungkinkan lalu lintas ke server Jitsi Meet:

  • 80 TCP: Untuk verifikasi/pembaruan sertifikat SSL dengan Let’s Encrypt. Diperlukan.
  • 443 TCP: Untuk akses umum ke Jitsi Meet. Diperlukan.
  • 10000 UDP: Untuk pertemuan audio/video jaringan umum. Diperlukan.
  • 22 TCP: Untuk mengakses server menggunakan SSH (port dapat diubah sesuai kebutuhan jika bukan 22). Diperlukan.
  • 3478 UDP: Untuk menanyakan server STUN (coturn, opsional, perlu perubahan di config.js untuk mengaktifkannya).
  • 5349 TCP: Untuk komunikasi video/audio jaringan cadangan melalui TCP (misalnya, ketika UDP diblokir), dilayani oleh coturn. Diperlukan.

Jika menggunakan ufw, buka port dengan perintah berikut:

1
2
3
4
5
6
7
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10000/udp
sudo ufw allow 22/tcp
sudo ufw allow 3478/udp
sudo ufw allow 5349/tcp
sudo ufw enable

Status firewall dapat diperiksa dengan menjalankan perintah berikut:

1
sudo ufw status verbose

4.2.5 Sertifikat TLS

Untuk memastikan komunikasi yang terenkripsi, diperlukan sertifikat TLS.

Selama instalasi Jitsi Meet, terdapat beberapa opsi yang dapat dipilih:

  1. Opsi yang direkomendasikan adalah memilih sertifikat dari Let’s Encrypt.
  2. Jika ingin menggunakan sertifikat yang berbeda, sertifikat tersebut harus diperoleh terlebih dahulu, kemudian Jitsi Meet dapat diinstal dengan memilih opsi “Saya ingin menggunakan sertifikat saya sendiri.”
  3. Penggunaan sertifikat yang ditandatangani sendiri juga dimungkinkan dengan memilih opsi “Generate a new self-signed certificate,” tetapi ini tidak disarankan karena beberapa alasan:
    • Penggunaan sertifikat yang ditandatangani sendiri akan mengakibatkan peringatan di browser pengguna, karena identitas server tidak dapat diverifikasi.
    • Aplikasi seluler Jitsi Meet memerlukan sertifikat yang valid dan ditandatangani oleh Certificate Authority yang tepercaya. Jika menggunakan sertifikat yang ditandatangani sendiri, aplikasi tidak akan dapat terhubung ke server.

4.2.6 Menginstal Paket Jitsi

Seluruh suite Jitsi dapat diinstal dengan menjalankan perintah berikut:

1
sudo apt install -y jitsi-meet

Generasi Sertifikat SSL/TLS: Selama instalasi, akan diminta untuk melakukan generasi sertifikat SSL/TLS. Untuk detail lebih lanjut, lihat bagian di atas.

Hostname: Selanjutnya, akan diminta untuk memasukkan nama host dari instance Jitsi Meet. Jika memiliki domain, gunakan nama domain spesifik, misalnya: meet.example.org. Sebagai alternatif, alamat IP mesin dapat dimasukkan (jika statis atau tidak berubah).

Nama host ini akan digunakan untuk konfigurasi virtual host di dalam Jitsi Meet dan juga akan digunakan oleh pengguna untuk mengakses konferensi web.

Untuk menginstal paket tertentu dari Jitsi, gunakan perintah berikut:

1
2
3
sudo apt -y install jitsi-videobridge
sudo apt -y install jicofo
sudo apt -y install jigasi

4.2.7 Kontrol Akses

Server Jitsi Meet: Secara default, siapa pun yang memiliki akses ke server Jitsi Meet dapat memulai konferensi. Jika server terbuka untuk umum, siapa pun dapat melakukan obrolan dengan orang lain.

Konferensi/Ruang: Kontrol akses untuk konferensi atau ruang dikelola di dalam ruang tersebut. Kata sandi dapat diatur di halaman web ruang tertentu setelah dibuat.

Konfigurasi Lanjutan: Jika instalasi dilakukan pada mesin di belakang NAT, jitsi-videobridge seharusnya mengonfigurasi dirinya secara otomatis saat boot. Jika panggilan tiga arah tidak berfungsi, konfigurasi lebih lanjut dari jitsi-videobridge diperlukan agar dapat diakses dari luar.

Pastikan semua port yang diperlukan telah diarahkan (forwarded) ke mesin tempat jitsi-videobridge berjalan. Secara default, port yang digunakan adalah TCP/443 dan UDP/10000.

Tambahkan pemetaan statis ke bagian ice4j.harvest.mapping di /etc/jitsi/videobridge/jvb.conf:

1
2
3
4
5
6
7
8
9
10
11
12
ice4j {
  harvest {
    mapping {
      static-mappings = [
        {
          local-address = "<Local.IP.Address>"
          public-address = "<Public.IP.Address>"
        }
      ]
    }
  }
}

Systemd/Limits: Penerapan default akan memiliki nilai rendah untuk maksimum proses dan file terbuka. Untuk lebih dari 100 peserta, ubah /etc/systemd/system.conf menjadi:

1
2
3
DefaultLimitNOFILE=65000
DefaultLimitNPROC=65000
DefaultTasksMax=65000

Detail Systemd

Untuk memuat perubahan systemd pada sistem yang sedang berjalan, eksekusi perintah berikut:

1
sudo systemctl daemon-reload
1
sudo systemctl restart jitsi-videobridge2

Untuk memeriksa bagian tugas, jalankan:

1
sudo systemctl status jitsi-videobridge2

Untuk memeriksa nilai-nilai tersebut, jalankan perintah berikut:

1
systemctl show --property DefaultLimitNPROC
1
systemctl show --property DefaultLimitNOFILE
1
systemctl show --property DefaultTasksMax

Seharusnya terlihat Tasks: XX (limit: 65000). Untuk memeriksa bagian file dan proses, jalankan:

1
cat /proc/`cat /var/run/jitsi-videobridge/jitsi-videobridge.pid`/limits

Seharusnya terlihat:

1
2
Max processes             65000                65000                processes
Max open files            65000                65000                files

4.2.8 Konfirmasi bahwa Instalasi Berfungsi

Luncurkan peramban web (seperti Firefox, Chrome, atau Safari) dan masukkan nama host atau alamat IP dari langkah sebelumnya ke dalam bilah alamat.

Jika menggunakan sertifikat yang ditandatangani sendiri (berbeda dengan menggunakan Let’s Encrypt), peramban web akan meminta konfirmasi untuk mempercayai sertifikat tersebut. Jika menguji dari aplikasi iOS atau Android, kemungkinan besar akan gagal pada titik ini jika menggunakan sertifikat yang ditandatangani sendiri.

Setelah mengakses, seharusnya terlihat halaman web yang meminta untuk membuat pertemuan baru. Pastikan dapat berhasil membuat pertemuan dan bahwa peserta lain dapat bergabung dalam sesi tersebut.

Jika semua langkah ini berhasil, maka layanan konferensi Jitsi telah beroperasi dengan baik.

4.3 Instalasi Jitsi Meet via Docker (Rekomendasi)

4.3.1 Unduh dan Ekstrak Paket Rilis

Unduh rilis stabil terbaru dari repositori resmi menggunakan perintah berikut:

1
wget $(wget -q -O - https://api.github.com/repos/jitsi/docker-jitsi-meet/releases/latest | grep zip | cut -d\" -f4)

Ekstrak berkas yang telah diunduh:

1
unzip <filename>

4.3.2 Konfigurasi Variabel Lingkungan

Salin template variabel lingkungan dan buat berkas konfigurasi:

1
cp env.example .env

Hasilkan kata sandi kuat untuk komponen layanan dengan menjalankan skrip:

1
./gen-passwords.sh

Skrip ini akan secara otomatis menghasilkan dan mengisi nilai-nilai kriptografi yang aman dalam berkas .env.

4.3.3 Persiapan Direktori Konfigurasi

Buat struktur direktori yang diperlukan untuk penyimpanan konfigurasi dan data persisten:

1
mkdir -p ~/.jitsi-meet-cfg/{web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}

4.3.4 Penyesuaian Konfigurasi (Opsional)

Sesuaikan pengaturan sesuai kebutuhan dengan mengedit berkas .env. Beberapa parameter penting yang dapat disesuaikan:

  • HTTP_PORT: Port untuk akses HTTP (default: 8000)
  • HTTPS_PORT: Port untuk akses HTTPS (default: 8443)
  • TZ: Zona waktu server (default: UTC)
  • PUBLIC_URL: URL publik untuk akses eksternal (wajib untuk produksi)

4.3.5 Menjalankan Layanan

Jalankan seluruh stack layanan dalam mode latar belakang:

1
docker compose up -d

Proses ini akan mengunduh image Docker yang diperlukan dan menginisiasi kontainer untuk semua komponen Jitsi Meet.

4.3.6 Verifikasi Instalasi

Akses antarmuka web melalui:

  • HTTPS: https://localhost:8443 (atau port yang dikonfigurasi)
  • HTTP: http://localhost:8000 (untuk keperluan reverse proxy)

4.3.7 Konfigurasi Produksi

Untuk penggunaan dalam lingkungan produksi, beberapa penyesuaian kritikal diperlukan:

1. Mengatur URL Publik

Edit berkas .env dan tentukan variabel PUBLIC_URL dengan domain publik yang valid:

1
PUBLIC_URL=https://meet.domain-anda.example
2. Konfigurasi Sertifikat SSL

Gunakan sertifikat SSL yang valid dari otoritas sertifikat terpercaya. Sertifikat dapat dikonfigurasi melalui:

  • Reverse proxy (Nginx/Apache)
  • Integrasi dengan Let’s Encrypt menggunakan komponen web
3. Pengaturan Keamanan

Implementasikan praktik keamanan tambahan:

  • Aktifkan autentikasi pengguna
  • Konfigurasi firewall dan aturan akses jaringan
  • Lakukan hardening pada konfigurasi servis

4.3.8 Pemecahan Masalah

Masalah Umum dan Solusi
  1. Kesalahan Akses Media:
    • Pastikan mengakses melalui HTTPS bukan HTTP
    • Verifikasi izin perangkat di browser
  2. Konflik Port:
    • Periksa port yang sudah digunakan dengan netstat -tulpn
    • Sesuaikan pengaturan port dalam berkas .env
  3. Masalah Penyimpanan:
    • Verifikasi hak akses pada direktori ~/.jitsi-meet-cfg/
    • Pastikan ruang disk mencukupi

4.3.9 Penghentian dan Penghapusan

Untuk menghentikan dan menghapus instansasi:

1
docker compose down

Data konfigurasi akan tetap tersimpan dalam direktori ~/.jitsi-meet-cfg/ untuk penggunaan kembali.

5. Integrasi dengan Asterisk

Lihat dokumentasi tentang Membangun VoIP Server menggunakan Asterisk.

Pranala Luar

  • Deploy Rocket.Chat
  • Asterisk Manager Interface AMI
  • Jitsi Meet Handbook

Pranala Menarik

  • Home Server
  • Membangun VoIP Server
  • Docker Command Reference
Tech Sovereign, Communications
docker telecommunications self-hosted
This content is licensed under CC BY 4.0 by the author.
Share
External Links
  • RicalNet

Table of Contents

Related Articles

Sep 14, 2025

Matrix Protocol with Synapse and Element

Membangun platform komunikasi terenkripsi dan terdesentralisasi menggunakan protokol Matrix, menghadirkan server Synapse untuk infrastruktur yang aman dan klien Element sebagai antarmuka pengguna.

Aug 24, 2025

Calibre-Web

Panduan tentang instalasi dan konfigurasi Calibre-Web sebagai manajemen buku elektronik.

Aug 11, 2025

SearXNG

Ciptakan dan kelola search engine pribadi Anda untuk pencarian privat yang berdaulat.

Docker Command Reference

Praktik Terbaik Menjaga Privasi di Android

RicalNet © Some rights reserved

This site was last updated on October 03, 2025

Privacy Policy • Source code

Trending Tags

linux cloud computing privacy docker self-hosted cryptography android cisco packet tracer tools telecommunications

An updated version of this content is available