AI & Automation

Cara Instalasi Open WebUI di qVM

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

bash
apt install nginx -y

Aktifkan supaya berjalan otomatis setiap qVM reboot, lalu cek statusnya:

bash
systemctl enable nginx
systemctl status nginx

2. Siapkan Docker Network dan Volume Model

Kalau qVM Anda belum punya container Ollama yang berjalan, buat dulu network dan volume untuk menyimpan model:

bash
docker network create ollama-net
docker volume create ollama_data

Kalau 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:

bash
docker stop ollama && docker rm ollama

3. Buat Docker Compose File

bash
mkdir -p /opt/openwebui-stack
cd /opt/openwebui-stack
vim docker-compose.yml

Isi dengan:

yaml
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 ke 0.0.0.0 atau IP Publik. Akses dari luar nanti sepenuhnya melalui Nginx sebagai reverse proxy, bukan langsung ke container.

4. Jalankan Stack

bash
docker compose up -d

Verifikasi kedua container berjalan:

bash
docker compose ps

SCR-20260831-lzdc

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:

bash
docker exec ollama ollama pull llama3.2:1b

Cek log Open WebUI untuk memastikan berhasil terhubung ke Ollama:

bash
docker compose logs open-webui

SCR-20260831-mctf

5. Konfigurasi Nginx sebagai Reverse Proxy

bash
vim /etc/nginx/sites-available/open-webui.sequel-kb.my.id.conf

Isi dengan konfigurasi berikut, sesuaikan server_name dengan domain Anda:

text
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:

bash
ln -s /etc/nginx/sites-available/open-webui.sequel-kb.my.id.conf /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx

SCR-20260831-lzxz

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

bash
apt install certbot python3-certbot-nginx -y
bash
certbot --nginx -d open-webui.sequel-kb.my.id

SCR-20260831-mdlo

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:

bash
certbot renew --dry-run

Setelah tahap ini, domain Anda sudah bisa diakses dengan koneksi terenkripsi — login, riwayat percakapan, dan seluruh isi chat tidak lagi terkirim dalam bentuk plain text.

SCR-20260831-mdzd

Buat akun Open WebUI

SCR-20260831-meux

Jika sudah Open WebUI sudah bisa Anda gunakan

SCR-20260831-mfal

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.

Mulai Kelola Infrastruktur Cloud Anda

Akun Sequel Anda siap untuk memesan & mengelola layanan cloud.

Bagikan
Apakah artikel ini membantu?