Tutorial Deploy Open WebUI di VPS Linux

Tutorial Deploy Open WebUI di VPS Linux

Pengantar

Perkembangan teknologi Artificial Intelligence (AI) membuat banyak pengguna mulai memanfaatkan Large Language Model (LLM) seperti DeepSeek, Llama, Qwen, dan berbagai model lainnya untuk kebutuhan sehari-hari. Namun, tidak semua orang nyaman menggunakan AI melalui terminal atau command line karena terasa kurang praktis, terutama bagi pengguna pemula.

Salah satu solusi yang banyak digunakan adalah Open WebUI, sebuah antarmuka berbasis web yang memungkinkan Anda berinteraksi dengan model AI melalui tampilan yang modern dan mudah digunakan. Open WebUI dapat dihubungkan dengan Ollama maupun berbagai penyedia API AI lainnya sehingga proses penggunaan AI menjadi lebih sederhana.

Dengan menginstall Open WebUI di VPS Linux, Anda dapat mengakses AI dari browser kapan saja dan dari perangkat mana pun selama terhubung ke internet. Selain itu, Anda memiliki kontrol penuh terhadap data, konfigurasi, serta model AI yang digunakan.

Pada tutorial ini, kita akan membahas langkah demi langkah cara deploy Open WebUI di VPS Linux menggunakan Docker agar proses instalasi lebih mudah dan cepat

Apa Itu Open WebUI?

Open WebUI adalah aplikasi web open source yang berfungsi sebagai antarmuka (frontend) untuk berbagai model AI.

Beberapa fitur utama Open WebUI antara lain:

  • Tampilan chat yang modern dan responsif
  • Mendukung integrasi dengan Ollama
  • Mendukung berbagai model AI lokal
  • Multi-user management
  • Riwayat percakapan tersimpan otomatis
  • Upload dokumen untuk kebutuhan AI
  • Mudah diakses melalui browser

Karena berjalan berbasis web, pengguna tidak perlu lagi menggunakan terminal untuk berinteraksi dengan model AI.

Persiapan Sebelum Instalasi

Sebelum melakukan deploy Open WebUI, pastikan VPS telah memenuhi beberapa persyaratan berikut:

  • CPU: 2 Core
  • RAM: 2 GB (minimal)
  • Storage: 20 GB SSD
  • Ollama Terinstall

Install Docker di VPS Linux

1. Update Sistem Ubuntu

Sebelum melakukan instalasi Docker, disarankan untuk memperbarui sistem operasi terlebih dahulu agar seluruh package berada pada versi terbaru dan kompatibel dengan repository Docker.

Jalankan perintah berikut:

sudo apt update 

Fungsi:

  • Memperbarui daftar repository Ubuntu
  • Menginstal pembaruan package terbaru
  • Meningkatkan keamanan dan stabilitas sistem
  • Mengurangi risiko konflik dependency saat instalasi Docker
Keterangan:
Apabila terdapat pembaruan kernel atau komponen penting lainnya, disarankan untuk melakukan reboot setelah proses update selesai.

2. Install Paket Pendukung Docker

Docker membutuhkan beberapa package tambahan untuk mengelola repository dan verifikasi paket yang diunduh.

Install paket pendukung berikut:

sudo apt install curl ca-certificates gnupg lsb-release -y

Fungsi:

  • curl untuk mengunduh file dari internet
  • ca-certificates untuk verifikasi sertifikat SSL
  • gnupg untuk verifikasi tanda tangan paket
  • lsb-release untuk mendeteksi versi Ubuntu secara otomatis

3. Menambahkan Repository Resmi Docker

Docker menyediakan repository resmi yang berisi versi terbaru Docker Engine dan komponen pendukung lainnya.

Tambahkan GPG key Docker:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg

Tambahkan repository Docker:

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Fungsi:

  • Menambahkan sumber package resmi Docker
  • Memastikan instalasi menggunakan versi terbaru
  • Mendapatkan update Docker langsung dari repository resmi
Keterangan:
Menggunakan repository resmi Docker lebih disarankan dibandingkan package Docker bawaan Ubuntu karena biasanya memiliki versi yang lebih baru.

