/epub-press

📚 Web service for creating ebooks from collections of websites.

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

epub-press

CircleCI

Backend server for EpubPress.

For clients, see epub-press-clients.

Setup

git clone https://github.com/haroldtreen/epub-press
cd epub-press
npm install

Usage

Docker Setup

  1. Install Docker
  2. docker-compose up

You'll also want to run database migrations if it's your first time running the service:

npx sequelize-cli db:migrate

EpubPress will be running at http://localhost:3000.

Development Setup

  1. Install Docker
  2. docker-compose up postgres
  3. npm start

You'll also want to run database migrations if it's your first time running the service:

npx sequelize-cli db:migrate

EpubPress will be running at http://localhost:3000 and reload upon file changes.

To build a version of EpubPress that talks to a local server, see epub-press-chrome.

Tests

npm run test:integration   # Test API + full article extraction
npm run test:models        # Test models
npm run test:unit          # Test regular JS
npm run test               # Test all of the above

Changes should be accompanied by tests. All tests located in /tests.

API

Description Endpoint
Create a book POST /api/v1/books
Check the status of an in progress book GET /api/v1/books/:id/status
Download an ebook as a file GET /api/v1/books/:id/download
Send the ebook to an email GET /api/v1/books/:id/email
Check versions compatible with the server GET /api/v1/version