Files
winnow/docs/setup.md
T
flanandClaude Sonnet 4.6 e4d5f603d8 docs: remove TrueNAS references, make volume paths platform agnostic
- compose.yml: generic /path/to/winnow/... placeholder paths
- docs/setup.md: replace TrueNAS section with generic GPU passthrough guide
- docs/faq.md: remove platform-specific path example
- README.md: soften crop quality disclaimer, remove TrueNAS compose note
- CHANGELOG.md: scrub TrueNAS mentions from release notes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 02:13:29 +00:00

96 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Setup Guide
## Prerequisites
- [Immich](https://immich.app) v1.106+ with face recognition enabled and people tagged
- [Frigate](https://frigate.video) v0.16+ (face mode only)
- Docker with the NVIDIA container toolkit (optional but strongly recommended)
---
## 1. Get your Immich API key
1. Open Immich → **Account Settings** → **API Keys**
2. Click **New API Key**, give it a name (e.g. `winnow`), copy the key
---
## 2. Get your Frigate URL
This is the base URL of your Frigate instance, e.g. `http://192.168.1.10:5000`. Only needed for face mode — omit it entirely if you're using object mode.
---
## 3. Deploy with Docker Compose
Copy [`compose.yml`](../compose.yml) and [`.env.example`](../.env.example) to a directory on your host:
```bash
mkdir winnow && cd winnow
curl -O https://raw.githubusercontent.com/sudolulo/winnow/main/compose.yml
curl -O https://raw.githubusercontent.com/sudolulo/winnow/main/.env.example
cp .env.example .env
```
Edit `.env` with your values:
```bash
IMMICH_URL=http://192.168.1.10:2283
API_KEY=your-immich-api-key
FRIGATE_URL=http://192.168.1.10:5000
```
Edit the volume paths in `compose.yml` to point to directories on your host where models, cache, and output crops should be stored:
```yaml
volumes:
- /your/path/to/models:/models
- /your/path/to/cache:/app/.if_cache
- /your/path/to/output:/app/frigate_train
```
These directories will be created automatically by Docker if they don't exist.
Start it:
```bash
docker compose up -d
```
Logs:
```bash
docker compose logs -f winnow
```
---
## 4. First run
On the first run, winnow downloads the embedding models (~1–2 GB) from HuggingFace and InsightFace. This happens once — subsequent runs use the cached models from your mounted volume and start immediately.
---
## 5. Scheduling
Set `CRON_SCHEDULE` in your `.env` to keep winnow running on a schedule:
```
CRON_SCHEDULE=0 3 * * 0 # Every Sunday at 3 AM
```
Without `CRON_SCHEDULE`, the container runs once and exits.
---
## GPU passthrough
To enable GPU acceleration, include the `deploy` block in `compose.yml` (already present in the example) and ensure the NVIDIA container toolkit is installed on your host:
```bash
# Verify GPU is accessible to Docker
docker run --rm --gpus all nvidia/cuda:12.9.2-base-ubuntu22.04 nvidia-smi
```
CPU mode works without any GPU setup — set `FORCE_CPU=true` to disable GPU explicitly.