ollama/ollama
Deployment
How an Ollama release reaches users.
Release pipeline
A release is cut by pushing a tag like v0.22.1 to main. That triggers .github/workflows/release.yaml, which:
- Builds binaries for the supported targets:
- macOS (
x86_64,arm64) with Metal built into the binary. - Linux (
x86_64,arm64) with CPU, NVIDIA CUDA, and AMD ROCm variants. - Windows (
x86_64,arm64) with CPU, CUDA, and ROCm variants.
- macOS (
- Packages installers:
- macOS: signed/notarized
.dmgfromapp/plus a tarball. - Windows: Inno Setup
OllamaSetup.exefromapp/ollama.iss. - Linux: tarball + the
install.shshell installer inscripts/.
- macOS: signed/notarized
- Pushes the Docker image (
ollama/ollama:<tag>) to Docker Hub. The baseDockerfilebuilds a release-ready image with all GPU library variants. - Attaches artifacts to the GitHub release.
After the release validates, .github/workflows/latest.yaml is run to promote the version to the latest channel that install.sh resolves.
Daemon deployment
ollama serve is intended to run on the user's own machine (laptop, workstation, or single-tenant server). There is no first-party multi-tenant deployment story — multi-user setups happen through the third-party tools listed in the README (Docker, Kubernetes via the community Helm chart, Fly.io, Koyeb, etc.).
Versioning
Tags follow vMAJOR.MINOR.PATCH semver, with -rcN and -rc0 suffixes for release candidates. The version stamp is read at build time and exposed via version.Version (version/) and /api/version.
Backwards compatibility
CONTRIBUTING.md is explicit: changes that break the Ollama API or the OpenAI-compatible API are not accepted. New fields are additive; deprecated parameters get added to lists like parser.deprecatedParameters rather than removed outright.
Distribution channels
| Channel | Source | Notes |
|---|---|---|
https://ollama.com/install.sh |
scripts/ |
Linux install script. |
Ollama.dmg / OllamaSetup.exe |
app/ |
macOS / Windows desktop installers. |
Docker Hub ollama/ollama |
Dockerfile |
CPU + GPU images. |
| Homebrew, Pacman, Nix, Helm chart, etc. | community | Listed in the README. |
Containers
The container build at Dockerfile bundles the daemon plus GPU libraries. It is the basis for the official Docker Hub image and is also referenced by the community Helm chart.
Updater
The desktop app has its own updater under app/updater/. It polls GitHub releases, downloads the new installer, and prompts the user to relaunch.
Operating the daemon
Configuration is environment-variable based and documented in reference/configuration. The most common production knobs:
OLLAMA_HOST— bind address.OLLAMA_MODELS— model store location (typically a fast disk).OLLAMA_KEEP_ALIVE— runner keep-alive duration.OLLAMA_MAX_QUEUE— request queue depth.OLLAMA_NUM_PARALLEL— per-runner parallelism.OLLAMA_GPU_OVERHEAD— VRAM headroom.
Key source files
| File | Purpose |
|---|---|
.github/workflows/release.yaml |
Release pipeline. |
.github/workflows/latest.yaml |
Channel promotion. |
Dockerfile |
Container image. |
app/ollama.iss |
Windows installer. |
app/updater/ |
In-app updater. |
scripts/ |
Installer + release helpers. |
version/ |
Build-stamped version constant. |
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.