Dalam tutorial ini akan membangun Matrix Synapse dengan menggunakan sistem operasi Ubuntu 20.04.
1. Pastikan Ubuntu anda lakukan update repository.
apt update
2. Pastikan hostname anda adalah nama domain atau subdomain / FQDN yang sudah ter-resolve ke IP address server.
3. Install beberapa komponen
apt install -y lsb-release wget apt-transport-https
4. Tambahkan GPG key
wget -qO /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/matrix-org.list
5. Update kembali & install package utama
apt update apt install matrix-synapse-py3
Masukkan hostname untuk server anda. Jika ditanya apakah ingin report anonymous, anda bisa jawab Iya atau Tidak.
6. Pastikan service sudah di start dan sudah di enable
systemctl start matrix-synapse systemctl enable matrix-synapse
7. Pastikan service sudah running dengan cara mengecek apakah port 8008 sudah listening
ss -plnt
8. Konfigurasi pada Matrix Synapse
Gunakan command di bawah ini untuk generate Matrix Synapse registration. Kode tersebut digunakan untuk edit pada config selanjutnya.
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1
9. Edit Bind Address
Kita ubah bind-address agar listening menggunakan IP public server.
cd /etc/matrix-synapse/ nano homeserver.yaml
Pastikan modifikasi pada bagian bind_addresses di bawah ini
listeners: - port: 8008 tls: false type: http x_forwarded: true bind_addresses: ['ip.ip.ip.ip', '127.0.0.1'] resources: - names: [client, federation] compress: false
Disable registration User by default jika untuk private. Tambahkan baris berikut.
enable_registration: false
Modifikasi registration_shared_secret pada file config. Tambahkan baris ini.
registration_shared_secret: xxxxxxxxxxxxxxxxxxxxxxxx
Untuk konfigurasi lebih detail, silakan lihat di https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html
10. Install SSL certbot
apt install certbot -y
Kemudian generate subdomain yang sudah di point
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email email@customer -d domain.mu
Ketika sudah selesai, maka SSL akan terpasang di folder ini :
ls -la /etc/letsencrypt/live/domain.mu/
11. Install NGINX Reverse Proxy
apt install nginx -y
Konfigurasi pada config nginx
cd /etc/nginx/sites-available/ nano matrix
Kemudian gunakan config nginx berikut ini. Sesuaikan dengan pengaturan anda.
server { listen 443 ssl http2; listen [::]:443 ssl http2; # For the federation port listen 8448 ssl http2 default_server; listen [::]:8448 ssl http2 default_server; ssl_certificate /etc/letsencrypt/live/domain/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/domain/privkey.pem; server_name matrix.example.com; location ~ ^(/_matrix|/_synapse/client) { # note: do not add a path (even a single /) after the port in `proxy_pass`, # otherwise nginx will canonicalise the URI and cause signature verification # errors. proxy_pass http://ip-public-address:8008; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $host; # Nginx by default only allows file uploads up to 1M in size # Increase client_max_body_size to match max_upload_size defined in homeserver.yaml client_max_body_size 50M; } }
Kita link config tersebut, Kemudian cek apakah config nginx sudah benar.
ln -s /etc/nginx/sites-available/matrix /etc/nginx/sites-enabled/ nginx -t
Pastikan nginx sudah di start dan di enable auto startup
systemctl restart nginx systemctl enable nginx
12. Register user baru sebagai admin.
register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://ip-public-server:8008
Pada bagian ini masukkan user dan password yang diinginkan. Ketika ditanya apakah ingin sebagai admin, maka pilih yes.
Selamat! Registrasi user admin sudah selesai.
13. Uji coba
Untuk menggunakan Matrix Synapse ini, kita membutuhkan client web yang sudah ada yaitu https://riot.im/app/
Gunakan menu Sign In lalu pada bagian homeserver klik Edit lalu isikan nama-server-anda-tadi lalu proceed ke masukkan username dan password.