Install Matrix Server dengan Synapse + Element di NAT VPS


NATVPS.id – Matrix adalah standar protokol komunikasi real-time yang dirancang untuk menyediakan infrastruktur komunikasi yang aman dan terdesentralisasi. Matrix digunakan sebagai protokol chat, memungkinkan pengguna untuk bertukar pesan, berpartisipasi dalam obrolan grup, berbagi berkas, dan berkolaborasi di berbagai platform dan layanan.

Kita dapat meng-host server Matrix kita sendiri untuk menjalankan server chat pribadi. Salah satu server yang berbasis Matrix adalah Synapse, yang kemudian dapat digunakan dengan aplikasi client seperti Element.

Artikel ini membahas mengenai langkah-langkah instalasi server Matrix dengan Synapse di NAT VPS. Artikel ini menggunakan Ubuntu 22.04 sebagai acuan, namun Anda dapat menggunakan distribusi lain selama didukung oleh Synapse.

Konfigurasi Port Forwarding

Mengingat kita menggunakan NAT, kita perlu menambahkan 2 konfigurasi port forwarding pada panel Virtualizor (atau panel VPS lain sesuai provider), yaitu port forwarding HTTP dan HTTPS untuk domain Synapse.

Sebagai contoh, pada artikel ini akan menggunakan domain matrix.tutorial.mdinata.my.id untuk Synapse. Anda bebas mengganti domain sesuai pilihan Anda. Catat domain ini, karena kita akan menggunakannya lagi pada proses instalasi.

blank

Jangan lupa untuk menambahkan DNS record yang menuju ke IP publik NAT VPS Anda, seperti ini:

blank

Jika bingung, silahkan membaca artikel kami mengenai domain forwarding di sini: Penjelasan Domain Forwarding di NAT VPS.

Install Synapse

Synapse dapat diunduh melalui repositori resminya.

Pertama, tambahkan repositori beserta key signing Matrix:

wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg \
 echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] \
 $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/matrix-org.list
 apt update

blank

Kemudian, install Synapse dengan:

apt install matrix-synapse-py3 -y

blank

Anda akan diminta mengisi nama server (Name of the server). Silahkan isi dengan domain yang Anda gunakan untuk Synapse, contoh: matrix.tutorial.mdinata.my.id.

Tunggu hingga instalasi selesai. Untuk mengecek apakah Synapse berhasil diinstall, gunakan command:

systemctl status matrix-synapse

blank

Konfigurasi Synapse

Sebelum menggunakan Synapse, kita perlu membuat 1 user untuk login melalui client (seperti Element). Untuk dapat membuat user, kita perlu membuat sebuah secret key terlebih dahulu.

Masukkan command berikut untuk men-generate secret key sepanjang 32 karakter:

cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1

Kemudian, buka file /etc/matrix-synapse/homeserver.yamlmenggunakan text editor seperti Nano:

apt install nano -y # Jika belum
 nano /etc/matrix-synapse/homeserver.yaml

blank

Kemudian, di baris paling bawah, tambahkan registration_shared_secret yang berisi secret key sebelumnya.

blank

Terakhir, restart server Synapse dengan:

systemctl restart matrix-synapse

Menambahkan User Baru di Synapse

Masukkan command berikut untuk menambah user baru:

register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml

Anda akan diberi beberapa input:

  • New user localpart: Username Anda, contoh: ndra
  • Password: Password yang akan Anda gunakan untuk login
  • Make admin: yes (user baru sebagai Admin)

blank

Konfigurasi NGINX (Reverse Proxy)

Synapse memerlukan koneksi terenkripsi menggunakan HTTPS demi faktor keamanan. Agar kita dapat mengakses URL dengan HTTPS melalui domain seperti https://matrix.tutorial.mdinata.my.id, kita dapat menggunakan reverse proxy seperti NGINX.

Pertama, install NGINX melalui perintah:

# Hapus Apache2 dan pendukungnya (biasanya terpasang secara bawaan di VPS OpenVZ)
 apt purge apache2* -y
 
 # Install NGINX
 apt install nginx -y

blank

Buat konfigurasi host baru khusus untuk Synapse:

nano /etc/nginx/sites-available/synapse

Kemudian tempelkan konfigurasi berikut:

# server {
 listen 80;
 listen [::]:80;
 server_name matrix.tutorial.mdinata.my.id;
 
 # Allow large request bodies (important for media uploads)
 client_max_body_size 50M;
 
 # Federation API (for other servers)
 location /_matrix/federation/ {
 proxy_pass proxy_set_header Host $host;
 proxy_set_header X-Forwarded-For $remote_addr;
 }
 
 # Client APIs (for Element and clients)
 location /_matrix/ {
 proxy_pass proxy_set_header Host $host;
 proxy_set_header X-Forwarded-For $remote_addr;
 }
 }

Ganti matrix.tutorial.mdinata.my.id dengan domain Anda.

blank

Aktifkan konfigurasi tersebut dengan:

ln -sf /etc/nginx/sites-available/synapse /etc/nginx/sites-enabled/
 
 # Restart NGINX
 systemctl restart nginx

Generate Sertifikat SSL (Let’s Encrypt)

Agar domain kita dapat diakses melalui HTTPS, kita perlu membuat sertifikat SSL. Kita dapat menggunakan sertifikat SSL gratis dari Let’s Encrypt melalui Certbot.

Install Certbot dan plugin NGINX nya menggunakan perintah:

apt install python3-certbot python3-certbot-nginx

blank

Lalu, generate sertifikat melalui Certbot dengan perintah

certbot --nginx -d matrix.tutorial.mdinata.my.id

Ganti matrix.tutorial.mdinata.my.id dengan domain Anda.

blank

Selamat! Server Synapse saat ini dapat diakses melalui koneksi aman HTTPS.

Login ke Synapse via Element

Untuk menggunakan Matrix, Anda dapat menggunakan aplikasi seperti Element, yang tersedia sebagai aplikasi ponsel, PC, dan Web client. Tutorial ini akan menggunakan Element Web sebagai contoh.

Buka https://app.element.io, kemudian pada Homeserver, klik Edit.

blank

Kemudian masukkan alamat server Synapse Anda.

blank

Terakhir, login menggunakan kredensial yang telah Anda buat sebelumnya.

blank

Selamat, Anda telah berhasil login ke server Matrix pribadi Anda.

blank

Penutup

Demikianlah artikel ini mengenai langkah-langkah install server Matrix dengan Synapse di NAT VPS.

Jika bingung atau ragu, jangan sungkan untuk bertanya di grup Telegram @IPv6Indonesia. Terima kasih!



Hiburan

Berita Olahraga

News

Berita Terkini

Berita Terbaru

Berita Teknologi

Seputar Teknologi

Drama Korea

Resep Masakan

Pendidikan

Berita Terbaru

Berita Terbaru

Berita Terbaru

Lifestyle

Leave a Reply

Your email address will not be published. Required fields are marked *