All Projects → th3r00t → Pyshelf

th3r00t / Pyshelf

Licence: gpl-3.0
A simple terminal based ebook server

Programming Languages

python3
1442 projects

Projects that are alternatives of or similar to Pyshelf

Blightmud
A terminal mud client written in Rust
Stars: ✭ 61 (-78.29%)
Mutual labels:  terminal-based, hacktoberfest
Stonks
Stonks is a terminal based stock visualizer and tracker that displays realtime stocks in graph format in a terminal. See how fast your stonks will crash.
Stars: ✭ 405 (+44.13%)
Mutual labels:  terminal-based, hacktoberfest
Depends
Tool for generating dependency trees for .NET projects
Stars: ✭ 278 (-1.07%)
Mutual labels:  hacktoberfest
Terminal
Terminal emulator designed for elementary OS
Stars: ✭ 281 (+0%)
Mutual labels:  hacktoberfest
Dita Ot
DITA Open Toolkit — the open-source XML publishing engine for content authored in the Darwin Information Typing Architecture.
Stars: ✭ 279 (-0.71%)
Mutual labels:  hacktoberfest
Repman
Repman - PHP Repository Manager: packagist proxy and host for private packages
Stars: ✭ 277 (-1.42%)
Mutual labels:  hacktoberfest
Openjailbreak
GeoSn0w's OpenJailbreak Project, an open-source iOS 11 to iOS 13 Jailbreak project & vault.
Stars: ✭ 277 (-1.42%)
Mutual labels:  hacktoberfest
Sqlserverdsc
This module contains DSC resources for deployment and configuration of Microsoft SQL Server.
Stars: ✭ 278 (-1.07%)
Mutual labels:  hacktoberfest
Puppet Jenkins
Puppet module for Jenkins
Stars: ✭ 280 (-0.36%)
Mutual labels:  hacktoberfest
Boilerplatejs
Your own boilerplate code to start your next big javascript project. We incorporate the best design practices with best in market open source libraries.
Stars: ✭ 279 (-0.71%)
Mutual labels:  hacktoberfest
Inpainting
Want to remove something(someone) from a photo as it never was there? This is .NET implementation of content-aware fill. It smartly fills in unwanted or missing areas of photographs.
Stars: ✭ 280 (-0.36%)
Mutual labels:  hacktoberfest
Phpdocumentor
Documentation Generator for PHP
Stars: ✭ 3,341 (+1088.97%)
Mutual labels:  hacktoberfest
Bitcoinprivate Legacy
Bitcoin Private is a Bitcoin and Zclassic fork which uses ZK-SNARK technology for privacy and fungibility.
Stars: ✭ 279 (-0.71%)
Mutual labels:  hacktoberfest
Secretz
secretz, minimizing the large attack surface of Travis CI
Stars: ✭ 279 (-0.71%)
Mutual labels:  hacktoberfest
Hiddeneyereborn
HiddenEye with completely new codebase and better features set
Stars: ✭ 274 (-2.49%)
Mutual labels:  hacktoberfest
Securecodebox
secureCodeBox (SCB) - continuous secure delivery out of the box
Stars: ✭ 279 (-0.71%)
Mutual labels:  hacktoberfest
Deno Manual Cn
Deno 中文手册
Stars: ✭ 278 (-1.07%)
Mutual labels:  hacktoberfest
Gqless
a GraphQL client without queries
Stars: ✭ 3,569 (+1170.11%)
Mutual labels:  hacktoberfest
Stronginject
compile time dependency injection for .NET
Stars: ✭ 277 (-1.42%)
Mutual labels:  hacktoberfest
Awesome Jetpack Compose Learning Resources
👓 A continuously updated list of learning Jetpack Compose for Android apps.
Stars: ✭ 275 (-2.14%)
Mutual labels:  hacktoberfest

pyShelf 0.6.1

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

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

0.6.1 Patch Notes.

New Features

  • PDF Format
    • Image & Description acquisition needs work.

0.6.0 Patch Notes.

New Features

  • 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
  • .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
      • [x] User login & Registration
      • [x] Control panel
      • [x] Book details

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

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.

  • [x] Automated Collections
  • [ ] Manual Collections
  • [ ] Books Removal
  • [ ] Access Restrictions
  • [ ] Metadata Manipulation
  • [ ] Others?

Improved cover image storage, and acquisition.

OPDS Support

Support for other formats

  • [x] .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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].