Open-Source Wikis

/

Ollama

/

Deployment

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:

  1. 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.
  2. Packages installers:
    • macOS: signed/notarized .dmg from app/ plus a tarball.
    • Windows: Inno Setup OllamaSetup.exe from app/ollama.iss.
    • Linux: tarball + the install.sh shell installer in scripts/.
  3. Pushes the Docker image (ollama/ollama:<tag>) to Docker Hub. The base Dockerfile builds a release-ready image with all GPU library variants.
  4. 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.

Deployment – Ollama wiki | Factory