SSD Nodes Learn Hosting plans →
Panduan Matt ConnorOleh Matt Connor

Cara Menjalankan Ollama di VPS dengan Aman

Model 7B memerlukan sekitar 8 GB RAM dan berjalan 4 hingga 10 token per detik pada CPU. Gunakan 127.0.0.1:11434/v1, tanpa membuka port 11434.

Yang akan Anda bangun

Satu model bahasa open-weight yang berjalan pada server milik Anda, menerima permintaan melalui HTTP API, dan, jika diinginkan, menyediakan halaman chat di browser. Ollama bertugas mengunduh model, memuatnya ke memori, dan menyediakan layanan untuk permintaan pada http://127.0.0.1:11434. Instalasinya hanya memerlukan satu perintah. Bagian yang sulit justru ada di tempat lain: memilih model yang benar-benar dapat dimuat VPS Anda ke RAM, serta tidak sengaja mempublikasikan inference server tanpa autentikasi ke seluruh Internet.

Berikut dua peringatan penting. VPS yang hanya menggunakan CPU menjalankan model kecil dengan lambat, dan API ini sama sekali tidak memiliki autentikasi bawaan. Keduanya dibahas secara terperinci di bawah karena keduanya merupakan sumber masalah yang serius.

Pemeriksaan realistis kapasitas, dengan angka sederhana

Jejak memori model kira-kira sama dengan ukuran filenya, ditambah sekitar satu gigabita overhead runtime, serta tambahan untuk context window. Tag default pada sebagian besar model Ollama populer, termasuk llama3.2:3b, llama3.1:8b, dan mistral:7b, menggunakan kuantisasi 4-bit (berlabel Q4_K_M), yang memerlukan sekitar setengah gigabita RAM untuk setiap satu miliar parameter. Tidak semua default menggunakan Q4: model kecil seperti smollm2:135m dirilis dalam format 16-bit. Karena itu, periksa baris kuantisasi pada halaman library model sebelum menghitung. Perhitungannya sederhana dan menentukan semuanya. Komponen terakhir adalah nilai yang Anda tentukan sendiri: menaikkan num_ctx di atas nilai default kecil Ollama menyediakan ruang untuk prompt yang lebih panjang, tetapi memperbesar KV cache di RAM. Karena itu, tetapkan panjang context sebelum menilai apakah model dapat berjalan.

Model 3B seperti llama3.2:3b memerlukan unduhan sekitar 2 GB dan sekitar 4 GB RAM kosong untuk berjalan. Model 7B atau 8B seperti mistral:7b atau llama3.1:8b berukuran sekitar 5 GB di disk dan memerlukan sekitar 8 GB RAM, atau 16 GB agar dapat berjalan dengan nyaman. Model 13B atau 14B memerlukan sekitar 16 GB. Model dalam rentang 30B hingga 70B memerlukan server dengan RAM besar atau, secara realistis, GPU. Pada VPS dengan CPU, model tersebut mungkin tidak muat atau menjawab sangat lambat sehingga tidak berguna.

Selanjutnya, perhatikan kecepatan karena bagian ini sering diremehkan. Inferensi CPU dibatasi oleh bandwidth memori, bukan kecepatan clock, dan VPS dengan vCPU bersama memiliki bandwidth yang terbatas. Perkirakan kecepatan satu digit hingga dua digit rendah dalam token per detik: model Q4 7-8B mungkin mencapai 4 hingga 10 token per detik, sedangkan model 3B mencapai 10 hingga 25. GPU kira-kira satu tingkat besaran lebih cepat. Angka ini sengaja dibuat sebagai perkiraan kasar. Langkah run di bawah ini menunjukkan cara mengukur server Anda sendiri. Percayai eval rate Anda, bukan angka dalam artikel mana pun, termasuk artikel ini.

Kesimpulan praktisnya: model kecil terkuantisasi pada CPU benar-benar berguna untuk menyusun draf, membuat ringkasan, dan melakukan klasifikasi jika Anda dapat menerima kecepatannya. Untuk model yang lebih besar atau lebih cepat, siapkan anggaran untuk instance GPU. Jika Anda ingin melihat perhitungan ini diterapkan dari awal hingga akhir pada satu model tertentu, menjalankan Nemotron 3.5 Lightning pada VPS membahas tag yang harus diunduh, RAM yang sebenarnya diperlukan, dan apakah mode CPU saja dapat mengimbanginya.

Untuk membandingkan model tertentu dengan server tertentu, perkirakan jejak memorinya di sini:

ToolLLM VRAM and model-size calculator

Instal Ollama

Ada dua cara yang bersih. Script resmi adalah cara paling sederhana pada VPS tanpa layanan lain:

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

Cara ini membuat system user bernama ollama, menginstal binary ke /usr/local/bin/ollama, dan mendaftarkan systemd service bernama ollama.service yang dijalankan saat boot serta melakukan bind pada 127.0.0.1:11434. Pastikan service sudah berjalan:

systemctl status ollama
ollama --version

Jika Anda sudah menjalankan Docker, gunakan container:

docker run -d --name ollama \
  -p 127.0.0.1:11434:11434 \
  -v ollama:/root/.ollama \
  --restart always \
  ollama/ollama

Perhatikan prefix 127.0.0.1: pada pemetaan port. Prefix ini mengikat port hanya ke localhost. Jika menulis -p 11434:11434, port akan dipublikasikan pada semua interface. Inilah kesalahan yang diperingatkan dalam bagian keamanan. Pilih salah satu metode instalasi. Jangan menjalankan script dan container secara bersamaan karena kedua proses akan berebut port.

Unduh dan jalankan model pertama Anda

ollama pull llama3.2:3b
ollama run llama3.2:3b

pull mengunduh layer model ke disk (sekitar 2 GB untuk model ini). run memuatnya ke memori dan menampilkan prompt >>>. Ketik pertanyaan. Token pertama mungkin memerlukan waktu beberapa detik saat bobot dimuat dari disk ke RAM, kemudian jawaban ditampilkan secara bertahap. Ketik /bye untuk keluar dari chat; Ollama tetap berjalan di latar belakang.

Lihat model yang dimuat dan cara model tersebut menggunakan sumber daya:

ollama ps

Kolom PROCESSOR menunjukkan kondisi sebenarnya. 100% CPU berarti GPU tidak digunakan, dan inilah penyebab proses berjalan lambat. Ukur kecepatan sebenarnya dengan flag verbose:

ollama run --verbose llama3.2:3b "Write two sentences about Linux."

Baris eval rate yang dicetak di bagian akhir menunjukkan jumlah token per detik pada hardware ini. Gunakan angka tersebut sebagai dasar perencanaan.

Model berada di mana, dan berapa kapasitas disk yang perlu dibeli

Model yang dipasang oleh skrip dan dijalankan sebagai service berada di home milik pengguna ollama:

sudo du -sh /usr/share/ollama/.ollama/models

Jika dijalankan secara interaktif sebagai pengguna Anda sendiri, model berada di ~/.ollama/models. Di dalam container, model berada di named volume ollama. Hal ini penting karena bobot yang telah dikuantisasi dapat cepat memenuhi disk: model 3B berukuran ~2 GB, model 7-8B berukuran ~5 GB, dan model 14B berukuran ~9 GB. Jika Anda mengunduh empat model untuk membandingkannya, kapasitas 20 GB dapat terpakai tanpa disadari. Sesuaikan kapasitas disk dengan model yang ingin dipertahankan, lalu hapus model lainnya menggunakan ollama rm <model>. Jika VPS yang sama sudah menjalankan sesuatu yang juga membutuhkan banyak ruang, seperti PhotoPrism atau Immich yang menyimpan pustaka foto, kurangi kapasitas tersebut dari ruang kosong terlebih dahulu. Anggap kapasitas yang tersisa sebagai anggaran ruang nyata untuk model.

