2020-08-03 13:38:50 -04:00
2020-03-20 01:15:07 -04:00
2020-08-09 10:50:14 -04:00
2020-05-09 15:13:47 -04:00
2020-08-03 18:31:08 -04:00
2020-08-08 10:12:06 -04:00
2020-03-20 01:15:07 -04:00
2020-05-31 01:20:52 -04:00
2020-08-03 13:18:44 -04:00
2020-08-03 18:27:01 -04:00

pyShelf 0.6.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.

https://pyshelf.com

pyShelf 0.6.0 newui

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 solutiions 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 | IRC | Matrix.org

Current Features

  • Recursive Scanning
  • PostgreSql Library
  • Django based frontend
  • Basic seaching via a SearchVector of author, title, & file_name fields.
  • Ebook Downloading
  • Collections
  • User System

Currently Supported Formats

  • epub
  • mobi

0.6.0 Patch Notes.

New Features

  • .mobi Support
  • Result set ordering
    • You can now choose to order your results:
      • Title
      • Author
      • Categories
      • & Tags
  • Reworked UI/UX
    • More intuitive, less intrusive, & stays out of the way. caveat: I need to rework the placement of the next & previous page controls. While they do remain usable, I intend to have them follow the users position on the page in future releases.

pyShelf 0.6.0 navbar

  • New controls
    • Sort
    • Ascending / Descending result set
    • Display of the result set count, and your current position in the set.
    • A pop over layer to hold things like
      • User login & Registration
      • Control panel
      • Book details

Installation & Support Information

Installation

This project 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 see the docker section below.

Pre-req Dependencies

  • gcc
  • python3
  • pip

setup configurations as discussed in SUPPORT.md

Once your environment is ready very little is required to get the system up and running:

From the main directory

pip install -r requirements.txt

cd src

python manage.py makemigrations

python manage.py makemigration interface

python manage.py migrate

python manage.py migrate interface

cd ..

./configure

./importBooks

Browse to the site as defined in your apache | nginx config

Running via the Django test server might be possible, albeit not recomended.

Docker

The official Docker image for pyShelf is pyshelf/pyshelf. The easiest way to get pyShelf running is through docker-compose. Here is an example docker-compose.yml:

version: "3.7"

services:
    db:
        image: "postgres"
        environment:
            - "POSTGRES_PASSWORD=pyshelf"
            - "POSTGRES_USER=pyshelf"
            - "POSTGRES_DB=pyshelf"
        volumes:
            - "pgdata:/var/lib/postgresql/data/"

    pyshelf:
        image: "pyshelf/pyshelf"
        ports: 
            - "8080:8000"
        volumes:
            - "${LOCAL_BOOK_DIR}:/books"
        depends_on:
            - db

volumes:
    pgdata:

You'll also 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 .

In Progress

Organizational tools.

  • Automated Collections
  • Manual Collections
  • Books Removal
  • Access Restrictions
  • Metadata Manipulation
  • 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.
Description
A simple terminal based ebook server
Readme GPL-3.0 124 MiB
Languages
JavaScript 96.1%
HTML 3.9%