VPS Murah Nevacloud

Jalankan Ollama di VPS: AI Pribadi Tanpa API Key dan Biaya Token

Berapa RAM yang benar-benar dibutuhkan untuk menjalankan model AI di VPS? Jawabannya tidak sebesar yang sering dibayangkan. Di pustaka resmi Ollama, qwen3:0.6b hanya berukuran 523 MB dan qwen3:1.7b sekitar 1,4 GB — angka yang masih muat di VPS 4 GB yang sehari-hari dipakai Nginx dan Docker.

Yang lebih menarik: model itu berjalan tanpa API key, tanpa tagihan per token, dan tanpa mengirim prompt kita ke server orang lain. Cukup satu VPS, satu perintah instalasi, dan satu port yang cuma mendengarkan di localhost. Oke, lanjuutt.. kita pasang Ollama di VPS, pilih model yang sesuai RAM, lalu buka aksesnya dengan cara yang tidak mengundang penyusup.

Kenapa Orang Menjalankan AI di VPS Sendiri

Sebelum masuk ke terminal, ada baiknya kita sepakati dulu alasannya. Bukan karena ingin menyaingi model raksasa, tapi karena tiga hal praktis:

  • Data tidak keluar dari server. Prompt, potongan dokumen, dan catatan kerja tinggal di disk sendiri. Dokumentasi Ollama menyebut mode lokal tidak mengirim prompt ke ollama.com; kalau ingin benar-benar memutus fitur cloud, set OLLAMA_NO_CLOUD=1 atau "disable_ollama_cloud": true di ~/.ollama/server.json.
  • Biaya tetap. Setelah model terunduh, tidak ada tagihan per token. Yang kita bayar hanya VPS yang memang sudah menyala.
  • Bisa dipakai aplikasi lain. Ollama membuka endpoint yang kompatibel dengan OpenAI, jadi n8n, aplikasi Laravel, atau skrip Python bisa memakainya tanpa mengubah banyak kode.

Tapi jujur saja: model kecil di CPU bukan pengganti model frontier. Untuk merangkum laporan, mengklasifikasi tiket, atau menulis draf kasar, hasilnya sudah berguna. Untuk penalaran berat dan konteks sangat panjang, ekspektasinya perlu diturunkan — dan tanpa GPU, kecepatan hitungnya jauh lebih lambat daripada di mesin ber-GPU.

Berapa RAM yang Realistis untuk Model AI di VPS

Ukuran file model bukan sama dengan pemakaian RAM, tapi dia titik awal yang paling jujur. Berikut ukuran unduhan yang tercatat di pustaka resmi Ollama saat artikel ini ditulis:

  • qwen3:0.6b — 523 MB, konteks 40K, teks saja
  • qwen3:1.7b — 1,4 GB, konteks 40K, teks saja
  • qwen3:4b — 2,5 GB, konteks 256K, teks saja
  • qwen3:8b — 5,2 GB, konteks 40K, teks saja
  • gemma4:e2b — 4,6–7,5 GB, konteks 128K, bisa membaca gambar

Sisakan ruang di atas angka itu untuk cache konteks dan proses lain. Patokan praktis yang aman: VPS 4 GB untuk model 0.6b–1.7b, VPS 8 GB untuk model 4b, dan model 8b ke atas sebaiknya menunggu RAM 16 GB. Untuk gemma4:e2b, ukurannya 4,6–7,5 GB, jadi sediakan sekitar 8 GB RAM atau VRAM, dan kalau VRAM kurang, Ollama akan memakai RAM sistem dengan konsekuensi respons lebih lambat.

Cara memastikan model benar-benar masuk ke memori yang kita kira: jalankan ollama ps. Kolom PROCESSOR akan menulis 100% CPU, 100% GPU, atau campuran seperti 48%/52% CPU/GPU. Kalau angkanya campuran, berarti sebagian model ada di RAM — jawabannya tetap jalan, hanya lebih pelan.

Langkah 1 — Pasang Ollama di VPS

Cara resmi untuk Linux cukup satu baris, dan skrip installer-nya sekaligus menyiapkan service systemd:


curl -fsSL https://ollama.com/install.sh | sh

Setelah selesai, cek versi dan status servicenya:


ollama -v
sudo systemctl status ollama
journalctl -e -u ollama

