diff options
| author | supahgreg <supahgreg@users.noreply.github.com> | 2025-10-05 19:09:04 +0000 |
|---|---|---|
| committer | supahgreg <supahgreg@users.noreply.github.com> | 2025-10-05 19:09:04 +0000 |
| commit | a00ef6440f98b0ff1052e5cf75b89d8dd3a38330 (patch) | |
| tree | 79d20824e86cafa42075708ab9a76f262f004cb6 /ZeEpube.md | |
| parent | 4591dcb22290576dbf114fff1c3f3b0ca5ffaf8d (diff) | |
Add initial content (with issues).
Diffstat (limited to 'ZeEpube.md')
| -rw-r--r-- | ZeEpube.md | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/ZeEpube.md b/ZeEpube.md new file mode 100644 index 0000000..99d4eeb --- /dev/null +++ b/ZeEpube.md @@ -0,0 +1,129 @@ +--- +title: The Epube +hide: + - navigation +--- + +<style> + .md-typeset h1, + .md-content__button { + display: none; + } +</style> + +# The Epube + +Self-hosted web EPUB reader using [EPUB.js](https://github.com/futurepress/epub.js), Bootstrap, and [Calibre](https://calibre-ebook.com). + +## Screenshots + +### Desktop + +{ width="420", align=left } +{ width="420" } + +### Mobile + +{ width="120", align=left } +{ width="120", align=left } +{ width="120", align=left } +{ width="120", align=left } +{ width="120", align=left } +{ width="120", align=left } + +## Features + +* responsive, offline-capable design; +* integrates with Calibre library; +* can use either SQLite or PostgreSQL for its own database; +* multi-device sync of last-read pages (when online); +* word definition lookups using dictd / Wiktionary; +* supports Chrome homescreen "app mode"; +* optional hyphenation using [hyphen](https://github.com/ytiurin/hyphen) library; +* dark mode, themes, etc; + +## UI cheat sheet + +* Switch pages: Left, Right, space, taps/clicks on left and right sides of the window +* Show UI if it's hidden: escape or tap somewhere in the middle of reader window +* Dictionary lookup: double click/select one word + +## Installation + +Use the following compose setup to either pull or build your own images: + +### .env + +```ini +# Put any local modifications here. + +OWNER_UID=1000 +OWNER_GID=1000 + +# Calibre library base directory (mounts to /books) +BOOKS_DIR=/home/user/calibre/Books + +# Default user to create (if it doesn't exist) +EPUBE_ADMIN_USER=admin +EPUBE_ADMIN_PASS=password + +# APP_WEB_ROOT=/var/www/html/books +# APP_BASE= + +# bind exposed port to 127.0.0.1 by default in case reverse proxy is used. +# if you plan to run the container standalone and need origin port exposed +# use next HTTP_PORT definition (or remove "127.0.0.1:"). +HTTP_PORT=127.0.0.1:8280 +#HTTP_PORT=8280 + +# Optional OAuth +# EPUBE_OIDC_URL= +# EPUBE_OIDC_NAME= +# EPUBE_OIDC_CLIENT_ID= +# EPUBE_OIDC_CLIENT_SECRET= + +# PostgreSQL is optional, default is SQLite +# EPUBE_DB_TYPE=pgsql +# EPUBE_DB_USER=postgres +# EPUBE_DB_PASS=password +# EPUBE_DB_NAME=postgres +``` + +### docker-compose.yml + +```yaml +version: '3' + +services: + # optional dictionary server (add other dictionaries via Dockerfile) + # comment it out if you don't need it + dict: + restart: unless-stopped + image: cthulhoo/the-epube-dict:latest + + app: + image: cthulhoo/the-epube-fpm-static:latest + restart: unless-stopped + volumes: + - app:/var/www/html + - ${BOOKS_DIR}:/books:ro + + web-nginx: + image: cthulhoo/the-epube-web-nginx:latest + restart: unless-stopped + ports: + - ${HTTP_PORT}:8080 + volumes: + - app:/var/www/html:ro + depends_on: + - app + +volumes: + app: +``` + +## FAQ + +### Moving between pages is slow with some books + +This happens sometime on slow devices, i.e. phones. The usual reason is Epub chapters are too large. Those can be split into smaller sections with Calibre epub converter: *EPUB Output -> Split files larger than ->* set a smaller value, 100KB should be fine. |