
Seorang penulis XDA-Developers menghabiskan akhir pekan untuk menghubungkan server Docker mereka ke tumpukan LLM lokal dan pulang dengan workstation yang sekarang mengelola dirinya sendiri. Pelajaran yang dibuat artikel dengan tenang adalah yang penting: Docker adalah unit pekerjaan yang tepat untuk AI lokal. Tarik image server model, tarik UI, lem mereka bersama dengan file compose, dan seluruh hal dapat direproduksi di seluruh mesin dan reboot. Tidak ada lagi arkeologi virtualenv Python setelah pembaruan CUDA berikutnya.
Kami menguji aplikasi terbaik untuk alur kerja LLM yang self-hosted yang sesuai dengan pola itu. Setiap pilihan pada daftar ini dilengkapi dengan image resmi, mempertahankan state melalui volume bernama, dan cocok ke dalam file compose di sebelah Postgres, Redis, dan reverse proxy tanpa kejutan. Kami menilai hal-hal yang membosankan: seberapa cepat docker compose up segar mencapai chat yang berfungsi, seberapa bersih GPU passthrough bekerja, apakah image bermain baik dengan Docker tanpa root dan Podman, dan berapa banyak masing-masing kontainer bocor ketika model mogok.
Apa yang harus dicari dalam tumpukan LLM self-hosted
Beberapa sifat membedakan kontainer yang mendapatkan slot permanen di file compose Anda dari yang dicabut setelah seminggu:
- Kompatibilitas OpenAI-API. Format wire de facto. Jika kontainer berbicara itu, setiap klien yang ada (ekstensi editor, kerangka agent, notebook) bekerja tanpa perubahan kode.
- Image Docker resmi. Image yang dibangun oleh pengelola dibangun kembali pada pengungkapan CVE dan diberi tag terhadap rilis upstream. Fork komunitas tertinggal dan bergeser.
- GPU passthrough. NVIDIA Container Toolkit di Linux, ROCm di mana didukung, Apple Silicon melalui inferensi host. Image terkuat mendokumentasikan invokasi
--gpus allyang tepat dan dilengkapi dengan default yang masuk akal. - Konvensi volume persisten. Model besar. Titik mount yang dapat diprediksi (
/root/.ollama,/app/backend/data) membuatdocker-compose.ymlAnda pendek dan cadangan Anda mudah. - OpenTelemetry dan structured logging. Apa pun yang berjalan dalam produksi memerlukan trace dan JSON log dari kotak, bukan hanya percakapan stdout.
- Multi-user auth. Home lab berkembang dari mode single-user saat orang kedua ingin masuk. SSO, OIDC, atau setidaknya hashing password nyata penting.
Perbandingan cepat
| Aplikasi | Lapisan | Paket gratis | Tier berbayar | Image Docker |
|---|---|---|---|---|
| Ollama | Server model | Ya (open source) | Tidak ada | ollama/ollama |
| Open WebUI | Chat UI | Ya (open source) | Tidak ada | ghcr.io/open-webui/open-webui |
| LocalAI | Server model (multimodal) | Ya (open source) | Tidak ada | localai/localai |
| LiteLLM | Gateway / proxy | Ya (open source) | Enterprise | ghcr.io/berriai/litellm |
| vLLM | Production inference | Ya (open source) | Tidak ada | vllm/vllm-openai |
| Text Generation WebUI | Tinkerer UI | Ya (open source) | Tidak ada | atinoda/text-generation-webui |
| AnythingLLM | Full-stack workspace | Ya (open source) | Hosted plan | mintplexlabs/anythingllm |
7 aplikasi terbaik untuk LLM self-hosted dengan Docker pada 2026
1. Ollama — server model terbaik untuk home lab
Ollama adalah yang paling dekat kategori memiliki “Docker untuk LLM”. Image resmi kecil, daemon mengekspos API yang kompatibel dengan OpenAI di localhost:11434, dan satu docker exec ollama ollama pull llama3.2 adalah semua yang diperlukan untuk menambahkan model. Perpustakaan mencakup 4500+ build yang diberi tag di seluruh keluarga populer dengan kuanta default yang masuk akal, dan cerita GPU didokumentasikan dengan baik untuk host NVIDIA dan AMD.
Di mana ini jatuh pendek: Ollama adalah runtime, bukan app chat. Image tidak dilengkapi dengan UI, jadi Anda pasangkan dengan Open WebUI atau front-end lain. Format Modelfile kuat tetapi memperkenalkan langkah build saat Anda menginginkan system prompt yang disesuaikan.
Harga:
- Gratis: open-source, tidak ada biaya lisensi
- Berbayar: tidak ada
Platform: Kontainer Linux; berjalan pada host Windows, macOS, dan Linux melalui Docker.
Unduh: ollama.com
Garis bawah: Pilih Ollama sebagai lapisan server model dari tumpukan self-hosted apa pun. Tidak ada yang lain yang semudah ini dipasang ke dalam file compose.
2. Open WebUI — chat UI terbaik untuk diletakkan di depan Ollama
Open WebUI adalah front-end yang telah distandardisasi oleh komunitas Ollama. Kontainer dilengkapi dengan antarmuka bergaya ChatGPT yang dipoles dengan akun multi-pengguna, switching model per-percakapan, RAG atas dokumen yang diunggah, dukungan alat MCP, dan sistem ekstensi yang menambahkan pembuatan gambar, pencarian web, dan interpretasi kode. Image resmi berfungsi dari kotak di belakang reverse proxy dengan HTTPS dan OIDC.
Di mana ini jatuh pendek: Ini mengasumsikan backend terpisah, jadi tidak pernah bekerja sendiri. Permukaan pengaturan luas, yang dapat membanjiri admin pemula yang hanya menginginkan chat box.
Harga:
- Gratis: open-source, tidak ada biaya lisensi
- Berbayar: tidak ada
Platform: Kontainer Linux; berjalan pada host Windows, macOS, dan Linux melalui Docker.
Unduh: openwebui.com
Garis bawah: Pilih Open WebUI sebagai lapisan chat-UX untuk setup rumah tangga atau tim kecil. Ini adalah antarmuka berbasis browser paling bersih dalam kategori.
3. LocalAI — drop-in multimodal terbaik untuk OpenAI
LocalAI adalah drop-in replacement untuk API OpenAI yang menangani teks, gambar, audio, dan embedding melalui satu endpoint. Satu kontainer dapat melayani penyelesaian chat Llama, transkripsi Whisper, gambar Stable Diffusion, dan panggilan sentence-embedding tanpa menggonggong layanan terpisah. Bundle model diinstal dengan one-liner, dan proyek dilengkapi dengan image GPU untuk CUDA dan ROCm.
Di mana ini jatuh pendek: Luasnya menghabiskan throughput. Beban kerja yang menghantam satu modalitas sering kali berjalan lebih cepat pada server khusus (vLLM untuk teks, kontainer diffusion terpisah untuk gambar). Konfigurasi berat pada YAML, yang membuat pemula tersandung.
Harga:
- Gratis: open-source, tidak ada biaya lisensi
- Berbayar: tidak ada
Platform: Kontainer Linux; berjalan pada host Windows, macOS, dan Linux melalui Docker.
Unduh: localai.io
Garis bawah: Pilih LocalAI ketika satu kontainer perlu melayani beberapa modalitas di belakang satu URL yang kompatibel dengan OpenAI.
4. LiteLLM — gateway terbaik untuk tumpukan campuran
LiteLLM adalah proxy ringan yang memetakan 100+ penyedia (OpenAI, Anthropic, Vertex, Bedrock, Ollama, vLLM, LocalAI) ke satu API yang kompatibel dengan OpenAI. Jatuhkan di depan backend lokal Anda dan kunci API jarak jauh, arahkan setiap klien ke proxy, dan Anda mendapatkan logging terpadu, anggaran, kunci per-pengguna, batas laju, dan aturan routing dalam satu tempat. Kontainer kecil dan UI admin kompeten.
Di mana ini jatuh pendek: Image gratis memiliki semua yang dibutuhkan sebagian besar home lab, tetapi SSO, log audit, dan beberapa routing canggih berada di belakang tier Enterprise. Konfigurasi melalui config.yaml tumbuh cepat sekali Anda menambahkan lebih dari beberapa model.
Harga:
- Gratis: open-source self-host
- Berbayar: Paket Enterprise dengan SSO, audit logging, dan dukungan
Platform: Kontainer Linux; berjalan pada host Windows, macOS, dan Linux melalui Docker.
Unduh: litellm.ai
Garis bawah: Pilih LiteLLM saat tumpukan Anda memiliki lebih dari dua backend. Pola gateway adalah yang membuat sistem lainnya tetap waras.
5. vLLM — mesin inferensi terbaik untuk beban produksi
vLLM adalah server inferensi throughput-tinggi yang dituju sebagian besar tim saat traffic menjadi nyata. PagedAttention dan continuous batching mendorong tokens-per-second jauh melampaui server naif di hardware yang sama, dan API yang kompatibel dengan OpenAI berarti klien yang ada bekerja tanpa perubahan. Image resmi vllm/vllm-openai adalah yang harus diambil, dan proyek mendokumentasikan kombinasi driver NVIDIA dan CUDA yang tepat yang bekerja.
Di mana ini jatuh pendek: Image besar. Server mengharapkan GPU NVIDIA dengan VRAM yang masuk akal, jadi tidak cocok untuk laptop atau host hanya-CPU. Konfigurasi cenderung ke arah “production engineer” daripada “weekend tinkerer”.
Harga:
- Gratis: open-source, tidak ada biaya lisensi
- Berbayar: tidak ada
Platform: Kontainer Linux; berjalan pada host Windows, macOS, dan Linux melalui Docker dengan NVIDIA Container Toolkit.
Unduh: vllm.ai
Garis bawah: Pilih vLLM sebagai server model ketika konkurensi dan throughput lebih penting daripada waktu setup lima menit.
6. Text Generation WebUI — playground terbaik untuk tinkerer
Text Generation WebUI (proyek yang kebanyakan orang masih sebut oobabooga) adalah opsi kitchen-sink. Kontainer menggabungkan beberapa backend (Transformers, llama.cpp, ExLlamaV2), setiap sampler di bawah matahari, kartu karakter, LoRA training hooks, dan sistem ekstensi yang menambahkan RAG dan voice. Peneliti yang peduli dengan penyetelan sampler, decoding kontrastif, atau format kuanta samar mendarat di sini.
Di mana ini jatuh pendek: Image resmi lebih besar dari yang lain, tarian ketergantungan boot pertama memerlukan waktu lebih lama, dan permukaan UI padat. Tidak ada yang penting jika Anda datang untuk knob, tetapi itu penting jika Anda hanya menginginkan chat box.
Harga:
- Gratis: open-source, tidak ada biaya lisensi
- Berbayar: tidak ada
Platform: Kontainer Linux; berjalan pada host Windows, macOS, dan Linux melalui Docker.
Unduh: github.com/oobabooga/text-generation-webui
Garis bawah: Pilih Text Generation WebUI ketika Anda menginginkan setiap dial terbuka dan malam untuk bermain dengan mereka.
7. AnythingLLM — alat workspace satu kontainer terbaik
AnythingLLM adalah pilihan full-stack yang langka: satu image, satu volume, dan hasilnya adalah ruang kerja multi-pengguna dengan RAG, agent, izin lingkup ruang kerja, dan penyampaian model bring-your-own-LLM yang menargetkan Ollama, LocalAI, vLLM, OpenAI, dan Anthropic. Kontainer menangani vector database, pipeline penyerapan dokumen, chat UI, dan runtime agent dalam satu proses. Untuk tim yang menginginkan “ChatGPT internal dengan dokumen” tanpa merakit empat layanan, ini adalah jalur terpendek.
Di mana ini jatuh pendek: Pendekatan all-in-one menukar fleksibilitas untuk kesederhanaan. Beban kerja RAG berat mendapat manfaat dari vector DB khusus, dan hitungan pengguna yang sangat besar akan tumbuh melebihi tumpukan bundel. Paket yang dihosting ada untuk tim yang lebih suka tidak mengoperasikan kontainer sendiri.
Harga:
- Gratis: open-source self-host
- Berbayar: hosted plan dengan update terkelola dan penyimpanan
Platform: Kontainer Linux; berjalan pada host Windows, macOS, dan Linux melalui Docker.
Unduh: anythingllm.com
Garis bawah: Pilih AnythingLLM ketika satu tim memerlukan ChatGPT pribadi dengan dokumen dan “satu kontainer” adalah anggaran operasional.
Cara memilih yang tepat
Jika Anda menjalankan home lab solo dan menginginkan tumpukan paling sederhana, jalankan Ollama ditambah Open WebUI di belakang reverse proxy. Dua kontainer, satu jaringan, chat lengkap dengan dokumen.
Jika tim Anda memiliki lebih dari dua backend atau anggaran yang benar-benar ingin Anda terapkan, letakkan LiteLLM di depan semuanya dan arahkan klien ke proxy.
Jika beban kerja adalah production-grade (konkurensi nyata, target latensi nyata), sajikan teks dengan vLLM di belakang LiteLLM, dan biarkan Ollama atau LocalAI menangani mesin pengembang.
Jika tumpukan memerlukan lebih dari teks (transkripsi, pembuatan gambar, embedding) di satu endpoint, LocalAI membuat luas permukaan tetap kecil.
Jika tujuannya adalah “ChatGPT internal tim dengan dokumen kami” dan anggaran operasional adalah satu kontainer, AnythingLLM adalah garis terpendek antara A dan B.
Jika Anda datang untuk knob dan malam eksperimen sampler, Text Generation WebUI dibangun untuk Anda.
FAQ
Apakah saya memerlukan GPU untuk self-hosting LLM dengan Docker?
Untuk inferensi nyaman pada model 7B dan 14B, ya. Kontainer hanya-CPU bekerja untuk kuanta yang lebih kecil dan penggunaan kasual. Host NVIDIA adalah jalur paling mulus; dukungan AMD ROCm nyata tetapi lebih sempit; Apple Silicon biasanya menjalankan model pada host (melalui Ollama atau LM Studio) daripada dalam kontainer.
Berapa file compose minimal untuk LLM self-hosted yang berfungsi?
Dua layanan: kontainer Ollama dengan volume bernama yang dipasang di /root/.ollama dan port yang diterbitkan pada 11434, dan kontainer Open WebUI dengan OLLAMA_BASE_URL diatur ke layanan Ollama. Semuanya cocok dalam sekitar 25 baris YAML.
Kontainer mana yang harus saya letakkan di depan semua yang lain?
Gateway seperti LiteLLM, di belakang reverse proxy (Caddy, Traefik, atau nginx) yang menangani HTTPS. Klien mengenai proxy dengan satu URL dasar dan satu kunci. LiteLLM merutekan ke Ollama, vLLM, atau penyedia jarak jauh mana pun berdasarkan nama model.
Bisakah saya berbagi satu LLM self-hosted dengan beberapa orang?
Ya. Open WebUI dan AnythingLLM keduanya mendukung akun multi-pengguna dengan kontrol akses berbasis peran dan izin per-ruang kerja. Pasangkan salah satu dengan LiteLLM jika Anda juga menginginkan kunci API per-pengguna untuk akses pemrograman.
Bagaimana cara saya mempertahankan model dan riwayat chat di seluruh restart kontainer?
Pasang volume bernama pada jalur yang didokumentasikan: /root/.ollama untuk model Ollama, /app/backend/data untuk keadaan Open WebUI, /app/server/storage untuk AnythingLLM. Cadangkan volume-volume itu seperti direktori data lainnya; file model adalah potongan terbesar dengan urutan besarnya.
Apakah self-hosting LLM dengan Docker benar-benar lebih murah daripada menggunakan API?
Tergantung pada volume. RTX 3090 bekas ditambah listrik mengalahkan harga API yang dihosting sekali tim Anda membuat lebih dari beberapa ratus ribu token per hari. Di bawah itu, API yang dihosting biasanya lebih murah daripada hardware yang diamortisasi. Self-hosting menang pada privasi dan prediktabilitas sebelum menang pada biaya.