pyShelf

A simple terminal based ebook server

Stars
522
Forks
32
Open issues
11
Closed issues
12
Last commit
about 2 years ago
Watchers
522
Total releases
0
Total commits
577
Open PRs
0
Closed PRs
53
Repo URL
Platform
License
gpl-3.0
Category
Usecase
Offers premium version?
NO
Proprietary?
NO
About

pyShelf 0.7.0

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.

You dont need an X server to host a website, or your Movie & Tv collection, so why should you need one to host ebooks?

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 @

Discord

General Notes

You may need to click import books a second time if your import fails on the first attempt

0.7.0 Patch Notes. New Features

  • Administration System
  • PDF Support

Current Features

  • Recursive Scanning
  • Django based frontend
  • Seach via author, title, & file name fields.
  • Download System
  • Automated Collections
    • A work in progress, the collections are based on your folder structure.

  • User System
  • Per User Favorites
  • Expanded book information view
  • Websocket server

    • currently only responds to ping, and importBooks, more responders are planned.

  • Full Docker integration.
  • On Demand Importing

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.

Currently Supported Formats

  • epub
  • mobi
  • pdf

Installation & Support Information Installation Docker

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 #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
Self Hosted

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

Pre-req Dependencies

  • gcc
  • python3
  • pip
  • postgresql

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.

Import Books

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.

In Progress Organizational tools.

  • Automated Collections
  • Manual Collections
  • Books Removal
  • Access Restrictions
  • Metadata Manipulation
  • Ui\Ux Improvements
  • Others?

Improved cover image storage, and acquisition. OPDS Support Support for other formats

  • .mobi
  • .pdf
  • .cbz
  • .zip (Zipped book folders, is this a new idea? (Consider storing your library folders zipped and retrieving a book on demand))

Future Goals Terminal Backend for catalogue maintenance Development

  • pre-commit Before developing, run pre-commit install See the documentation for more information.
  • 'Doxygen' Any changes to source should be documented and have run doxygen doxygen.conf prior to commiting.
  • 'sem-ver' Before advancing version numbers be sure to set PROJECT_NUMBER in doxygen.conf accordingly.
Alternative Projects
No projects found

Subscribe to Open Source Businees Newsletter

Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.

We'll never share your email with anyone else.