Instal & update R1 Server di VPS Linux
Lokasi: panel mitra di mesinr1.com dan terminal VPS Anda
Selain versi desktop (Windows/macOS), R1 Server bisa dipasang di VPS Linux tanpa
tampilan grafis — cukup lewat terminal. Instalasi berjalan sebagai layanan
systemd, jadi server tetap hidup meski Anda menutup sesi SSH dan otomatis
menyala lagi setelah VPS di-restart.
Panduan ini mencakup tiga pekerjaan yang paling sering dilakukan:
- Instal baru — memasang R1 Server pertama kali di VPS.
- Update — menaikkan versi tanpa kehilangan data.
- Set URL publik — mendaftarkan domain agar server bisa diakses dari luar.
Setelah terpasang, admin mengelola R1 lewat browser di port 41730 — bukan
lewat aplikasi desktop.
Yang perlu disiapkan
- VPS dengan Ubuntu 22.04 ke atas atau Debian 12 ke atas, arsitektur amd64 (x86_64). Installer menolak versi yang lebih lama atau distribusi lain.
- Akses
rootatausudoke VPS lewat SSH. - Akun panel mitra di mesinr1.com untuk mengambil link unduhan dan kunci lisensi.
- Aplikasi authenticator di ponsel — R1 Server tidak memakai kata sandi, login memakai kode 6 digit.
- Opsional: domain yang sudah diarahkan ke IP VPS, bila server akan diakses dari internet.
Installer memeriksa distribusi dan arsitektur di awal, lalu berhenti bila tidak cocok. Ini disengaja: komponen pihak ketiga yang ikut dipasang butuh glibc versi baru, dan repositori PostgreSQL hanya mengenali nama rilis Ubuntu/Debian asli. Jangan memaksakan di distribusi lain.
Langkah 1 — Ambil link unduhan dari panel mitra
Paket Linux diunduh langsung di VPS, jadi yang Anda perlukan adalah link-nya, bukan filenya.
- Login ke panel mitra di mesinr1.com, lalu buka menu Download.
- Cari baris Linux pada kartu R1 Server.
- Klik tombol salin (ikon dua kotak di sebelah tombol Unduh) untuk menyalin link unduhan ke clipboard.