Jalankan sebagai service yang Anda kelola

Skrip instalasi sudah mendaftarkan ollama.service, sehingga service tersebut otomatis dijalankan kembali saat boot tanpa konfigurasi tambahan. Pengaturan yang perlu diubah adalah durasi model tetap berada di memori dan, pada konfigurasi tertentu, alamat bind. Keduanya ditempatkan dalam systemd drop-in agar tidak ditimpa saat Ollama diperbarui:

sudo systemctl edit ollama.service

Tambahkan konfigurasi berikut di bawah header [Service] yang ditampilkan oleh editor:

[Service]
Environment="OLLAMA_KEEP_ALIVE=30m"

OLLAMA_KEEP_ALIVE menentukan berapa lama model tetap berada di memori setelah permintaan terakhir (default 5 menit). Tingkatkan nilainya pada server yang digunakan untuk melakukan query sepanjang hari agar bobot model tidak perlu dimuat ulang setiap kali. Pada server dengan RAM terbatas, tetapkan nilainya ke 0 agar RAM segera dibebaskan setelah permintaan selesai. Jika Anda ingin model tetap berada di memori tanpa batas waktu, bukan hanya selama jangka waktu tertentu, mempertahankan model Ollama tetap dimuat menjelaskan field keep_alive per permintaan dan cara menghangatkan kembali bobot model setelah reboot, bukan saat permintaan pertama yang lambat. systemctl edit memuat ulang file unit untuk Anda, jadi restart service untuk menerapkan perubahan:

sudo systemctl restart ollama

Poin keamanan yang paling penting

Secara default, Ollama melakukan bind ke 127.0.0.1:11434, sehingga hanya proses pada VPS itu sendiri yang dapat mengaksesnya. Konfigurasi default tersebut sudah benar. Pertahankan konfigurasi itu.

API ini tidak memiliki autentikasi. Sama sekali tidak ada. Tidak ada API key, login, atau rate limit. Satu-satunya allow-list yang tersedia, yaitu OLLAMA_ORIGINS, hanya mengatur origin browser yang boleh memanggilnya (CORS); fitur ini tidak mencegah curl atau script pada mesin lain untuk mengaksesnya. Siapa pun yang dapat mengakses port 11434 dapat menjalankan model apa pun yang telah Anda pull, melakukan pull model baru, menghapusnya, serta membebani CPU atau GPU hingga 100% tanpa batas waktu. Scanner seperti Shodan mengindeks instance Ollama yang terbuka dalam jumlah ribuan, dan instance yang terekspos dapat ditemukan serta disalahgunakan dalam hitungan jam.

Karena itu, jangan pernah melakukan kesalahan berikut: jangan menetapkan OLLAMA_HOST=0.0.0.0 dan membuka port 11434 pada firewall. Tindakan tersebut mempublikasikan inference server tanpa autentikasi ke seluruh Internet. Tidak ada konfigurasi yang dapat membuat 11434 mentah pada 0.0.0.0 menjadi aman, karena tidak satu pun pengaturan yang didokumentasikan Ollama menambahkan autentikasi ke API lokalnya, dan allow-list origin bukanlah login. Ini adalah aturan untuk service tertentu, bukan larangan membuka port dalam kondisi apa pun: relay RustDesk self-hosted untuk remote desktop memang harus menerima trafik publik agar dapat berfungsi, dan hal itu aman karena relay tersebut memiliki autentikasi berbasis key serta daftar port yang singkat dan terdokumentasi. Ollama tidak memiliki semua itu.