Per 21 Oktober 2026, rilis stabil terakhir adalah v0.40.6 (16 Oktober 2026), sementara v0.40.7 masih berstatus pre-release (rc0). Untuk server yang dipakai harian, pakai rilis stabil saja — pre-release tidak salah, hanya belum tentu layak jadi tempat pertama kali menemukan bug.

Kalau nanti ingin memperbarui, jalankan skrip yang sama. Ollama di Linux tidak punya auto-update seperti versi desktop.

Langkah 2 — Unduh Model dan Uji dari Terminal

Mulai dari model kecil supaya tidak menunggu unduhan lama:


ollama pull qwen3:1.7b
ollama run qwen3:1.7b

Di dalam sesi chat, kita bisa langsung mengetik pertanyaan. Untuk keluar, ketik /bye. Daftar model yang sudah tersimpan dan yang sedang termuat bisa dilihat dengan:


ollama list
ollama ps

ollama list menampilkan ukuran di disk, ollama ps menampilkan ukuran di memori beserta sisa waktu model tetap dimuat. Dua perintah ini yang paling sering dipakai saat mulai kehabisan RAM — jauh lebih cepat daripada menebak.

Langkah 3 — Pindahkan Folder Model ke Disk yang Lebih Lega

Secara default, model di Linux disimpan di /usr/share/ollama/.ollama/models. Satu model 8b saja 5,2 GB, dan folder ini biasanya menempel di partisi root yang kecil. Kalau VPS punya disk atau volume terpisah, pindahkan sebelum koleksinya membengkak:


sudo mkdir -p /var/lib/ollama/models
sudo chown -R ollama:ollama /var/lib/ollama
sudo systemctl edit ollama

Isi override yang terbuka dengan:


[Service]
Environment="OLLAMA_MODELS=/var/lib/ollama/models"

Lalu muat ulang:


sudo systemctl daemon-reload
sudo systemctl restart ollama

Perlu diingat: model yang sudah terunduh tidak ikut pindah sendiri. Setelah path diubah, ollama list akan kosong dan model perlu di-pull ulang. Lakukan langkah ini di awal, bukan setelah folder modelnya penuh.

Langkah 4 — Buka Akses Tanpa Membiarkan Port Terbuka

Ini bagian yang paling sering salah. Secara default Ollama hanya mendengarkan di 127.0.0.1 port 11434, dan itu pengaturan yang benar untuk sebagian besar kasus. Masalahnya, container Open WebUI atau aplikasi di mesin lain tidak bisa menjangkaunya dari sana.

Kalau memang perlu diakses dari jaringan privat atau dari container, ubah alamat bind lewat override:


sudo systemctl edit ollama

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_CONTEXT_LENGTH=8192"

sudo systemctl daemon-reload
sudo systemctl restart ollama

Yang jangan dilakukan: membuka 11434 ke internet begitu saja. Ollama tidak punya autentikasi bawaan, jadi siapa pun yang menemukan port itu bisa memakai model kita — atau mengunduh model besar atas nama kita. wkwkwk, port terbuka seperti itu biasanya tidak bertahan lama sebelum ketahuan.

Kalau butuh akses dari luar, taruh di belakang Nginx dengan basic auth:


server {
    listen 443 ssl;
    server_name ai.contoh.com;

    auth_basic "Ollama";
    auth_basic_user_file /etc/nginx/.htpasswd-ollama;

    location / {
        proxy_pass http://127.0.0.1:11434;
        proxy_set_header Host localhost:11434;
        client_max_body_size 20m;
    }
}

Buat file password-nya dengan sudo htpasswd -c /etc/nginx/.htpasswd-ollama namakita (paket apache2-utils), lalu batasi juga di firewall:


sudo ufw allow from 10.8.0.0/24 to any port 11434 proto tcp

Baris di atas hanya mengizinkan satu subnet — misalnya jaringan Tailscale atau LAN kantor. Sesuaikan dengan jaringan kita sendiri, dan jangan pakai allow 11434 tanpa sumber.

Langkah 5 — Uji Endpoint yang Kompatibel dengan OpenAI

Inilah nilai praktis Ollama: API-nya bisa dipanggil dengan format OpenAI. Uji dulu dari server yang sama:


curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3:1.7b",
    "messages": [
      {"role": "user", "content": "Sebutkan tiga distro Linux ringan untuk VPS 1 GB."}
    ]
  }'

