AI & Automation

Cara Instalasi Ollama di qVM

Cara Instalasi Ollama di qVM
Daftar Isi

Ollama adalah runtime untuk menjalankan model LLM (Large Language Model) open source secara lokal — Llama, Qwen, Gemma, Phi, dan sejenisnya — tanpa bergantung ke API pihak ketiga. Panduan ini menjelaskan cara menjalankan Ollama sebagai container Docker di qVM Ubuntu 24.04 LTS, mulai dari menjalankan container, memilih model yang sesuai dengan RAM yang tersedia, sampai uji coba chat menggunakan CLI.

Pengenalan

Ollama menyediakan REST API di port 11434 untuk berkomunikasi dengan model yang sedang di-load — tapi API ini tidak punya autentikasi bawaan sama sekali. Siapa pun yang bisa mengakses port tersebut otomatis bisa menggunakan model, melihat daftar model yang ter-install, bahkan menghapusnya, tanpa perlu login. Karena qVM tidak mengaktifkan firewall secara default dan setiap instance cuma punya IP Publik (bukan private network), meng-expose port 11434 langsung ke internet berarti siapa pun bisa menggunakan resource compute qVM Anda secara gratis, atau mengganggu model yang sedang berjalan.

Pada panduan ini, container Ollama sengaja dikonfigurasi supaya tidak mem-publish port 11434 ke host sama sekali — container cuma bisa diakses melalui Docker internal network oleh container lain. Prinsipnya sederhana: expose seminimal mungkin ke publik, dan biarkan cuma komponen yang memang punya sistem login sendiri yang terhubung ke internet.

Karena qVM tidak dilengkapi GPU, inference berjalan murni di CPU — jauh lebih lambat dibanding GPU, tapi tetap layak digunakan untuk model kecil (1-3 miliar parameter). Kecepatan CPU inference sangat bergantung pada ukuran model yang Anda pilih: makin besar model, makin lambat token per detik yang dihasilkan.

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
  • Akses root atau user dengan hak sudo, sudah tergabung di group docker
  • Koneksi internet untuk mengunduh image Docker dan model LLM (ukuran model bisa mencapai beberapa GB)

Baca juga: Cara Instalasi Docker & Docker Compose di Ubuntu 24.04 LTS

Hardware / Spesifikasi VPS qVM

Panduan ini menggunakan paket qVM-4, dengan spesifikasi:

  • vCPU: 2
  • RAM: 4 GB
  • Storage: NVMe 60 GB
  • 1 IP Publik

RAM adalah faktor pembatas utama untuk menjalankan LLM lokal — sebagai patokan kasar, model yang di-quantize ke Q4 butuh RAM kurang lebih seukuran jumlah parameter dalam GB (model 1B ≈ 1 GB, model 3B ≈ 2-3 GB), ditambah overhead OS dan Docker. Di qVM-4 dengan RAM 4 GB, model yang realistis Anda jalankan ada di kisaran 1-3 miliar parameter — misalnya llama3.2:1b, qwen2.5:1.5b, atau gemma2:2b. Model 7B ke atas butuh RAM jauh lebih besar (idealnya 16 GB) supaya nyaman digunakan; kalau kebutuhan Anda ke arah situ, upgrade ke paket qVM dengan RAM lebih tinggi.

Tahapan

1. Buat Docker Network Khusus

Buat network Docker terpisah — berguna kalau nanti Anda ingin menghubungkan Ollama dengan container lain (misalnya antarmuka web) menggunakan nama container, terisolasi dari network Docker default:

bash
docker network create ollama-net

2. Jalankan Container Ollama

bash
docker run -d \
  --name ollama \
  --network ollama-net \
  -v ollama_data:/root/.ollama \
  --restart unless-stopped \
  ollama/ollama

Perhatikan tidak ada flag -p pada perintah di atas — ini disengaja, sesuai alasan keamanan yang dijelaskan di Pengenalan. Container tetap bisa dijangkau container lain di ollama-net menggunakan hostname ollama pada port 11434 internal, tapi port tersebut tidak ter-bind ke IP Publik qVM sama sekali.

Penjelasan flag yang digunakan:

  • -v ollama_data:/root/.ollama — named volume untuk menyimpan model yang sudah Anda unduh, supaya tidak hilang saat container di-restart atau di-recreate.
  • --restart unless-stopped — container otomatis jalan lagi setelah qVM reboot, kecuali memang sengaja Anda hentikan manual.