Ada tiga cara aman untuk mengakses model dari lokasi selain server tersebut:

  • Tetap gunakan akses lokal. Jika satu-satunya pemanggil adalah program lain pada VPS yang sama, cron script, bot, atau server MCP yang menghubungkan tool Anda ke model, pertahankan bind pada 127.0.0.1 dan minta program tersebut memanggil http://127.0.0.1:11434. Tidak ada yang terekspos dan tidak diperlukan konfigurasi lain.
  • Akses melalui tunnel privat. Hubungkan VPS ke VPN WireGuard yang Anda host sendiri, tetapkan OLLAMA_HOST ke alamat tunnel, misalnya 10.8.0.1, bukan 0.0.0.0, dan hanya peer VPN yang dapat terhubung. Internet publik tetap tidak dapat melihat apa pun pada port 11434.
  • Tempatkan reverse proxy dengan autentikasi di depannya. Lakukan terminasi TLS dan wajibkan password atau token pada nginx, Traefik, atau Caddy, lalu teruskan proxy ke 127.0.0.1:11434. Ollama tetap menggunakan bind localhost; hanya proxy yang listening pada port publik. Bentuk konfigurasi ini sama seperti menempatkan sertifikat Let's Encrypt pada nginx di depan service lokal.

Opsi reverse proxy tersebut adalah konfigurasi yang akan digunakan chat UI pada langkah berikutnya, dengan login yang benar.

Tambahkan antarmuka chat dengan Open WebUI di balik TLS

Open WebUI adalah antarmuka chat yang di-host sendiri. Jalankan dalam Docker dan arahkan ke Ollama lokal:

docker run -d \
  --name open-webui \
  --network=host \
  -e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
  -v open-webui:/app/backend/data \
  --restart always \
  ghcr.io/open-webui/open-webui:main

Flag --network=host adalah detail penting pada VPS Linux. Flag ini menempatkan container dalam network namespace host, sehingga 127.0.0.1 di dalam container merupakan loopback milik host dan container dapat mengakses Ollama melalui 127.0.0.1:11434 tanpa membuat Ollama listen pada interface lain. Resep bridge network yang akan Anda lihat di bagian lain, --add-host=host.docker.internal:host-gateway dengan OLLAMA_BASE_URL=http://host.docker.internal:11434, tidak berfungsi di sini: nama tersebut mengarah ke gateway Docker bridge, dan service yang terikat pada 127.0.0.1 di host tidak dapat diakses melalui bridge. Akibatnya, Open WebUI hanya menampilkan pesan bahwa koneksi ke Ollama gagal.

Konsekuensi penggunaan host networking adalah Open WebUI kini listen pada port 8080 milik host di semua interface. Mapping -p diabaikan, dan Docker menampilkan peringatan tentang hal tersebut. Karena itu, tutup 8080 pada firewall host dan firewall provider, lalu jadikan reverse proxy TLS sebagai satu-satunya pintu akses publik. Pada kunjungan pertama, Open WebUI meminta Anda membuat akun admin. Akun tersebut menjadi lapisan autentikasi Anda, jadi gunakan password yang kuat.

Untuk membuka chat dari laptop melalui HTTPS, tempatkan reverse proxy TLS di depan 127.0.0.1:8080. Jika Anda sudah merutekan beberapa aplikasi Docker pada server tersebut, Traefik dengan TLS otomatis untuk banyak aplikasi adalah pilihan yang paling sesuai: satu blok label menerbitkan sertifikat dan merutekan chat.example.com ke Open WebUI. Routing berbasis label per aplikasi yang sama akan digunakan oleh setiap front-end browser lain pada server tersebut, baik dashboard status maupun sesuatu yang lebih ringan seperti Halcyon, yang menampilkan library Jellyfin seperti toko rental tahun 90-an, masing-masing dengan hostname sendiri dan login tersendiri. Aturan dari bagian keamanan tetap berlaku: proxy mengelola port publik dan login, sedangkan Ollama tetap berjalan pada localhost dan 8080 milik Open WebUI tetap diblokir oleh firewall.

Gunakan endpoint yang kompatibel dengan OpenAI dari kode Anda