Tombol Unduh menyimpan file ke komputer Anda, lalu Anda perlu mengunggahnya
lagi ke VPS. Tombol salin memberi link yang bisa dipakai langsung di VPS
dengan curl atau wget, tanpa login — jauh lebih cepat.
Langkah 2 — Unduh dan ekstrak di VPS
Masuk ke VPS lewat SSH. Kerjakan satu per satu — unduhannya cukup besar, jadi tunggu sampai selesai sebelum lanjut ke perintah berikutnya.
2a. Unduh paket
Ganti LINK_YANG_DISALIN dengan link dari Langkah 1:
curl -L -o r1-server.tar.gz "LINK_YANG_DISALIN"
curl menampilkan progres unduhan. Tunggu sampai kembali ke prompt — ukuran
paketnya sekitar 35 MB, jadi biasanya perlu beberapa detik sampai semenit
tergantung koneksi VPS.
Link unduhan mengandung karakter seperti ? dan &. Tanpa tanda kutip
("..."), shell akan memotong link dan unduhan gagal atau menghasilkan file
rusak.
2b. Pastikan unduhan benar
Sebelum mengekstrak, periksa ukuran filenya:
ls -lh r1-server.tar.gz
Ukurannya harus puluhan MB (sekitar 35 MB).
Berarti yang terunduh bukan aplikasi, melainkan halaman error — biasanya karena link salah salin, terpotong tanda kutip, atau sudah kedaluwarsa. Ulangi Langkah 1 untuk menyalin link yang baru, lalu unduh ulang.
Bila diteruskan, perintah tar pada langkah berikutnya akan gagal dengan pesan
seperti not in gzip format.
2c. Ekstrak
tar xzf r1-server.tar.gz
cd r1-server
Setelah cd r1-server, Anda berada di dalam folder installer yang berisi
install.sh, upgrade.sh, dan set-public-url.sh. Pastikan dengan:
ls
Langkah 3 — Instal baru
Untuk VPS yang belum pernah dipasang R1 Server:
sudo ./install.sh
Installer akan menanyakan beberapa hal. Tekan Enter untuk menerima nilai bawaan bila Anda tidak yakin:
| Pertanyaan | Keterangan |
|---|---|
| Server port | Port backend API. Bawaan 41080. |
| Postgres role to create | Nama user database yang dibuat. Bawaan r1app. |
| Superadmin name / email / phone | Akun admin pertama. Email dan nomor telepon dipakai untuk login. |
| Public address (domain or IP) | Domain atau IP tempat server diakses dari luar. Bisa diubah nanti. |
| Reverse proxy in front of this server | Isi hanya bila ada proxy/load balancer di depan server. Kosongkan bila tidak ada. |
| Install WhatsApp gateway? | Pasang gateway WhatsApp. Bawaan tidak. |
| Install Jabber (XMPP) gateway? | Pasang gateway Jabber. Bawaan tidak. |
Installer kemudian memasang PostgreSQL, membuat database, menjalankan migrasi,
menyiapkan layanan systemd, dan memasang tampilan web admin. Proses ini memakan
waktu beberapa menit.
Simpan TOTP secret di akhir proses
Hal terakhir yang dicetak installer adalah data login superadmin:
Superadmin login
Email: admin@contoh.com
Phone: 081234567890
TOTP secret: JBSWY3DPEHPK3PXP...
otpauth URI: otpauth://totp/...
Catat TOTP secret sekarang juga dan masukkan ke aplikasi authenticator Anda. Secret ini tidak disimpan di mana pun dalam bentuk yang bisa dibaca lagi. Bila hilang, Anda tidak bisa login dan harus memasang ulang.
Kolom login menerima email atau nomor telepon, dipasangkan dengan kode 6 digit dari authenticator.
Setelah selesai, buka tampilan admin di browser:
http://IP_VPS_ANDA:41730
Lanjutkan dengan aktivasi kunci lisensi.
Jalankan sudo R1_INSTALL_WEB=0 ./install.sh. Gateway chat juga bisa dipilih
tanpa dialog dengan R1_INSTALL_WA=1 dan R1_INSTALL_JABBER=1.
Langkah 4 — Update ke versi baru
Update mengganti aplikasi saja — konfigurasi (.env) dan seluruh data
transaksi Anda tetap utuh.
Aktifkan "Izinkan update" lebih dulu
Sebelum menjalankan update, buka tampilan admin di browser
(http://IP_VPS_ANDA:41730) lalu masuk ke Pengaturan → Pengaturan Umum → tab
Lisensi. Aktifkan saklar Izinkan update.

Saat saklar ini menyala, server berhenti menerima transaksi baru dan menyelesaikan transaksi yang sedang berjalan. Tunggu sampai muncul keterangan hijau "Tidak ada proses yang sedang berjalan. Aplikasi aman untuk ditutup dan diperbarui."
Bila masih ada transaksi berjalan, upgrade.sh membatalkan diri dan tidak
menghentikan apa pun — instalasi lama tetap berjalan normal. Ini melindungi
transaksi yang saldonya sudah terpotong tetapi jawabannya belum kembali dari
supplier.
Saklar ini mati sendiri setelah aplikasi berjalan di versi baru, jadi tidak perlu dimatikan manual.
Jalankan update
Unduh dan ekstrak paket versi baru seperti pada Langkah 1–2, lalu dari dalam
folder r1-server yang baru:
sudo ./upgrade.sh
Bila Anda ingin memulainya lalu meninggalkannya, pakai --wait. Script akan
menunggu sampai server benar-benar kosong, baru melanjutkan:
sudo ./upgrade.sh --wait
Setelah selesai, buka kembali tampilan admin dan periksa nomor versi di tab Lisensi.
Langkah 5 — Set URL publik (domain)
Secara bawaan server hanya melayani permintaan dari localhost dan jaringan lokal. Begitu Anda mengaksesnya lewat domain atau IP publik, alamat itu harus didaftarkan lebih dulu — kalau tidak, server menolaknya dengan error 403.
Jalankan (perhatikan: script ini ada di /opt/r1-server/, bukan di folder
installer):
sudo /opt/r1-server/set-public-url.sh "https://api.domainanda.com" "https://admin.domainanda.com"
- Argumen pertama — alamat backend API. Wajib diisi.
- Argumen kedua — alamat tampilan web admin. Boleh dikosongkan bila admin hanya diakses lewat IP lokal.
Setiap alamat harus ditulis lengkap dengan https:// atau http://. Script
otomatis me-restart kedua layanan, jadi perubahan langsung berlaku.
Mendaftarkan beberapa alamat sekaligus
Pisahkan dengan koma bila satu layanan dijangkau lewat lebih dari satu alamat:
sudo /opt/r1-server/set-public-url.sh "https://api.domainanda.com,http://api.domainanda.com" "https://admin.domainanda.com"
Alamat pertama pada daftar backend dipakai sebagai alamat resmi yang dibagikan ke luar — URL callback supplier dan webhook Telegram dibangun dari alamat ini. Alamat berikutnya hanya diterima sebagai tujuan masuk.
Karena itu, saat pindah domain, letakkan domain baru di urutan pertama dan biarkan alamat lama di belakangnya sementara waktu, supaya supplier yang masih mengirim ke alamat lama tetap berhasil.
Bila tampilan admin diakses lewat http:// di internet, Anda bisa login tetapi
akan keluar sendiri beberapa saat kemudian — cookie sesi hanya dikirim lewat
koneksi aman. Pasang HTTPS (lewat reverse proxy atau Cloudflare
Tunnel) sebelum dipakai serius.
Ringkasan perintah
# 1. Unduh & ekstrak (link disalin dari panel mitra → menu Download → baris Linux)
# Dirangkai dengan && : bila unduhan gagal, ekstraksi tidak ikut dijalankan.
curl -L -o r1-server.tar.gz "LINK_YANG_DISALIN" && \
tar xzf r1-server.tar.gz && \
cd r1-server
# 2. Instal baru…
sudo ./install.sh
# …atau update instalasi yang sudah ada
# (aktifkan "Izinkan update" di web UI lebih dulu)
sudo ./upgrade.sh
# 3. Daftarkan domain publik
sudo /opt/r1-server/set-public-url.sh "https://api.domainanda.com" "https://admin.domainanda.com"
Pertanyaan umum
Bagaimana cara memeriksa server sedang berjalan atau tidak?
sudo systemctl status r1-server
sudo systemctl status r1-web
Untuk memulai ulang:
sudo systemctl restart r1-server
Di mana log-nya?
Log tersimpan di dua tempat sekaligus — journald dan file di /var/log/r1:
sudo journalctl -u r1-server -f
Isi yang sama juga bisa dibaca dari halaman Log Server di tampilan admin, tanpa perlu membuka SSH.
Update gagal dengan pesan "Upgrade dibatalkan. Server masih memproses"
Ini pengaman, bukan error. Artinya masih ada transaksi berjalan. Buka
Pengaturan → Pengaturan Umum → tab Lisensi, aktifkan Izinkan update,
tunggu statusnya hijau, lalu ulangi sudo ./upgrade.sh.
Tidak ada yang dihentikan saat pembatalan ini — instalasi lama tetap berjalan normal.
Saya membuka domain tetapi muncul error 403
Alamat tersebut belum terdaftar. Jalankan sudo /opt/r1-server/set-public-url.sh dengan domain Anda (lihat Langkah 5). Alamat
localhost dan jaringan lokal selalu diizinkan dan tidak perlu didaftarkan.
Saya memasang satu gateway chat saja, apakah bermasalah?
Tidak. WhatsApp dan Jabber dipasang terpisah dan berdiri sendiri. Permintaan ke gateway yang tidak terpasang dijawab dengan error per-permintaan, bukan kegagalan server.
Untuk menambahkan gateway yang belum ada, jalankan ulang sudo ./install.sh —
installer menawarkan gateway yang belum terpasang saja dan tidak merusak yang
sudah berjalan.
Bagaimana cara menghapus instalasi?
Dari dalam folder installer yang sudah diekstrak:
cd r1-server
sudo ./uninstall.sh
Script ini menghapus layanan dan file aplikasi, tetapi database tetap disimpan supaya data Anda tidak ikut hilang.