AI-powered bookshelf cataloger. Upload a photo of your bookshelf and it automatically identifies books, fetches metadata from Open Library, and builds a searchable library.
cp .env.example .env
# edit .env — add your OPENAI_API_KEY or set USE_OLLAMA=true
docker compose up --buildOpenAI (recommended): Set OPENAI_API_KEY=sk-... in .env. Uses gpt-4o by default.
Ollama (local/free): Install Ollama, then:
ollama pull llava
# In .env:
USE_OLLAMA=true
OLLAMA_URL=http://host.docker.internal:11434 # if running in Docker| Method | Path | Description |
|---|---|---|
POST |
/api/scan |
Upload image, returns detected books |
GET |
/api/books |
List library (?q= for search) |
DELETE |
/api/books/{id} |
Remove a book |
GET |
/api/export/csv |
Download CSV |
GET |
/api/export/json |
Download JSON |
GET |
/api/health |
Status check |
- SQLite database at
./data/shelfscan.db - Uploaded images saved to
./uploads/ - Both directories are Docker volumes — data persists across restarts
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # edit as needed
export $(cat .env | grep -v '#' | xargs)
uvicorn main:app --reload --port 8000