Ollama menyediakan sebagian API chat OpenAI di /v1, sehingga sebagian besar pustaka klien OpenAI dapat digunakan setelah mengubah dua hal: URL dasar dan key sementara.

from openai import OpenAI

client = OpenAI(base_url="http://127.0.0.1:11434/v1", api_key="ollama")

resp = client.chat.completions.create(
    model="llama3.2:3b",
    messages=[{"role": "user", "content": "Name three Linux distributions."}],
)
print(resp.choices[0].message.content)

api_key diperlukan oleh pustaka klien, tetapi diabaikan oleh Ollama, sehingga string apa pun dapat digunakan. model harus berupa nama model yang sudah Anda pull; nama yang tidak dikenal mengembalikan 404 dengan model 'x' not found. Pemanggilan curl biasa menggunakan konsep yang sama:

curl http://127.0.0.1:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"llama3.2:3b","messages":[{"role":"user","content":"Hello"}]}'

Cara ini juga digunakan untuk menghubungkan model ke tooling agen dan editor. Jika Anda sudah mengembangkan aplikasi di server tersebut, model lokal dapat mendukung skrip dan plugin bersama Claude Code yang berjalan di VPS di dalam tmux, sehingga pekerjaan penyusunan draf yang murah dan privat tidak perlu menggunakan API berbayar, sementara penalaran yang lebih berat tetap ditangani model yang di-host.

Mode kegagalan, dengan string persis yang akan Anda lihat

Proses "Killed" di tengah pembuatan. Anda menjalankan model besar dan terminal mencetak Killed, atau log server (journalctl -u ollama) menampilkan baris yang diawali llama-server process has terminated. Itulah pesan pada Ollama 0.40.7, diperiksa pada 21 October 2026; rilis yang lebih lama menampilkan llama runner process has terminated: signal: killed. Linux OOM killer menghentikan proses tersebut karena model membutuhkan RAM lebih besar daripada kapasitas server. Konfirmasikan penyebabnya dengan sudo dmesg | grep -i oom. Anda akan melihat baris seperti Out of memory: Killed process .... Solusinya adalah menggunakan model yang lebih kecil atau terkuantisasi lebih tinggi, llama3.2:3b alih-alih model 13B, atau menambahkan swap agar beban yang sedikit melebihi RAM fisik dapat selesai secara lambat, bukan berhenti. Swap mengubah crash seketika menjadi respons yang lambat. Swap tidak membuat model 70B praktis dijalankan pada 4 GB. Proses ini berhenti tanpa pesan jika Anda tidak sedang memantau terminal. Pada server yang Anda kueri dari tempat lain, memasang unit OnFailure= pada ollama.service yang mengirim posting ke server ntfy yang Anda host untuk peringatan push akan memberi tahu Anda saat proses berhenti, alih-alih membiarkan Anda mengetahuinya pada permintaan berikutnya.

Ollama menolak memuat model. Permintaan langsung gagal dengan pesan error, bukan mengalami crash, dan log server mencatat model is too large for system memory (Ollama 0.40.7, diperiksa pada 21 October 2026). Rilis yang lebih lama mencetak Error: model requires more system memory (X GiB) than is available (Y GiB) langsung pada prompt. Ini adalah versi yang lebih terkendali dari crash di atas: Ollama menghitung kebutuhan memori lalu berhenti, alih-alih membiarkan OOM killer menghentikannya. Pilih model yang kebutuhannya berada di bawah RAM bebas Anda (periksa dengan free -h), kurangi panjang context, atau pindah ke VPS yang lebih besar. Tidak ada flag yang dapat membuat model muat jika memorinya memang tidak mencukupi.

Token pertama membutuhkan waktu sangat lama, lalu proses berjalan normal. Model yang masih cold tidak mencetak apa pun selama lima hingga tiga puluh detik, lalu melakukan streaming secara normal. Jeda tersebut terjadi karena weights dimuat dari disk ke RAM untuk pertama kalinya. Storage yang lambat memperburuknya. Setelah dimuat, model tetap berada di RAM selama OLLAMA_KEEP_ALIVE, sehingga prompt kedua dijawab secara instan. Jika pemuatan pertama berlangsung lebih lama daripada timeout di salah satu bagian jalur panggilan, Anda akan menerima error, bukan jawaban yang lambat. Menentukan layer yang melaporkan context deadline exceeded akan menunjukkan apakah client, proxy, atau proses pemuatan kehabisan waktu. Naikkan nilai tersebut jika jedanya mengganggu, dan gunakan ollama ps untuk melihat apakah model sedang dimuat.

Semuanya hanya berjalan lambat. Kecepatannya sepuluh token per detik atau kurang, tanpa error sama sekali. Itu adalah inferensi CPU yang berjalan sebagaimana mestinya. ollama ps menampilkan 100% CPU, yang berarti tidak ada GPU. Ini bukan bug. Tidak ada setting yang dapat mengubah CPU menjadi GPU karena batas utama berada pada bandwidth memori. Namun, ada satu setting yang layak diuji pada VM: Ollama menentukan jumlah thread dari core fisik yang terdeteksi, dan hypervisor dapat melaporkannya secara keliru. Dalam sesi ollama run --verbose, coba /set parameter num_thread 4 (atau jumlah vCPU Anda), jalankan kembali prompt yang sama, lalu gunakan nilai yang menghasilkan eval rate terbaik. Selain itu, gunakan model yang lebih kecil, terima kecepatannya, atau pindah ke instance GPU. Ukur kecepatan aktual Anda dengan --verbose sebelum menyimpulkan bahwa ada yang rusak. Jika waktu tunggu disebabkan oleh panjang jawaban, bukan kecepatannya, membatasi jawaban dengan num_predict akan mencegah model yang cenderung bertele-tele menghabiskan beberapa menit untuk token yang tidak akan Anda baca.

Connection refused dari mesin lain. Dari laptop, curl terbaru (8.23.0, diperiksa pada 21 October 2026) mencetak curl: (7) Failed to connect to <ip>:11434 after <n> ms: Could not connect to server, sedangkan curl 8.5.0 yang disertakan Ubuntu 24.04 mencetak curl: (7) Failed to connect to <ip> port 11434 after <n> ms: Couldn't connect to server. Teks "Connection refused" hanya muncul jika Anda menambahkan -v, dalam baris yang berbunyi connect to <ip> port 11434 from ... failed: Connection refused. Ini berjalan sesuai desain: Ollama hanya bind ke localhost. Jangan "memperbaikinya" dengan melakukan bind ke 0.0.0.0. Itulah kesalahan eksposur yang dijelaskan di atas. Akses model melalui VPN atau melalui proxy yang menerapkan autentikasi.

Anda mengekspos 11434 ke Internet. Jika Anda memang menetapkan OLLAMA_HOST=0.0.0.0, membuka firewall, lalu sekarang melihat pull model yang tidak pernah Anda mulai atau CPU mencapai 100% karena client yang tidak dikenal, server Anda telah ditemukan dan digunakan pihak lain. Ini adalah kesalahan utama, bukan kasus yang jarang terjadi. Bind ulang ke 127.0.0.1 atau alamat VPN, tutup 11434 pada firewall, lalu tambahkan autentikasi di depannya. Anggap semua hal yang dapat dijangkau pada alamat tersebut selama port terbuka telah dikueri oleh pihak asing.

Pencadangan dan upgrade

State yang perlu dipertahankan sedikit. Model dapat diunduh ulang, sehingga yang perlu dicadangkan hanya volume data Open WebUI, akun, riwayat chat, pengaturan, dan drop-in systemd yang Anda buat. Cadangkan volume tersebut menggunakan container sementara:

docker run --rm -v open-webui:/data -v "$PWD":/backup alpine \
  tar czf /backup/open-webui.tgz -C /data .

Upgrade Ollama dengan menjalankan ulang skrip instalasi; upgrade Open WebUI dengan docker pull ghcr.io/open-webui/open-webui:main, lalu buat ulang container. Catatan terkait disk untuk lini 0.40: Ollama 0.40.2 mulai meng-upgrade model yang diambil menggunakan versi sebelumnya di latar belakang dan mempertahankan salinan asli sebagai cadangan, sehingga salinan tersebut menggunakan ruang disk tambahan sampai dihapus. Ollama 0.40.3 (11 October 2026) menghentikan sementara proses upgrade di latar belakang tersebut. Periksa df -h setelah upgrade, lalu baca catatan rilis untuk mengetahui perintah yang menghapus cadangan tersebut. Jangan menetapkan pin untuk jangka panjang: kualitas model dan runtime sama-sama berubah cepat. Baca catatan rilis dan lakukan benchmark ulang pada server Anda sendiri, bukan mengandalkan angka dari kuartal lalu.

FAQ

Apakah saya benar-benar dapat menjalankan LLM pada VPS yang hanya menggunakan CPU?

Ya, dengan beberapa batasan. Model kecil terkuantisasi dalam rentang 3B hingga 8B dapat berjalan pada CPU dan berguna untuk membuat draf, merangkum, serta melakukan klasifikasi. Namun, prosesnya lambat, yaitu sekitar satu digit hingga belasan token per detik pada vCPU bersama. Model berukuran 13B atau lebih besar akan berjalan sangat lambat atau sama sekali tidak muat di RAM. Untuk kecepatan yang lebih tinggi atau model yang lebih besar, Anda memerlukan instance GPU.

Berapa banyak RAM yang diperlukan setiap model?

Sebagai aturan praktis untuk tag 4-bit (Q4) yang digunakan secara default oleh sebagian besar model populer, siapkan sekitar 0.5 GB RAM per miliar parameter untuk bobot, ditambah sekitar 1 GB overhead dan sedikit ruang tambahan untuk context. Jadi, model 3B memerlukan sekitar 4 GB ruang kosong, model 7-8B sekitar 8 GB, dan model 14B sekitar 16 GB. Periksa ruang yang tersedia dengan free -h dan sisakan ruang untuk sistem operasi serta komponen lain pada server.

Apakah API Ollama memiliki autentikasi?

Tidak. Ollama tidak memiliki autentikasi bawaan, API key, atau rate limit. Siapa pun yang dapat menjangkau port 11434 memiliki kendali penuh atasnya. Pengaturan OLLAMA_ORIGINS hanya membatasi browser origin yang boleh memanggilnya, bukan pihak yang dapat terhubung. Karena itu, Ollama secara default hanya bind ke 127.0.0.1, dan Anda tidak boleh mengekspos port 11434 pada 0.0.0.0 ke internet. Akses Ollama secara lokal, melalui VPN privat, atau melalui reverse proxy yang menambahkan login.

Bagaimana cara menambahkan antarmuka web chat?

Jalankan Open WebUI di Docker dengan --network=host agar menggunakan loopback milik host dan dapat menjangkau Ollama native pada http://127.0.0.1:11434. Kemudian, tempatkan reverse proxy TLS di depan port 8080 agar dapat diakses dari laptop Anda. Biarkan 8080 ditutup pada firewall sehingga hanya proxy yang menjadi pintu masuk publik. Akun admin Open WebUI menyediakan login. Atur password akun tersebut saat pertama kali dijalankan.

Bagaimana cara memanggilnya dari aplikasi saya sendiri?

Gunakan endpoint yang kompatibel dengan OpenAI pada http://127.0.0.1:11434/v1. Arahkan SDK OpenAI apa pun ke base URL tersebut. Gunakan string apa pun sebagai API key karena nilainya diabaikan, lalu atur model ke nama model yang sudah Anda pull. Kode OpenAI yang sudah ada biasanya dapat berjalan tanpa perubahan, selain pada base URL dan key.