node package manager



Webserver for own ebook content: comics and epubs (cbr,cbz,cb7,epub).

This tool serves ebooks of a given directory (and sub directories). Depending on the bookExtensions option one can show comics, ebooks or something else. If for a book file (abc.cbr) a thumb file exists (abc.jpg), the thumb will be displayed instead of the name.

In the browser: all books are displayed in a thumb view. This view is optimized for a large number of books. With help of a simple text input one can filter the list of the books.


At the moment I'm working on a new version based on Google Polymer. You can find it here: poly-ebook-server.

Getting started


This tool doesn't generate thumbs of your ebook. If you want to do this, you can use ebook-cover-generator. On Mac OS X I recommend this tool: cover-generator-by-quicklook.

Usage (script)

var server = require('home-ebook-server'); 


Example: simple call

  "use strict";
  var server = require('home-ebook-server');
  var options = {
    baseDir: '/Volumes/data/ebooks/comics/_deu',
    bookExtensions: ['.cbz', '.cbr'],
    port: 3001,
    title: 'comics',
    thumbsDims : [
      {width: 83, height: 150},
      {width: 196, height: 300},
      {width: 329, height: 450},
      {width: 392, height: 600}
    dimIndex : 1,
    initialFilter: ''

Second Example:

var server = require('home-ebook-server');
  var options = {
  port: 3000,
  baseDir: '/Users/marc/ebooks/Romane',
  bookExtensions: ['.epub'],
  trashDir: '/Users/marc/ebooks/trash',
  deletable: false,
  copyDir : '/Volumes/KOBOeReader', // tested with Kobo Aura H2O. Reader must be connected via USB. 
  tmpDir: '/Volumes/ramdisk/tmp',
  sendOptions: {
    sendattachment: {
      title: 'Send book',
      transport : 'smtps://',
      from: '',    // sender address 
      to: '',      // list of receivers 
      subject: 'home ebook server' // Subject line 
    sendlink: {
      title: '@getpocket',
      transport : 'smtps://',
      from: '',   // sender address 
      to: '', // list of receivers 
      subject: 'filename'      // Subject line 
  }, // null -> send buttons are hidden 
  title: 'ebooks',
  thumbsDims : [
    {width: 105, height: 150},
    {width: 210, height: 300},
    {width: 315, height: 450},
    {width: 420, height: 600}
  dimIndex : 1,
  initialFilter: '-categories krimi'