otter

Docker

Otter ships a public image on Docker Hub. End users pull and run Compose — no GitHub clone required. Contributors who want bind mounts should use docker/compose.dev.yml from the repo.

Pull & install tabs

docker pull manasdutta04/otter

Docker tab: docker pull manasdutta04/otter. Package-manager tabs install the standalone CLI.

Full stack (UI + API + DB)

docker compose -f https://otter.manasdutta.com/docker-compose.yml up -d

This docs build resolves to: docker compose -f https://otter-2ookq06sf-manas-projects-577f14e5.vercel.app/docker-compose.yml up -d

Image: manasdutta04/otter:latest. Compose creates local Postgres + Redis volumes automatically.

On Windows, if Compose fails resolving .env from a URL, download /docker-compose.yml first, then docker compose -f docker-compose.yml up -d.

What runs

  • manasdutta04/otter — Next.js UI (:3000), FastAPI (:8000), Celery worker, engineer core (packages/agent)
  • Official postgres:16-alpine and redis:7-alpine (local volumes)

Release notes: Changelog (pull :latest or a v* tag after each publish).

GitHub Connect (no secrets in the image)

The published image does not contain GitHub App Client Secrets. Operators set OTTER_AUTH_BROKER_URL to the Cloudflare Worker that completes login. End users only click Connect — see GitHub.

Public distribution

  • Source: public on GitHub
  • Runtime image: public on Docker Hub
  • Compose file: public on this site (https://otter.manasdutta.com/docker-compose.yml)
  • App credentials: only in Cloudflare Secrets for the auth broker

Ollama from Docker

Ollama stays on the host. The platform reaches it via host.docker.internal:11434. Do not use 127.0.0.1 inside the container for Ollama.