Calibre web frontend, Node JS
Go to file
2015-01-18 10:32:55 +01:00
bin configure bind address 2014-06-24 20:25:21 +02:00
config better handling of book details, use custom columns 2014-09-03 19:40:12 +02:00
locales Display book details (publisher) 2014-09-02 20:07:44 +02:00
public add link to calibre in footer 2014-07-02 18:48:14 +02:00
routes better handling of book details, use custom columns 2014-09-03 19:40:12 +02:00
util refactoring initial 2014-06-28 08:44:52 +02:00
views Merge branch 'master' of github.com:meutel/bouquins 2014-10-29 19:23:54 +01:00
.gitignore ignore local link to calibre db 2015-01-18 10:32:55 +01:00
bouquins.js better handling of book details, use custom columns 2014-09-03 19:40:12 +02:00
LICENSE rename license file 2014-06-29 20:22:18 +02:00
package.json update package.json: version, description 2014-07-08 10:33:44 +02:00
README.md add screenshots 2014-06-30 20:19:24 +02:00
sample.config.json sample configuration file 2014-09-03 19:39:55 +02:00

bouquins

Web frontend for calibre e-book manager. BSD License.

Features

Bouquins is a node.js application using the express framework. The web UI uses bootstrap and jQuery.

It allows to browse, search and download e-bboks from a calibre library using a web browser (desktop/mobile).

It needs a local access to all files in the calibre library (including the sqlite database file: metadata.db). Synchronisation of those files on the server is not part of the application (personnaly I use owncloud).

bouquins is available in french and english.

Screenshots

Usage

development

  • Install node.js and npm with your usual system tools.
  • Extract bouquins in a web accessible directory.
  • Install depenencies by running:
npm install

in bouquins directory.

  • Create a symlink public/calibre pointing to calibre library
  • Check path to calibre files and database in config/development.json.
  • Start application:
npm start

production

As a node.js application, bouquins is best run behind a web server such as nginx. nginx act as a proxy for node.js and serves static files (/public and /calibre).

In production, config file is not config/development.json but depends on the NODE_ENV environment variable, for example, if NODE_ENV=production, file is config/production.json. The public/calibre symlink is not needed, but the webserver must server /calibre.

You will also need to run node as a dameon, I use daemontools on a FreeBD host. There are other solutions, such as https://github.com/indexzero/forever

API

TODO

Rest/JSON API:

Lists

  • /book
  • /serie
  • /author

Parameters: perpage, page, initial

Single item

  • /book/{id}
  • /serie/{id}
  • /author/{id}

Search

  • POST /book

Parmeters: q (search term), perpage, page, initial

TODO

  • OPDS
  • sqlite COLLATE
  • handle ebook formats (currently epub only)
  • book details
  • calibre custom fields