Cara Instalasi Open WebUI di qVM

Daftar Isi
Open WebUI adalah antarmuka chat berbasis browser untuk Ollama — memberi pengalaman mirip ChatGPT lengkap dengan riwayat percakapan, multi-user, dan pergantian model tanpa restart, di atas model yang berjalan sepenuhnya lokal. Panduan ini menjelaskan cara instalasi Open WebUI di qVM Ubuntu 24.04 LTS menggunakan Docker Compose, disatukan dengan Ollama sebagai backend, konfigurasi Nginx sebagai reverse proxy, sampai pemasangan SSL Let's Encrypt.
Pengenalan
Open WebUI didesain untuk diakses langsung oleh pengguna menggunakan browser, dan sudah punya sistem autentikasi bawaan — akun admin dibuat saat pertama kali Anda akses, pengguna berikutnya bisa daftar atau diundang, membuat Open WebUI aman diletakkan di depan sebagai satu-satunya pintu masuk, sementara backend inference (Ollama) tetap tersembunyi di belakangnya, cuma terhubung melalui Docker internal network.
Panduan ini menggunakan Docker Compose, supaya Ollama dan Open WebUI bisa Anda kelola sebagai satu stack menggunakan satu file konfigurasi, alih-alih menjalankan tiap container secara manual satu per satu.
Sesuai pola pada panduan-panduan aplikasi lain di qVM, Open WebUI diletakkan di belakang Nginx sebagai reverse proxy, lalu diamankan dengan SSL gratis dari Let's Encrypt — karena qVM tidak mengaktifkan firewall secara default dan cuma punya IP Publik, akses langsung ke port aplikasi tanpa HTTPS berarti kredensial login dan seluruh isi percakapan Anda dikirim dalam bentuk plain text melalui internet.
Ubuntu 24.04 LTS dipilih sebagai basis OS karena mendapat dukungan resmi (security update dan bug fix) sampai April 2029.
Persyaratan
Sebelum mulai instalasi, pastikan hal-hal berikut sudah terpenuhi:
Software
- Ubuntu 24.04 LTS dengan Docker Engine dan Docker Compose sudah terpasang
- Nginx sudah terpasang
- Domain yang sudah diarahkan (A record) ke IP Publik qVM — digunakan untuk konfigurasi reverse proxy dan pembuatan sertifikat SSL
Baca juga:
Hardware / Spesifikasi VPS qVM
Panduan ini menggunakan paket qVM-4, dengan spesifikasi:
- vCPU: 2
- RAM: 4 GB
- Storage: NVMe 60 GB
- 1 IP Publik
Open WebUI sendiri relatif ringan (di bawah 1 GB RAM saat idle), tapi berjalan berdampingan dengan Ollama dan model LLM yang sedang di-load — total pemakaian RAM tetap didominasi oleh model yang aktif, bukan oleh Open WebUI itu sendiri. Sesuaikan pilihan model dengan RAM yang tersedia di qVM Anda.
Tahapan
1. Instalasi Nginx
apt install nginx -yAktifkan supaya berjalan otomatis setiap qVM reboot, lalu cek statusnya:
systemctl enable nginx
systemctl status nginx2. Siapkan Docker Network dan Volume Model
Kalau qVM Anda belum punya container Ollama yang berjalan, buat dulu network dan volume untuk menyimpan model:
docker network create ollama-net
docker volume create ollama_dataKalau Anda sudah pernah menjalankan Ollama secara manual dengan docker run sebelumnya dan model sudah terunduh, lewati langkah ini — volume yang sudah ada akan tetap digunakan selama nama volume-nya sama (ollama_data), dan container manual tersebut sebaiknya dihentikan dulu supaya tidak bentrok dengan container yang akan dikelola Compose:
docker stop ollama && docker rm ollama3. Buat Docker Compose File
mkdir -p /opt/openwebui-stack
cd /opt/openwebui-stack
vim docker-compose.ymlIsi dengan:
services:
ollama:
image: ollama/ollama
container_name: ollama
volumes:
- ollama_data:/root/.ollama
restart: unless-stopped
open-webui:
image: ghcr.io/open-webui/open-webui:v0.11.0
container_name: open-webui
volumes:
- open_webui_data:/app/backend/data
environment:
- OLLAMA_BASE_URL=http://ollama:11434
ports:
- "127.0.0.1:8080:8080"
depends_on:
- ollama
restart: unless-stopped
volumes:
ollama_data:
external: true
open_webui_data:Beberapa poin penting dari konfigurasi di atas:
ollama_data: external: true— merujuk ke named volume yang dibuat pada tahap 2, supaya model yang sudah Anda unduh sebelumnya tetap terpakai, bukan membuat volume kosong yang baru.OLLAMA_BASE_URL=http://ollama:11434— Open WebUI terhubung ke Ollama menggunakan nama service di dalam network internal Compose, bukan menggunakan IP atau domain publik.ports: "127.0.0.1:8080:8080"— port Open WebUI cuma di-bind ke localhost qVM, bukan ke0.0.0.0atau IP Publik. Akses dari luar nanti sepenuhnya melalui Nginx sebagai reverse proxy, bukan langsung ke container.
4. Jalankan Stack
docker compose up -dVerifikasi kedua container berjalan:
docker compose ps
Kalau Ollama belum punya model sama sekali (container baru dibuat di tahap 2), unduh model terlebih dahulu supaya ada yang bisa dipilih di Open WebUI nanti:
docker exec ollama ollama pull llama3.2:1bCek log Open WebUI untuk memastikan berhasil terhubung ke Ollama:
docker compose logs open-webui
5. Konfigurasi Nginx sebagai Reverse Proxy
vim /etc/nginx/sites-available/open-webui.sequel-kb.my.id.confIsi dengan konfigurasi berikut, sesuaikan server_name dengan domain Anda:
server {
listen 80;
listen [::]:80;
server_name open-webui.sequel-kb.my.id;
client_max_body_size 50M;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 300s;
}
access_log /var/log/nginx/openwebui_access.log;
error_log /var/log/nginx/openwebui_error.log;
}client_max_body_size 50M dinaikkan dari default Nginx (1M) karena Open WebUI mendukung upload file/dokumen untuk fitur RAG — default yang terlalu kecil akan menolak upload dengan error 413. proxy_read_timeout juga dinaikkan karena respons LLM (khususnya di CPU) bisa memakan waktu lebih lama dibanding request web biasa.
Aktifkan dengan symlink ke sites-enabled, lalu uji dan reload konfigurasi:
ln -s /etc/nginx/sites-available/open-webui.sequel-kb.my.id.conf /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
6. Akses Open WebUI dan Buat Akun Admin
Akses domain yang sudah Anda arahkan (http://open-webui.sequel-kb.my.id) menggunakan browser. Karena ini akses pertama, Open WebUI akan menampilkan form pendaftaran akun — akun pertama yang Anda buat otomatis menjadi admin dengan akses penuh, termasuk mengelola user lain.
Setelah login, buka menu pemilihan model di percakapan baru — model yang sudah Anda unduh sebelumnya seharusnya sudah muncul di daftar, siap digunakan langsung dari antarmuka chat.
7. Konfigurasi SSL dengan Let's Encrypt
apt install certbot python3-certbot-nginx -ycertbot --nginx -d open-webui.sequel-kb.my.id
Certbot akan meminta email untuk notifikasi perpanjangan, konfirmasi persetujuan term of service, kemudian menawarkan opsi redirect otomatis dari HTTP ke HTTPS — pilih opsi redirect supaya semua trafik menggunakan HTTPS. Plugin ini otomatis mengedit server block yang sudah dibuat pada tahap 5 untuk menambahkan blok listen 443 ssl beserta path sertifikat.
Cek dulu apakah mekanisme renewal-nya jalan normal:
certbot renew --dry-runSetelah tahap ini, domain Anda sudah bisa diakses dengan koneksi terenkripsi — login, riwayat percakapan, dan seluruh isi chat tidak lagi terkirim dalam bentuk plain text.

Buat akun Open WebUI

Jika sudah Open WebUI sudah bisa Anda gunakan

Kesimpulan
qVM-4 Anda sekarang menjalankan stack lengkap self-hosted LLM: Ollama menangani inference model di belakang layar, tidak pernah tersentuh langsung dari internet, sementara Open WebUI di depannya menyediakan antarmuka chat dengan autentikasi sendiri, diakses menggunakan domain dengan SSL aktif melalui Nginx reverse proxy. Untuk kebutuhan lanjutan, Anda bisa menambah model lain sesuai kebutuhan (docker exec ollama ollama pull <nama-model>, disesuaikan dengan RAM yang tersedia), mengatur retensi riwayat percakapan, serta upgrade qVM ke RAM lebih besar apabila model yang digunakan mulai terasa lambat.
Akun Sequel Anda siap untuk memesan & mengelola layanan cloud.
