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.


