Cara Deploy Web App R Shiny ke Server, Anti Ribet dan Cepat!
Deploy web app R Shiny ke server adalah langkah penting untuk membuat aplikasi analisis data bisa diakses lebih luas. Artikel ini akan membahas berbagai opsi cara R Shiny deployment yang bisa kamu pilih sesuai kebutuhan, dari yang sederhana hingga enterprise.
Workflow Dasar Deploy Web App R Shiny
Kalau kamu sudah paham apa itu R Shiny, mungkin sudah tahu kenapa banyak orang jatuh hati dengan framework ini: open-source, bisa bikin dashboard interaktif tanpa frontend developer, dan cocok untuk prototyping analitik.Â
Nah, langkah berikutnya tentu hosting aplikasi Shiny agar bisa diakses banyak orang sekaligus. Proses ini umum disebut deployment.Â
Baca Juga: Mau Jago Data Science? Mulai dari Bahasa Pemrograman R!
Secara umum, ada tiga cara dasar untuk melakukan R Shiny deployment menggunakan Shinyapp.io:
Proses Deployment Dasar
Langkah paling umum adalah deploy ke shinyapps.io dengan paket rsconnect:
# Step 1: Masuk ke direktori aplikasi
setwd("/path/to/your/shiny-app")
# Step 2: Tes aplikasi lokal
shiny::runApp()
# Step 3: Deploy ke shinyapps.io
rsconnect::deployApp(
appName = "my-analytics-dashboard",
appTitle = "Analytics Dashboard",
account = "your-username"
)
# Step 4: Monitor proses deploy dan dapatkan URL app
Baca Juga: 4 Langkah Mudah Deploy WordPress dari GitHub ke Website
Konfigurasi Deployment Advance
Untuk aplikasi produksi, kamu bisa pakai opsi lanjutan agar lebih optimal:
rsconnect::deployApp(
appName = "production-dashboard",
appTitle = "Production Analytics Dashboard",
account = "your-username",
appFiles = c("app.R", "global.R", "R/", "data/", "www/"),
lint = TRUE,
logLevel = "verbose",
launch.browser = TRUE
)
Workflow Deployment Otomatis
Kalau sering update, bikin script otomatis untuk CI/CD akan sangat membantu:
deploy_to_shinyapps <- function(app_name, app_dir = getwd()) {
rsconnect::deployApp(
appDir = app_dir,
appName = app_name,
lint = TRUE,
launch.browser = FALSE
)
message(paste("Sukses deploy:", app_name))
}
# Jalankan
deploy_to_shinyapps("my-dashboard")
Dengan workflow ini, kamu bisa jaga konsistensi deployment dan mengurangi error manual. Nah, itu tadi gambaran workflow dasar. Tapi tentu saja, shinyapps.io bukan satu-satunya cara. Ada banyak opsi hosting lain yang bisa kamu pilih sesuai skala dan kebutuhan.Â
Dalam artikel ini, kita akan bahas 5 cara praktis untuk deploy web app R Shiny ke server:
- Vanilla Shiny
- Shinyapps.io
- Shiny Server Open Source
- Shiny Proxy
- Posit Connect
Option #1: Vanilla Shiny
Cara paling dasar adalah menjalankan langsung Shiny di virtual machine atau container. Misalnya pakai Docker untuk mengemas aplikasi, lalu host di platform pilihanmu.
- Kelebihan: fleksibel, tanpa biaya lisensi, cocok untuk eksperimen atau penggunaan terbatas.
- Kekurangan: tidak ada autentikasi bawaan, keamanan tergantung platform hosting, scaling bisa tricky.
- Hosting options:
- Deploy langsung di VM → overhead besar, kurang praktis.
- Unmanaged container → lebih efisien tapi tetap butuh skill DevOps.
- Managed container → pakai AWS ECS, Azure App Services, atau GCP.
Langkah-langkah deploy web app R Shiny menggunakan Vanilla Shiny:
1. Siapkan server/VM
Install R dan package Shiny:
sudo apt update && sudo apt install r-base
install.packages("shiny")
2. Buat aplikasi Shiny
Simpan file app.R
berisi kode Shiny (UI + Server).
3. Jalankan aplikasi
R -e "shiny::runApp('/path/to/app', host='0.0.0.0', port=3838)"
Akses di browser: http://<IP-server>:3838
.
4. Opsional: Deploy dengan Docker
Buat Dockerfile
, build image, lalu run container:
docker build -t myshinyapp .
docker run -d -p 3838:3838 myshinyapp
Vanilla Shiny cocok untuk eksperimen atau app kecil, tapi butuh tambahan konfigurasi (misalnya autentikasi & SSL) kalau dipakai di produksi.
Option #2: Shinyapps.io
Ini solusi termudah dan populer dari Posit (sebelumnya RStudio). Kamu tinggal deploy via rsconnect
, dan aplikasi langsung online.
- Kelebihan:
- Simple, tanpa perlu atur server.
- Ada paket gratis untuk uji coba.
- Kekurangan:
- Data dan app ada di luar firewall.
- Scaling terbatas (jam runtime maksimal).
- Autentikasi hanya tersedia di paket berbayar.
Shinyapps.io ideal kalau kamu ingin share Shiny App ke tim kecil atau client tanpa ribet. Tapi kalau aplikasimu kritikal dan butuh compliance ketat, mungkin kurang cocok.
Option #3: Shiny Server Open Source
Solusi self-hosted dari Posit ini memungkinkan kamu jalankan banyak Shiny App di satu server.
- Kelebihan:
- Open source, gratis.
- Bisa host beberapa app sekaligus.
- Kekurangan:
- Tidak ada autentikasi bawaan.
- Skalabilitas terbatas (satu proses per app).
- Performa menurun kalau user terlalu banyak.
Langkah-langkah deploy web app R Shiny menggunakan Posit (open-source server):
1. Install Shiny Server di Linux (Ubuntu contoh):
sudo apt update
sudo apt install gdebi-core
wget https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.20.1002-amd64.deb
sudo gdebi shiny-server-1.5.20.1002-amd64.deb
2. Siapkan aplikasi Shiny
Simpan app di:
/srv/shiny-server/myapp/
Harus ada file app.R
atau kombinasi ui.R
+ server.R
.
3. Akses aplikasi
Jalankan server, lalu buka
http://<IP-server>:3838/myapp
4. Konfigurasi opsional
- Edit file
/etc/shiny-server/shiny-server.conf
untuk menambah app lain. - Tambah reverse proxy (Nginx/Apache) + SSL untuk keamanan.
Bagus untuk kebutuhan sederhana, misalnya dashboard internal dengan user terbatas. Cocok buat kamu yang mau kontrol penuh server tanpa biaya lisensi.
Option #4: Shiny Proxy
Dikembangkan oleh OpenAnalytics, Shiny Proxy berbasis container (Docker/Kubernetes). Ini memungkinkan satu user jalan di satu container, sehingga scaling lebih fleksibel.
- Kelebihan:
- Ada autentikasi bawaan.
- Mendukung berbagai jenis aplikasi, tidak hanya R Shiny.
- Skalabilitas tinggi dengan container orchestration.
- Kekurangan:
- Lebih resource-heavy (satu container per user).
- Butuh pengalaman mengelola Docker/Kubernetes.
Langkah-langkah deploy web app R Shiny menggunakan Shiny Proxy:
1. Persiapan environment
- Pastikan Docker sudah terpasang.
- Install Java (Shiny Proxy berbasis Java).
sudo apt update
sudo apt install default-jre docker.io
2. Buat Docker image Shiny App
Misalnya Dockerfile
:
FROM rocker/shiny:latest
COPY ./app /srv/shiny-server/
EXPOSE 3838
 Build image:
