Terminal based ebook server. Open source & Lightweight.
Having used Calibre for hosting my eBook collection in the past, I found myself frustrated having to install X on my server, or manage my library externally, Thus I have decided to spin up my own.
Other solutions require you to have access to an X server to at the very least generate your book database, pyShelf doesnt. We aim to provide a fully featured ebook server with minimal requirements, and no reliance on X whatsoever.
Follow or influence development @
You may need to click import books a second time if your import fails on the first attempt
Branch | Support | Feature set |
---|---|---|
Master | Bugs get priority | Most stable branch, may be behind in the core feature set |
Development | Please report all bugs | Most active branch, this branch is a rolling release, containing the latest features. There will be bugs here hopefully nothing service killing |
Others | Here there be dragons | These branches are used for day to day development, nothing here should be considered stable. |
The official Docker image for pyShelf is pyshelf/pyshelf
. The easiest way to get pyShelf running is through docker-compose
. An example docker-compose.yml is included in the repo.
You'll need a .env
file wich sets the LOCAL_BOOK_DIR
variable, for example:
LOCAL_BOOK_DIR=/home/someone/books
The Docker image is still new, so there could still be some issues and missing features. Feel free to create a bug-issue when you encounter a bug. Development of the Docker image is discussed in https://github.com/th3r00t/pyShelf/pull/53 . Currently the database needs to be PostgreSQL with the account details shown in the example docker-compose.yml
.
Default User/Pass for web interface: pyshelf/pyshelf
This is targeted towards Network Administrators, and home enthusiasts whom I assume will know how to setup a Django app, and a PostgreSQL server. For those unfamiliar with the required setup please use the included docker-compose.yml
Once your database is ready very little is required to get the system up and running:
From the main directory
pip install -r requirements.txt
./configure
cd src/ && daphne frontend.asgi:application
add -b 0.0.0.0 -p 8000 as required to specify which interface\'s and port to bind too
As of 0.6.0 Django is being served up via Daphne, and the static files are served up via whitenoise.
The first step is to login, after logging in the button whill show your username, click on it once again, and a new menu will pop up with the option to logout, or import books.
pre-commit
Before developing, run pre-commit install
See the documentation for more information.