bookshelf

command module
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 24, 2023 License: GPL-3.0 Imports: 1 Imported by: 0

README

Bookshelf

Bookshelf is a lightweight epub online catalog.

It exposes your ebook collection as a webview and OPDS catalog.

How to install

Assuming you have go installed, simply run:

go install gitlab.com/greizgh/bookshelf@latest

The binary should be available in $(go env GOPATH)/bin

How to compile

go build .

How to use

Assuming your epub collection is in /var/lib/ebooks:

1. Index your collection
bookshelf index /var/lib/ebooks

The index database and media (covers and thumbnails) are stored in XDG compliant directory. This is usually .local/share/bookshelf on linux. You can alter that behavior by setting the XDG_DATA_HOME environment variable:

XDG_DATA_HOME=/var/lib/other bookshelf index /var/lib/ebooks
2. Serve the index
bookshelf serve -b 127.0.0.1 -p 8080

This will serve the web UI on http://127.0.0.1:8080

The root OPDS feed is available at http://127.0.0.1:8080/opds

You can also use a search feed, for instance with koreader, you can set the search OPDS URL: http://<host:port>/opds/search.xml?term=%s

Non-goals

  • TLS handling: rely on your favorite reverse proxy
  • Authentication
  • Collection management: use a tool like calibre

Also noteworthy:

  • currently only epub format is supported

License

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

Full license

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package cover handles book cover storage All covers are stored as PNG, with names derived from book ID
Package cover handles book cover storage All covers are stored as PNG, with names derived from book ID
Package indexer holds the logic for ebook indexation
Package indexer holds the logic for ebook indexation
Package opds provides structures to represent valid OPDS feeds According to https://specs.opds.io/opds-1.2
Package opds provides structures to represent valid OPDS feeds According to https://specs.opds.io/opds-1.2
Package server is responsible for exposing the collection over the web.
Package server is responsible for exposing the collection over the web.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL