Metadata-Version: 2.4
Name: shelfie-py
Version: 0.1.0
Summary: Self-hosted local library manager for PDFs and EPUBs
License: GPL-2.0-only
License-File: LICENSE
Keywords: books,epub,library,pdf,reading-tracker
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
Requires-Python: >=3.11
Requires-Dist: aiofiles>=23.2.1
Requires-Dist: ebooklib>=0.18
Requires-Dist: fastapi>=0.111.0
Requires-Dist: html5lib>=1.1
Requires-Dist: jinja2>=3.1.4
Requires-Dist: lxml>=5.2.2
Requires-Dist: pillow>=10.3.0
Requires-Dist: pymupdf>=1.24.5
Requires-Dist: python-multipart>=0.0.9
Requires-Dist: sqlalchemy>=2.0.30
Requires-Dist: sqlmodel>=0.0.19
Requires-Dist: uvicorn[standard]>=0.30.1
Requires-Dist: watchdog>=4.0.1
Provides-Extra: dev
Requires-Dist: httpx>=0.27; extra == 'dev'
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Description-Content-Type: text/markdown

# Shelfie - Local Library Manager
---
[![PyPI version](https://img.shields.io/pypi/v/shelfie-py.svg)](https://pypi.org/project/shelfie-py/)
**Shelfie** is a fast, self-hosted web application for managing your personal library of PDFs and EPUBs.
Designed with simplicity in mind, Shelfie automatically watches your book folder for new files, generates covers, and provides a clean, responsive web interface to browse and search your collection.

## Screenshots
---
![SHELFIE](docs/shelfie_webUI_1.png)
![SHELFIE](docs/shelfie_webUI_2.png)

## Installation
---
### Pip
The stable releases of _shelfie_ are distributed on [PyPI](https://pypi.org/) and can be easily installed or upgraded using [pip](https://pip.pypa.io/en/stable/):
```
pip install shelfie-py
shelfie
```
### Docker
```
git clone https://github.com/mhmdsamer-dev/shelfie.git
cd shelfie/
docker build -t shelfie .
BOOKS_DIR=REPLACE/YOUR/BOOK/PATH docker compose up -d
```

Pulling image from [Docker Hub](https://hub.docker.com/r/mhmdsamerdev/shelfie):
```
docker run -d -p 8000:8000 -e LIBRARY_PATH=/books -v shelfie_data:/data -v "D:\Your\Books\Folder":/books:ro mhmdsamerdev/shelfie
```

## CLI options
---
```
shelfie [--host HOST] [--port PORT] [--reload] [--log-level LEVEL]
  --host       Bind address (default: 127.0.0.1)
  --port       Port number  (default: 8000)
  --reload     Auto-reload on code changes (development)
  --log-level  debug | info | warning | error  (default: info)
```

All user data is stored under `SHELFIE_DATA_DIR` (default `~/.shelfie`)

## 🤝 Contributing
---
Please open an issue first to discuss what you would like to change.