Kalau berjalan, jawaban muncul di choices[0].message.content. Endpoint /v1/models juga tersedia untuk melihat model yang siap dipakai. Untuk pemakaian dari mesin lain, ganti localhost dengan alamat server; untuk klien OpenAI resmi, cukup arahkan base_url ke http://IP-VPS:11434/v1. Nilai API key tetap diisi asal — server lokal mengabaikannya.

Dua catatan kecil yang menghemat waktu debugging:

  • Konteks tidak diatur lewat API OpenAI. Default Ollama 4096 token; kalau butuh lebih, set OLLAMA_CONTEXT_LENGTH di service atau buat model turunan dengan PARAMETER num_ctx di Modelfile.
  • Nama model harus persis. qwen3 dan qwen3:1.7b adalah entri berbeda di ollama list, dan request akan gagal kalau namanya tidak cocok.

Langkah 6 — Pasang Open WebUI Kalau Mau Antarmuka Chat

API sudah jalan, tapi mengetik curl terus-menerus tidak nyaman. Open WebUI memberi antarmuka mirip ChatGPT yang menempel ke Ollama. Jalankan sebagai container:


openssl rand -hex 32

Simpan hasilnya, lalu:


docker run -d --name open-webui \
  -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  -e WEBUI_SECRET_KEY=<hasil-openssl-tadi> \
  --restart always \
  ghcr.io/open-webui/open-webui:slim

Beberapa hal yang perlu diperhatikan:

  • Pakai tag :slim kalau hanya butuh chat. Menurut dokumentasi Open WebUI (diukur 16 Oktober 2026 pada versi 0.12.3), image :slim sekitar 197 MB sementara :main 1,62 GB. Untuk chat biasa, selisih 1,4 GB itu tidak ada gunanya.
  • WEBUI_SECRET_KEY harus tetap. Kalau nilainya berubah setiap container dibuat ulang, semua sesi login ikut hilang.
  • Volume open-webui menyimpan chat, user, dan setelan. Tanpa volume itu, semuanya lenyap saat container diganti.
  • Ollama di host harus mendengarkan di 0.0.0.0 agar bisa dijangkau dari dalam container — inilah alasan langkah 4 dikerjakan lebih dulu. Di pengaturan koneksi Open WebUI, arahkan ke http://host.docker.internal:11434.

Setelah itu buka http://IP-VPS:3000, buat akun admin pertama, dan model akan muncul di pemilih model. Sama seperti port Ollama, jangan biarkan port 3000 terbuka ke internet tanpa proxy dan HTTPS.

Setelan Kecil yang Menghemat RAM

Beberapa variabel ini berpengaruh besar di VPS kecil:

  • keep_alive — default model tetap di memori 5 menit setelah request terakhir. Untuk mengosongkan RAM segera, jalankan ollama stop qwen3:1.7b atau kirim "keep_alive": 0. Sebaliknya, -1 membuat model tetap termuat.
  • OLLAMA_KV_CACHE_TYPE=q8_0 — kuantisasi cache konteks. Dokumentasi Ollama menyebut q8_0 memakai sekitar setengah memori f16 dengan penurunan presisi yang biasanya tidak terasa. Cocok untuk VPS yang mepet.
  • OLLAMA_CONTEXT_LENGTH — menaikkan konteks menambah pemakaian memori. Naikkan hanya kalau memang perlu.
  • Flash Attention aktif otomatis kalau backend mendukung, dan membantu menekan pemakaian memori saat konteks panjang.

Kesimpulan

Menjalankan Ollama di VPS itu bukan proyek besar: satu skrip instalasi, satu perintah pull, dan satu port lokal. Yang menentukan hasilnya justru dua hal sepele — memilih ukuran model sesuai RAM, dan tidak membuka port 11434 ke internet tanpa pelindung.

Batasnya juga jelas. Model 1,7B di CPU tidak akan mengalahkan layanan berbayar untuk tugas berat, tapi untuk merangkum, mengklasifikasi, dan menulis draf, dia lebih dari cukup — dan datanya tidak pernah keluar dari server kita. Kalau VPS-nya masih lega, mulailah dari qwen3:1.7b hari ini, lalu ukur sendiri: ollama ps akan jujur memberi tahu apakah mesin kita masih sanggup naik ke model berikutnya.

Baca juga

Nevacloud VPS Indonesia

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *