Proč provozovat jazykový model lokálně?
Lokální AI vám dává kontrolu nad daty, pracuje offline, umožňuje hlubší integrace do vlastních aplikací a dlouhodobě šetří náklady.
📦 Open-source projekt: Tento návod vychází z open-source stacku dostupného na GitHubu: ZiMi-lab/local-llm-stack, kde najdete veškeré konfigurační soubory, šablony a další nástroje potřebné k nasazení lokálního jazykového modelu.

Požadavky na instalaci
Hardwarové požadavky:
- NVIDIA GPU s podporou CUDA
- Min. 16 GB RAM (doporučeno více pro větší modely)
- SSD disk
Software:
- Linux nebo WSL2/macOS (s omezením GPU podpory)
- Docker + Docker Compose
- NVIDIA Container Toolkit
- Ollama (mimo Docker)
Instalace krok za krokem
1. Instalace Dockeru a NVIDIA nástrojů
apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc > /dev/null
chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
2. Instalace Ollamy
curl -fsSL https://ollama.com/install.sh | sh
ollama help # ověření funkčnosti
Volitelně nastavte prostředí v systemd (v případě, kdy chcete povolit přístup k Ollama a jazykovému modelu i z jiných zařízení):
systemctl edit ollama.service
# přidejte:
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
systemctl daemon-reload
systemctl restart ollama
3. Klonování projektu a nastavení prostředí
git clone https://github.com/ZiMi-lab/local-llm-stack.git
cd local-llm-stack
cp .env.example .env
nano .env # upravte např. WEBUI_URL, OLLAMA_BASE_URL
🛡️ Bezpečnostní poznámka: Soubor
.envobsahuje citlivé údaje jako URL, API klíče či konfigurační volby. Tento soubor by měl být vždy uveden v.gitignorea nikdy necommitován do veřejného repozitáře. Pokud provozujete systém ve veřejné síti, ujistěte se, že soubor je chráněn správnými přístupovými právy (chmod 600 .env).
Zkopírujte Nginx šablonu:
cp nginx/templates/default.conf.template.example nginx/templates/default.conf.template
4. Nastavení SSL certifikátů
Do složky nginx/ssl vložte:
cert.crt– certifikátprivkey.key– privátní klíč
Pro testování lze vygenerovat self-signed certifikát:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout nginx/ssl/privkey.key \
-out nginx/ssl/cert.crt
5. Spuštění služeb
docker compose up -d
Ověření běhu:
docker ps
Webové rozhraní by mělo být dostupné na:
- http://localhost:3000 (nebo přes reverzní proxy na vlastní doméně)
Popis služeb
Docker Compose nasazuje:
- openwebui – webové rozhraní pro LLM (Open WebUI)
- nginx – reverzní proxy (možnost SSL)
- watchtower – automatická aktualizace kontejnerů
- tika – extrakce textu z dokumentů (PDF, DOC)
- backend – API a zpracování souborů
ℹ️ Poznámka k aktualizacím: Automatické aktualizace pomocí služby
watchtowerusnadňují údržbu, ale v produkčním prostředí se doporučuje ruční kontrola a testování aktualizací, aby nedošlo k nečekanému výpadku služeb.
Nahrávání dokumentů přes API
FastAPI backend nabízí endpoint /upload:
Příklad cURL (Linux):
curl -X POST https://vášserver.cz/upload \
-F "token=secret123" \
-F "target_dir=docs" \
-F "[email protected]"
Aktualizace a údržba
Pro aktualizaci stačí:
cd /opt/webui
docker compose pull
docker compose up --force-recreate --build -d
docker image prune -f
Shrnutí
S využitím nástrojů jako Docker, Ollama a Open WebUI lze spustit jazykový model lokálně, včetně webového rozhraní, zpracování dokumentů a možnosti RAG databáze. Tento přístup přináší kontrolu nad daty, offline dostupnost a flexibilitu pro pokročilé integrace.