Lewati ke konten utama

Instal & update R1 Server di VPS Linux

Lokasi: panel mitra di mesinr1.com dan terminal VPS Anda

Tentang panduan ini

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:

  1. Instal baru — memasang R1 Server pertama kali di VPS.
  2. Update — menaikkan versi tanpa kehilangan data.
  3. 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 root atau sudo ke 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.
Ubuntu/Debian saja

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.

Paket Linux diunduh langsung di VPS, jadi yang Anda perlukan adalah link-nya, bukan filenya.

  1. Login ke panel mitra di mesinr1.com, lalu buka menu Download.
  2. Cari baris Linux pada kartu R1 Server.
  3. Klik tombol salin (ikon dua kotak di sebelah tombol Unduh) untuk menyalin link unduhan ke clipboard.

Menyalin link unduhan Linux di panel mitra

Jangan pakai tombol Unduh

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.

Tanda kutip itu penting

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).

Ukurannya hanya beberapa KB?

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:

PertanyaanKeterangan
Server portPort backend API. Bawaan 41080.
Postgres role to createNama user database yang dibuat. Bawaan r1app.
Superadmin name / email / phoneAkun 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 serverIsi 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/...
Ini satu-satunya kali TOTP secret ditampilkan

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.

Hanya ingin API tanpa tampilan web?

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.

Saklar "Izinkan update" di tab Lisensi

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."

Kenapa langkah ini wajib

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 adalah alamat utama

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.

Gunakan HTTPS untuk tampilan admin

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.