LLM: RAG ollama menggunakan open-webui dan postgresql docker
Berikut adalah **langkah lengkap untuk install dan konfigurasi Open WebUI agar bisa bicara dengan Ollama dan menyimpan data ke PostgreSQL**:
---
- 🧠 Apa Itu?
- **Ollama** = backend LLM yang jalan lokal (support model seperti LLaMA3, Mistral, dll) - **Open WebUI** = antarmuka web seperti ChatGPT, tapi open-source dan bisa pakai Ollama. - **PostgreSQL** = digunakan sebagai backend database (default-nya pakai SQLite, tapi bisa kita ganti ke PostgreSQL untuk skalabilitas & multi-user).
---
- 📦 Prasyarat
Pastikan kamu sudah install: - **Docker** & **Docker Compose** - **Ollama** (https://ollama.com) - **PostgreSQL** (lokal atau remote)
---
- ⚙️ Langkah-langkah
- 1. Install & Jalankan Ollama
```bash
- Install (Linux)
curl -fsSL https://ollama.com/install.sh | sh
- Jalankan model (misalnya llama3)
ollama run llama3 ```
Atau untuk download dulu tanpa run: ```bash ollama pull llama3 ```
> 📌 Jalankan `ollama serve` jika belum otomatis jalan di background.
---
- 2. Install Open WebUI via Docker Compose
- Buat file `docker-compose.yml`:
```yaml version: '3.8' services:
webui: image: ghcr.io/open-webui/open-webui:main ports: - "3000:8080" volumes: - open-webui-data:/app/backend/data environment: - OLLAMA_BASE_URL=http://host.docker.internal:11434 - DATABASE_URL=postgresql://postgres:password@postgresdb:5432/webui depends_on: - postgresdb
postgresdb: image: postgres:14 restart: always environment: POSTGRES_DB: webui POSTGRES_USER: postgres POSTGRES_PASSWORD: password volumes: - pgdata:/var/lib/postgresql/data
volumes:
open-webui-data: pgdata:
```
> 🔐 Ubah username/password sesuai kebutuhan. `host.docker.internal` hanya untuk Windows/Mac. Di Linux, ganti ke IP lokal host atau `172.17.0.1`.
---
- 3. Jalankan dengan Docker Compose
```bash docker compose up -d ```
Tunggu beberapa detik. Lalu akses: ``` http://localhost:3000 ```
---
- 🧪 Tes
- Login/register di WebUI. - Pilih model `llama3` atau model lain dari Ollama. - Coba chat → Open WebUI akan mengirim prompt ke Ollama via REST API.
---
- 🧰 Tips Tambahan
- 🔄 Ganti model
```bash ollama run mistral ``` Lalu di WebUI, ganti ke `mistral`.
- 🔐 Expose PostgreSQL ke aplikasi lain (misalnya pgAdmin)
Tambahkan port: ```yaml ports:
- "5432:5432"
``` di service `postgresdb`.
---
- 📌 Troubleshooting
| Masalah | Solusi | |--------|--------| | WebUI tidak connect ke Ollama | Cek `OLLAMA_BASE_URL` benar (localhost vs host.docker.internal vs IP) | | PostgreSQL gagal connect | Pastikan DB name, username, password cocok | | WebUI stuck loading | Cek log: `docker compose logs -f webui` |
---
Kalau kamu mau aku bantu generate semua file siap pakai (dengan template password dan setting), tinggal bilang aja ya.