Deploy it
Security and requirements
Level: Review. The template has no privileged-container finding. What this template needs:- Image is not pinned to a version tag, so a redeploy can pull different code (
ollama-api): ollama/ollama:latest. - Publishes ports directly on the host (
open-webui): 8080:8080. - Stores data in named volumes (
ollama-api,open-webui): ollama_data, open_webui_data.
What Levelrail adds
- HTTPS and an ingress filter in front of any domain you attach. See domains and ingress and the firewall.
- Volume backups for
ollama_data(the downloaded models) andopen_webui_data(chats and accounts), to S3-compatible storage. See backups and storage. - Health-gated deploys. A new release takes traffic only after its health check passes. See deploy safety.
- Rollback to the previous image. See deploying apps.
- An exposure report that shows which published ports are reachable from outside. See the exposure audit.
What a raw docker compose misses
- The
ollama/ollama:latesttag moves. A plain compose file pulls whatever is newest on the nextup. The template does not pin it, so check the image you get before you rely on it. open-webuipublishes8080:8080straight on the host, so the port is open unless you filter it yourself. Levelrail’s exposure audit shows this.- Compose does not back up the
ollama_datavolume, so a lost disk loses every model you pulled. - The template has no GPU reservation, so it runs models on the CPU on any host.
Next steps
- Use a Mac as a private LLM server for the native-Ollama setup on macOS.
- Backups and storage to schedule volume backups, then prove your backups work.
- Template reference for Ollama + Open WebUI for the full service table.
- All guides.