docker build -t shinyapp.
3. Download & konfigurasi Shiny Proxy
Buat file application.yml
:
proxy:
port: 8080
authentication: simple
users:
- name: admin
password: admin
groups: admins
specs:
- id: myshiny
display-name: My Shiny App
container-cmd: ["R", "-e", "shiny::runApp('/srv/shiny-server')"]
container-image: shinyapp
port: 3838
4. Jalankan Shiny Proxy
java -jar shinyproxy*.jar
 Akses di browser:
http://<IP-server>:8080
Shiny Proxy cocok untuk deployment multi-user dengan autentikasi bawaan dan bisa diskalakan pakai Docker/Kubernetes.
Option #5: Posit Connect
Ini versi premium dari Shiny Server Pro. Dibuat untuk kebutuhan enterprise dengan dukungan penuh untuk Shiny, RMarkdown, hingga Python apps.
- Kelebihan:
- Autentikasi lengkap, mendukung integrasi enterprise.
- Skalabilitas tinggi dengan manajemen resource efisien.
- Maintenance relatif mudah.
- Kekurangan:
- Berbayar, biaya lisensi bisa tinggi.
Langkah-langkah deploy web app R Shiny menggunakan Posit Connect:
1. Install Posit Connect
- Unduh installer dari Posit.
- Ikuti petunjuk instalasi sesuai OS (Linux/Windows Server).
2. Hubungkan R dengan Posit Connect
- Install package
rsconnect
:
install.packages("rsconnect")
- Konfigurasi akun (biasanya lewat token yang dibuat di dashboard Connect).
3. Deploy aplikasi Shiny
Dari RStudio, cukup klik:Publish
→ pilih Posit Connect → pilih app.
Atau lewat script:
library(rsconnect)
deployApp(
appDir = "path/to/your/app",
account = "your-account",
server = "your-connect-server"
)
4. Kelola & pantau aplikasi
- Login ke dashboard Posit Connect.
- Atur autentikasi, izin pengguna, dan resource penggunaan.
Catatan: Posit Connect adalah solusi enterprise. Fiturnya lengkap (auth, scaling, logging, integrasi CI/CD), tapi berbayar dan biasanya dipakai di perusahaan besar.
Mana yang Terbaik untuk R Shiny Deployment?
Dari lima opsi tadi, pilihan terbaik sangat tergantung kebutuhanmu:
- Untuk belajar dan eksperimen: Vanilla Shiny atau Shinyapps.io sudah cukup.
- Untuk server internal kecil: Shiny Server Open Source bisa jadi opsi.
- Untuk user lebih banyak dan fleksibilitas tinggi: Shiny Proxy patut dicoba.
- Untuk enterprise & produksi serius: Posit Connect adalah solusi paling lengkap.
Ingat, semakin kompleks kebutuhanmu, semakin besar pula tuntutan akan infrastruktur dan biaya.
Kesimpulan
Ada banyak cara deploy web app R Shiny ke server, dari yang sederhana hingga enterprise-grade. Yang penting, kamu pilih solusi sesuai kebutuhan dan kemampuan maintenance jangka panjang.
Kalau kamu butuh server stabil, fleksibel, dan aman untuk host aplikasi Shiny, pakai VPS Murah dari IDwebhost bisa jadi solusi tepat. Dengan resource dedicated, kamu bebas eksperimen sekaligus siap scale up kalau user bertambah.