init commit to create the project

This commit is contained in:
Travis Herbranson 2026-05-22 15:59:45 -04:00
commit e820936727
3 changed files with 66 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.env
*.env.local

26
README.md Normal file
View File

@ -0,0 +1,26 @@
# ollama
Local LLM + embedding runtime for the homelab. CPU-only deployment on
herbydev (no GPU). Reachable as `ollama:11434` from containers on the
shared `homelab` Docker network. Loopback `127.0.0.1:11434` on the host.
## Pulled models
| Model | Purpose | Pulled | Notes |
|-------|---------|--------|-------|
| `nomic-embed-text` | OB1 embedding model | 2026-05-14 | 768-dim, ~137MB; replaced OpenRouter `text-embedding-3-small` (1536-d) |
## Usage
```bash
docker compose -f compose.yml up -d
docker exec ollama ollama list # pulled models
docker exec ollama ollama pull <model> # add a model
curl -s http://127.0.0.1:11434/api/embeddings \
-d '{"model":"nomic-embed-text","prompt":"hello world"}' | jq '.embedding | length'
```
## Consumers
- **ob1-mcp** — embeddings + metadata extraction. Reaches Ollama as
`http://ollama:11434` via the `homelab` network.

38
compose.yml Normal file
View File

@ -0,0 +1,38 @@
# ollama — local LLM/embedding runtime for the homelab.
#
# CPU-only deployment on herbydev. No GPU runtime (no `runtime: nvidia`,
# no `devices:` block). Reachable as `ollama:11434` from any container
# on the shared `homelab` network. Loopback-only on the host (no public
# exposure, no cloudflared route, no Tailscale binding).
#
# Models persist in the named `ollama-models` volume across restarts.
#
# Usage:
# docker compose -f compose.yml up -d
# docker exec ollama ollama pull <model>
# docker exec ollama ollama list
name: ollama
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: unless-stopped
environment:
- OLLAMA_KEEP_ALIVE=${OLLAMA_KEEP_ALIVE}
- OLLAMA_NUM_PARALLEL=${OLLAMA_NUM_PARALLEL}
ports:
- "127.0.0.1:11434:11434" # loopback on host; in-network via Docker DNS
volumes:
- ollama-models:/root/.ollama
networks:
- homelab
# No runtime/devices/gpus — CPU only by design.
volumes:
ollama-models:
networks:
homelab:
external: true