-
Notifications
You must be signed in to change notification settings - Fork 5
Quick Start
![]()
Get your first /v1/embeddings response in five minutes.
We'll use a prebuilt CPU image of jina-embeddings-v5-text-nano. No GPU needed, no Python, no bundle phase. Pure Docker.

flowchart LR
A[Pull image
from GHCR] --> B[Run container
docker run]
B --> C[Health check
curl /health]
C --> D[First embedding
curl /v1/embeddings]
- Docker installed (
docker psreturns without error) - ~3GB free disk
- Port 8080 available
- A GitHub personal access token with
read:packagesscope (create one)
Air-gapped target host? Run steps 1-3 on a connected machine, transfer the
.tar.gz, resume from step 4 on the offline host.
Prebuilt images live in ghcr.io/jina-ai/jina-on-prem/*. They require auth (one-time):
echo "YOUR_GH_TOKEN" | docker login ghcr.io -u YOUR_GH_USERNAME --password-stdindocker pull ghcr.io/jina-ai/jina-on-prem/jina-embeddings-v5-text-nano:cpu~800 MB compressed, 2.9 GB on disk. Takes 1-3 minutes on a typical link.
If the target host has no network:
docker save ghcr.io/jina-ai/jina-on-prem/jina-embeddings-v5-text-nano:cpu \
| gzip > jina-v5-nano.tar.gz
# Transfer jina-v5-nano.tar.gz to the air-gapped host (SCP, USB, ...), then on the host:
docker load < jina-v5-nano.tar.gzThe repo ships scripts/pull-prebuilt.sh which does steps 1-3 in one command:
./scripts/pull-prebuilt.sh jina-embeddings-v5-text-nano cpudocker run -d --name jina-nano -p 8080:8080 \
ghcr.io/jina-ai/jina-on-prem/jina-embeddings-v5-text-nano:cpu
docker logs -f jina-nano # watch for "Uvicorn running on http://0.0.0.0:8080"For GPU: add --gpus all and use the :gpu tag.
curl http://localhost:8080/health{"status":"ok","model":"jinaai/jina-embeddings-v5-text-nano","device":"cpu","ready":true,"multimodal":false,"schemas":["openai","voyage","gemini","cohere"]}First embedding:
curl -s http://localhost:8080/v1/embeddings \
-H 'Content-Type: application/json' \
-d '{"input":["Hello world"]}' \
| jq '.data[0].embedding | length'
# 768If both calls succeed, you're live. The same container also speaks Cohere, Gemini, and Voyage protocols - see API Reference for examples.
flowchart TB
OK[Working /v1/embeddings] --> A[Wire into your app
OpenAI SDK with base_url=...]
OK --> B[Hook up Elasticsearch
inference service]
OK --> C[Try a bigger model
v5-text-small or v5-omni]
OK --> D[Add a reranker
jina-reranker-v3]
OK --> E[Bundle your own
Bundling Guide]
- Customer Scenarios - end-to-end deployment patterns
- API Reference - all four schemas, multimodal, ES integration
- Picking a Model - decision tree for the other 27 models
- Bundling Guide - build your own bundle for models not in the prebuilt list
The three errors that catch most first-time users:
-
permission denied while trying to connect to the docker API-> you're not in thedockergroup. Fix. -
Error response from daemon: error from registry: unauthorized-> not logged into GHCR. Run step 1. -
bind: address already in use-> something's on port 8080. Map a different port:-p 9090:8080.
Full list: Troubleshooting.
Repo - Issues - Releases - Commercial license
Documentation source lives in docs/; edit there via PR and run ./scripts/sync-wiki.sh to mirror to the wiki.