GPU: - Switch Dockerfile base to pytorch/pytorch:2.3.1-cuda12.1-cudnn8-runtime - Add gpu_hasher.py: batched 2D DCT on GPU via PyTorch matrix multiply, 256 images/batch, produces imagehash-compatible 64-bit hex hashes, auto-falls back to CPU when CUDA unavailable - Replace per-image phash loop in scanner.py with phasher.hash_files() - docker-compose.yml: add nvidia GPU device reservation Hang fix: - takeout.is_takeout_folder() now caps at 50 directories (was walking entire tree — blocked for minutes on 65k+ file libraries) - Add "Not a Takeout folder" status message so takeout phase is never silent Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
23 lines
527 B
YAML
23 lines
527 B
YAML
services:
|
|
dup-finder:
|
|
build: .
|
|
container_name: dup-finder
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8765:8000"
|
|
volumes:
|
|
# Mount the photo library — READ ONLY, never modified
|
|
- /volume1/photos:/photos:ro
|
|
# Database persistence
|
|
- /volume1/docker/dup-finder/data:/data
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: "4.0"
|
|
memory: 4G
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
count: 1
|
|
capabilities: [gpu]
|