3. Verifikasi Container Berjalan

bash
docker ps --filter name=ollama

Cek log untuk memastikan Ollama sudah siap menerima request:

bash
docker logs ollama

SCR-20260826-idyq

4. Download Model Pertama

Jalankan ollama pull di dalam container untuk mengunduh model. Sebagai contoh, gunakan model llama3.2:1b — ukurannya kecil dan cocok untuk RAM 4 GB di qVM-4:

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

Proses download bisa memakan waktu beberapa menit tergantung ukuran model dan kecepatan koneksi qVM Anda. Cek daftar model yang sudah terunduh:

bash
docker exec ollama ollama list

SCR-20260826-ifbq

5. Uji Coba Chat Menggunakan CLI

bash
docker exec -it ollama ollama run llama3.2:1b

SCR-20260826-igbd

Perintah di atas membuka sesi chat interaktif langsung di terminal. Ketik pertanyaan apa saja untuk menguji respons model, lalu ketik /bye untuk keluar dari sesi.

Image resmi ollama/ollama hanya menyertakan binary ollama di dalamnya — tidak ada curl, wget, atau tools lain. Jadi docker exec ollama curl ... akan selalu gagal dengan error executable file not found in $PATH, walau container-nya berjalan normal. Cara yang benar untuk menguji REST API-nya ada di studi kasus pada tahap berikutnya.

6. Studi Kasus: Membuktikan Isolasi Network Ollama

Pengenalan panduan ini menjelaskan bahwa Ollama sengaja tidak ter-expose ke internet — tapi klaim itu sebaiknya dibuktikan, bukan sekadar dipercaya. Studi kasus ini sekaligus jadi cara yang benar untuk menguji REST API Ollama dari luar container-nya sendiri: dari container lain yang tergabung di ollama-net (seharusnya berhasil), dan langsung dari qVM di luar Docker network (seharusnya gagal).

Dari container terpisah di network yang sama — jalankan container sementara berbasis image curlimages/curl (image kecil yang memang isinya cuma curl, tanpa ketergantungan ke ollama/ollama), hubungkan ke ollama-net, lalu kirim request ke Ollama menggunakan hostname ollama:

bash
docker run --rm --network ollama-net curlimages/curl -s http://ollama:11434/api/generate -d '{
  "model": "llama3.2:1b",
  "prompt": "Sebutkan 3 manfaat menjalankan LLM secara lokal, jawab singkat saja.",
  "stream": false
}'

Flag --rm membuat container otomatis terhapus begitu perintah selesai — cocok untuk pengujian yang cuma dijalankan sekali seperti ini. Response JSON berisi jawaban model seharusnya langsung muncul, membuktikan container mana pun yang tergabung di ollama-net bisa mengakses Ollama tanpa hambatan — persis pola yang nanti digunakan Open WebUI untuk terhubung ke Ollama.

Langsung dari qVM, di luar Docker network — coba akses port yang sama, kali ini dari shell qVM langsung, bukan dari dalam container mana pun:

bash
curl http://127.0.0.1:11434/api/generate -d '{"model": "llama3.2:1b", "prompt": "test"}'

SCR-20260826-iksy

Percobaan ini seharusnya gagal dengan Connection refused. Bukan bug — justru bukti bahwa port 11434 memang benar-benar tidak ter-bind ke host sama sekali, sesuai desain di awal. Siapa pun yang mencoba mengakses Ollama dari IP Publik qVM melalui internet akan mendapat hasil yang sama persis: ditolak.

Studi kasus ini jadi dasar penting kalau Anda membangun aplikasi sendiri di atas Ollama — aplikasi tersebut cukup dijalankan sebagai container yang tergabung di ollama-net, bukan mengakses melalui IP Publik qVM.

Kesimpulan

qVM-4 Anda sekarang sudah menjalankan Ollama sebagai container Docker, dengan model llama3.2:1b ter-install dan bisa diuji menggunakan CLI maupun REST API internal. Sesuai desain di awal, port 11434 sengaja tidak ter-expose ke internet publik — kalau Anda ingin memberi akses menggunakan browser dengan tampilan chat yang lebih ramah pengguna.

Mulai Kelola Infrastruktur Cloud Anda

Akun Sequel Anda siap untuk memesan & mengelola layanan cloud.

Bagikan
Apakah artikel ini membantu?