Membuat server XMPP tidaklah sulit selama ada Prosody yang mampu memudahkan keinginan kita. Mari kita bahas cara membuat server XMPP.
Membuat Server XMPP dengan Prosody
Prosody adalah program sumber terbuka yang berfokus pada komunikasi dalam protokol XMPP. Pengembang mendesain program untuk berjalan tanpa memakan sumber daya dan mudah dikonfigurasi.
Saat ini, saya menjalankan layanan XMPP dengan Prosody berbarengan program lain, seperti MariaDB, WordPress, Docker, dan lain-lain pada peladen yang berspesifikasi biasa saja, yaitu 1 vCPU dan 1 GB RAM. Saya tidak punya keluhan selama menggunakannya.
Cara Membuat Server XMPP
Pasang paket Prosody
melalui paket manajer APT.
$ sudo apt install prosody
Nyalakan layanan Prosody dengan perintah systemctl
.
$ sudo systemctl start prosody
Periksa apakah Prosody sudah berjalan atau belum.
$ sudo systemctl status prosody
Jika berjalan, seharusnya kamu mendapatkan seperti ini.
● prosody.service - Prosody XMPP Server
Loaded: loaded (/lib/systemd/system/prosody.service; enabled; vendor prese>
Active: active (running) since Tue 2023-06-13 00:41:20 UTC; 2 weeks 1 day >
Docs: https://prosody.im/doc
Process: 451828 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/S>
Main PID: 676 (lua5.2)
Tasks: 1 (limit: 1035)
Memory: 11.6M
CPU: 7min 39.591s
CGroup: /system.slice/prosody.service
└─676 lua5.2 /usr/bin/prosody -F
Code language: JavaScript (javascript)
Tetapkan domain yang digunakan untuk XMPP dengan menyunting konfigurasi Prosody.
$ sudo vim /etc/prosody/prosody.cfg.lua
Ganti nilai pada VirtualHost menjadi domain milik kamu.
VirtualHost "contoh.com"
Code language: JavaScript (javascript)
Kita bikin konfiguras Nginx juga untuk domainnya.
$ sudo vim /etc/nginx/nginx.conf
Buat pengaturan seperti ini dan jangan lupa sesuaikan kebutuhanmu.
server {
listen 80;
listen [::]:80;
server_name domain.com;
root /var/www/html/;
location ~ /.well-known/acme-challenge {
allow all;
}
}
Code language: JavaScript (javascript)
Kita ubah kepemilikan direktori agar NGINX mampu membaca direktori tersebut.
sudo chown www-data:www-data /var/www/html/
Code language: JavaScript (javascript)
Kita reset Nginx agar memuat perubahan yang dibuat.
sudo systemctl reload nginx
Buatlah sertifikat SSL domain kamu dengan perintah certbot
.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email contoh@domain.com -d domain.com
Code language: CSS (css)
Sunting kembali berkas untuk mengatur letak sertifikat SSL pada konfigurasi Prosody
sudo vim /etc/prosody/prosody.cfg.lua
Ketik lokasi sertifikat SSL domain kamu.
ssl = {
key = "/etc/letsencrypt/live/radhitya.org/privkey.pem";
certificate = "/etc/letsencrypt/live/radhitya.org/fullchain.pem";
}
Code language: JavaScript (javascript)
Tambahkan pengguna XMPP baru.
sudo prosodyctl adduser contoh@domain.com
Code language: CSS (css)
Atur kata sandi untuk akun tersebut.
sudo prosodyctl passwd contoh@domain.com
Code language: CSS (css)
Periksa lagi apakah pengaturan Prosody sudah benar atau belum.
sudo prosodyctl check config
Jika dirasa cukup, silahkan reset Prosody.
sudo systemctl restart prosody
Leave a Reply