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=1atau"disable_ollama_cloud": truedi~/.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 sajaqwen3:1.7b— 1,4 GB, konteks 40K, teks sajaqwen3:4b— 2,5 GB, konteks 256K, teks sajaqwen3:8b— 5,2 GB, konteks 40K, teks sajagemma4: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_LENGTHdi service atau buat model turunan denganPARAMETER num_ctxdi Modelfile. - Nama model harus persis.
qwen3danqwen3:1.7badalah entri berbeda diollama 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
:slimkalau hanya butuh chat. Menurut dokumentasi Open WebUI (diukur 16 Oktober 2026 pada versi 0.12.3), image:slimsekitar 197 MB sementara:main1,62 GB. Untuk chat biasa, selisih 1,4 GB itu tidak ada gunanya. WEBUI_SECRET_KEYharus tetap. Kalau nilainya berubah setiap container dibuat ulang, semua sesi login ikut hilang.- Volume
open-webuimenyimpan chat, user, dan setelan. Tanpa volume itu, semuanya lenyap saat container diganti. - Ollama di host harus mendengarkan di
0.0.0.0agar bisa dijangkau dari dalam container — inilah alasan langkah 4 dikerjakan lebih dulu. Di pengaturan koneksi Open WebUI, arahkan kehttp://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, jalankanollama stop qwen3:1.7batau kirim"keep_alive": 0. Sebaliknya,-1membuat 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.