4. Install Docker Engine

Setelah repository berhasil ditambahkan, lakukan update repository kemudian install Docker:

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Komponen yang Terinstal:

  • docker-ce sebagai Docker Engine
  • docker-ce-cli sebagai command-line interface Docker
  • containerd.io sebagai container runtime
  • docker-buildx-plugin untuk fitur build image modern
  • docker-compose-plugin untuk menjalankan Docker Compose

Tunggu hingga proses instalasi selesai.

5. Verifikasi Instalasi Docker

Setelah instalasi selesai, periksa versi Docker yang terpasang:

docker --version

Contoh output:

Docker version 28.x.x

Interpretasi:

  • Docker berhasil terinstal pada sistem
  • Binary Docker dapat dijalankan dengan normal
  • Server siap menjalankan container

Alternatif verifikasi:

docker version

6. Memastikan Service Docker Berjalan

Periksa status service Docker menggunakan:

systemctl status docker

Contoh output:

● docker.service
   Loaded: loaded
   Active: active (running)

Penjelasan:

  • Loaded menunjukkan service berhasil dimuat oleh systemd
  • Active (running) menunjukkan Docker sedang berjalan
  • Docker siap digunakan untuk menjalankan container

Jika service belum aktif, jalankan:

sudo systemctl start docker

Agar Docker otomatis berjalan saat server reboot:

sudo systemctl enable docker

Verifikasi:

sudo systemctl is-enabled docker

Contoh output:

enabled
Keterangan:
Jika status service menunjukkan active (running), maka instalasi Docker telah berhasil dan VPS siap digunakan untuk menjalankan container maupun aplikasi berbasis Docker.

Deploy Open WebUI Menggunakan Docker

1. Menjalankan Container Open WebUI

Setelah Docker berhasil terinstal, langkah berikutnya adalah membuat direktori kerja dan menjalankan container Open WebUI.

Buat direktori kerja terlebih dahulu:

mkdir -p ~/open-webui
cd ~/open-webui

Fungsi:

  • Membuat direktori khusus untuk Open WebUI
  • Memudahkan pengelolaan konfigurasi dan file pendukung
  • Menjadikan lingkungan kerja lebih terorganisir

Masuk ke direktori tersebut sebelum menjalankan container.

Jalankan container Open WebUI:

docker run -d \
--name open-webui \
-p 3000:8080 \
-v open-webui:/app/backend/data \
--restart unless-stopped \
ghcr.io/open-webui/open-webui:main

Penjelasan Parameter:

  • -d
    Menjalankan container di background (detached mode).
  • --name open-webui
    Memberikan nama container agar lebih mudah dikelola.
  • -p 3000:8080
    Memetakan port 8080 di dalam container ke port 3000 pada VPS.
  • -v open-webui:/app/backend/data
    Membuat volume persisten untuk menyimpan data Open WebUI.
  • --restart unless-stopped
    Menjalankan container secara otomatis ketika server reboot.
  • ghcr.io/open-webui/open-webui:main
    Image resmi Open WebUI yang diambil dari GitHub Container Registry.

Tunggu beberapa saat hingga proses download image dan pembuatan container selesai.

Keterangan:
Pada saat pertama kali dijalankan, Docker akan mengunduh image Open WebUI terlebih dahulu sehingga proses dapat memerlukan waktu beberapa menit tergantung kecepatan internet VPS.

2. Memverifikasi Container Berjalan

Setelah proses selesai, periksa status container menggunakan perintah berikut:

docker ps

Contoh output:

CONTAINER ID   IMAGE                                STATUS
a1b2c3d4e5f6   ghcr.io/open-webui/open-webui:main   Up 2 minutes

Interpretasi:

  • Container berhasil dibuat.
  • Image Open WebUI berjalan dengan normal.
  • Status Up menunjukkan layanan aktif.

Apabila berhasil, akan muncul container dengan nama:

open-webui

Untuk memastikan nama container:

docker ps --format "table {{.Names}}\t{{.Status}}"

Contoh output:

NAMES        STATUS
open-webui   Up 2 minutes
Keterangan:
Jika container berstatus Up, maka Open WebUI telah berhasil berjalan dan siap diakses melalui browser menggunakan alamat IP VPS dan port 3000.

Menghubungkan Open WebUI dengan Ollama

1. Memastikan Service Ollama Berjalan

Sebelum menghubungkan Open WebUI ke Ollama, pastikan service Ollama berjalan dengan normal pada VPS.

Periksa status service menggunakan perintah berikut:

systemctl status ollama

Contoh output:

● ollama.service - Ollama Service
   Loaded: loaded
   Active: active (running)

Alternatif pengecekan menggunakan API:

curl http://localhost:11434/api/tags

Jika berhasil, sistem akan menampilkan daftar model dalam format JSON.

Contoh output:

{
  "models": [
    {
      "name": "deepseek-r1:8b"
    }
  ]
}

Jika status service aktif atau daftar model berhasil ditampilkan, berarti Ollama siap digunakan oleh Open WebUI.

Keterangan:
Pastikan minimal terdapat satu model yang telah diunduh menggunakan perintah ollama pull agar dapat langsung digunakan setelah Open WebUI terhubung.

2. Mengganti Konfigurasi Container Open WebUI

Jika sebelumnya Open WebUI sudah berjalan tanpa konfigurasi Ollama, container perlu dibuat ulang agar dapat terhubung ke API Ollama pada host VPS.

Hentikan container terlebih dahulu:

docker stop open-webui

Hapus container:

docker rm open-webui

Data pengguna tidak akan hilang karena seluruh data tetap tersimpan pada Docker Volume yang digunakan sebelumnya.

Keterangan:
Menghapus container tidak menghapus volume penyimpanan selama volume tersebut tidak dihapus secara manual.

3. Menjalankan Open WebUI dengan Konfigurasi Ollama

Jalankan kembali Open WebUI menggunakan konfigurasi berikut:

docker run -d \
--name open-webui \
-p 3000:8080 \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
--restart unless-stopped \
ghcr.io/open-webui/open-webui:main

Penjelasan Konfigurasi:

  • OLLAMA_BASE_URL
    Digunakan untuk menghubungkan Open WebUI dengan REST API Ollama yang berjalan pada host VPS.
  • host.docker.internal
    Memungkinkan container mengakses service yang berjalan langsung pada host VPS.
  • --add-host=host.docker.internal:host-gateway
    Diperlukan pada sebagian besar instalasi Docker di Linux agar alias host dapat dikenali dari dalam container.
  • open-webui Volume
    Menyimpan data pengguna, pengaturan, riwayat percakapan, dan konfigurasi secara persisten.
  • --restart unless-stopped
    Membuat container otomatis aktif kembali setelah VPS direstart.
Keterangan:
Saat container dijalankan ulang, seluruh data pengguna tetap aman karena tersimpan pada Docker Volume open-webui.

4. Verifikasi Status Container

Setelah container berhasil dijalankan, periksa statusnya menggunakan:

docker ps

Contoh output:

CONTAINER ID   IMAGE                                STATUS
a1b2c3d4e5f6   ghcr.io/open-webui/open-webui:main   Up 30 seconds

Pastikan status container menunjukkan:

Up

Jika status Up muncul, berarti Open WebUI berhasil berjalan dan telah siap terhubung dengan Ollama.

Selanjutnya akses Open WebUI melalui browser:

http://IP-VPS:3000

Output :

Apabila koneksi berhasil, model yang tersedia pada Ollama akan otomatis muncul pada dashboard Open WebUI dan siap digunakan melalui antarmuka web.

Keterangan:
Jika model belum muncul, periksa kembali status Ollama, nilai OLLAMA_BASE_URL, firewall server, serta pastikan API Ollama dapat diakses menggunakan perintah curl http://localhost:11434/api/tags.

Konfigurasi Reverse Proxy dengan Nginx

1. Menggunakan Nginx Reverse Proxy

Secara default Open WebUI berjalan pada port 3000. Agar aplikasi dapat diakses menggunakan domain tanpa menambahkan nomor port pada URL, Anda dapat menggunakan Nginx sebagai reverse proxy.

Dengan konfigurasi ini, pengguna cukup mengakses domain seperti:

http://ai.domainanda.com

tanpa perlu menuliskan port :3000.

Keterangan:
Reverse proxy juga memudahkan penerapan HTTPS menggunakan Let's Encrypt pada tahap berikutnya.

2. Install Nginx

Jika Nginx belum terpasang pada server, lakukan instalasi terlebih dahulu:

sudo apt install nginx -y

Fungsi:

  • Menerima request dari internet
  • Meneruskan request ke Open WebUI
  • Mengelola domain dan virtual host
  • Mendukung konfigurasi HTTPS dan SSL

Pastikan service Nginx berjalan:

systemctl status nginx

Contoh output:

Active: active (running)

3. Membuat Virtual Host Open WebUI

Buat file konfigurasi virtual host:

sudo nano /etc/nginx/sites-available/open-webui

Masukkan konfigurasi berikut:

server {
    listen 80;
    server_name ai.domainanda.com;

    location / {
        proxy_pass http://127.0.0.1:3000;

        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Penjelasan Konfigurasi:

  • listen 80
    Menerima koneksi HTTP pada port 80.
  • server_name ai.domainanda.com
    Domain yang digunakan untuk mengakses Open WebUI.
  • proxy_pass http://127.0.0.1:3000
    Meneruskan seluruh request ke container Open WebUI yang berjalan pada port 3000.
  • proxy_set_header
    Meneruskan informasi host, alamat IP pengguna, dan protokol ke aplikasi backend.
Keterangan:
Ganti ai.domainanda.com dengan domain atau subdomain yang akan digunakan pada server Anda.

4. Mengaktifkan Konfigurasi Nginx

Aktifkan virtual host yang telah dibuat:

sudo ln -s /etc/nginx/sites-available/open-webui \
/etc/nginx/sites-enabled/

Fungsi:

  • Mendaftarkan virtual host ke konfigurasi aktif Nginx
  • Mengizinkan Nginx memproses domain Open WebUI

5. Memverifikasi Konfigurasi Nginx

Sebelum melakukan reload service, lakukan pengecekan sintaks konfigurasi:

sudo nginx -t

Contoh output:

nginx: configuration file test is successful

Jika muncul pesan tersebut, konfigurasi tidak mengandung kesalahan sintaks.

Apabila terdapat error, periksa kembali file konfigurasi yang telah dibuat.

6. Reload Nginx

Terapkan konfigurasi baru tanpa menghentikan service:

sudo systemctl reload nginx

Alternatif:

sudo systemctl restart nginx

Verifikasi status service:

systemctl status nginx

Pastikan status menunjukkan:

active (running)

7. Mengakses Open WebUI Melalui Domain

Setelah konfigurasi berhasil diterapkan, Open WebUI dapat diakses menggunakan domain yang telah dikonfigurasi.

Contoh:

http://ai.domainanda.com

Jika halaman login Open WebUI muncul, berarti reverse proxy telah berhasil dikonfigurasi.

Pastikan DNS domain telah diarahkan ke alamat IP VPS sebelum melakukan pengujian.

Keterangan:
Untuk lingkungan production, sangat disarankan menambahkan sertifikat SSL menggunakan Let's Encrypt sehingga Open WebUI dapat diakses melalui HTTPS dan komunikasi antara pengguna dan server menjadi lebih aman.

Mengaktifkan HTTPS dengan Lets Encrypt

1. Mengaktifkan HTTPS dengan Let's Encrypt

Setelah Open WebUI berhasil diakses melalui domain, langkah berikutnya adalah mengaktifkan HTTPS agar komunikasi antara browser dan server terenkripsi menggunakan sertifikat SSL.

Let's Encrypt menyediakan sertifikat SSL gratis yang dapat diintegrasikan langsung dengan Nginx menggunakan Certbot.

Keuntungan HTTPS:

  • Data terenkripsi saat dikirim melalui internet
  • Meningkatkan keamanan login pengguna
  • Mencegah penyadapan data oleh pihak ketiga
  • Meningkatkan kepercayaan pengguna
  • Menghilangkan peringatan "Not Secure" pada browser
Keterangan:
Sebelum melanjutkan, pastikan domain sudah mengarah ke alamat IP VPS dan Nginx dapat diakses melalui port 80.

2. Install Certbot dan Plugin Nginx

Install Certbot beserta plugin Nginx menggunakan perintah berikut:

sudo apt install certbot python3-certbot-nginx -y

Fungsi:

  • Menghasilkan sertifikat SSL dari Let's Encrypt
  • Melakukan konfigurasi HTTPS secara otomatis pada Nginx
  • Mengelola proses perpanjangan sertifikat

Pastikan instalasi selesai tanpa error sebelum melanjutkan ke tahap berikutnya.

3. Membuat Sertifikat SSL

Jalankan perintah berikut:

sudo certbot --nginx -d ai.domainanda.com

Penjelasan:

  • --nginx
    Memungkinkan Certbot melakukan konfigurasi Nginx secara otomatis.
  • -d ai.domainanda.com
    Menentukan domain yang akan diberikan sertifikat SSL.

Selama proses berlangsung, Anda akan diminta:

  • Memasukkan alamat email administrator
  • Menyetujui syarat penggunaan Let's Encrypt
  • Memilih opsi redirect HTTP ke HTTPS

Disarankan memilih opsi:

Redirect HTTP to HTTPS

agar seluruh akses HTTP otomatis dialihkan ke HTTPS.

Keterangan:
Pastikan port 80 dan 443 tidak diblokir firewall karena diperlukan untuk proses verifikasi domain oleh Let's Encrypt.

4. Memverifikasi Instalasi SSL

Jika proses berhasil, Certbot akan menampilkan informasi serupa:

Congratulations!
Your certificate and chain have been saved.

Selain itu, konfigurasi Nginx akan diperbarui secara otomatis untuk menggunakan sertifikat SSL yang baru dibuat.

Periksa konfigurasi Nginx:

sudo nginx -t

Reload service Nginx apabila diperlukan:

sudo systemctl reload nginx

5. Mengakses Open WebUI Menggunakan HTTPS

Setelah sertifikat berhasil diterapkan, Open WebUI dapat diakses menggunakan alamat berikut:

https://ai.domainanda.com

Jika konfigurasi berhasil, browser akan menampilkan ikon gembok pada address bar yang menandakan koneksi telah diamankan menggunakan SSL.

6. Memverifikasi Auto Renewal Sertifikat

Certbot secara otomatis membuat mekanisme perpanjangan sertifikat sebelum masa berlaku habis.

Untuk melakukan simulasi proses renewal, jalankan:

sudo certbot renew --dry-run

Jika tidak muncul error, berarti sistem auto renewal telah siap digunakan.

Periksa timer Certbot:

systemctl list-timers | grep certbot

Contoh output:

certbot.timer

Hal tersebut menunjukkan bahwa proses perpanjangan sertifikat akan dijalankan secara otomatis oleh sistem.

Keterangan:
Setelah HTTPS aktif, seluruh komunikasi antara pengguna dan Open WebUI akan dienkripsi menggunakan SSL sehingga akses menjadi lebih aman dan sesuai untuk lingkungan production.

Kesimpulan

Deploy Open WebUI di VPS Linux merupakan cara yang praktis untuk membangun platform AI berbasis web yang dapat diakses dari mana saja. Dengan kombinasi Docker dan Ollama, Anda dapat menjalankan berbagai model AI lokal melalui antarmuka yang modern tanpa perlu menggunakan terminal secara langsung.

Proses instalasinya relatif sederhana, mulai dari menyiapkan Docker, menginstall Ollama, menjalankan container Open WebUI, hingga menghubungkannya dengan domain dan HTTPS. Dengan konfigurasi yang tepat, Open WebUI dapat menjadi solusi AI pribadi maupun lingkungan kerja yang aman, fleksibel, dan mudah digunakan.

Jika Anda berencana menjalankan model AI secara mandiri di server, Open WebUI adalah salah satu pilihan terbaik untuk mempermudah pengelolaan dan penggunaan model AI melalui browser.


Artikel Lain

WhatsApp Kami

Support : +6282138153600

Finance : +6285191239466