- PDF reader: page-image rendering via /library/pdf/{filename}?page=N;
new /api/pdf/info/{filename} endpoint returns page count; reader.html
branches on FORMAT (epub/pdf) injected by server
- PDF metadata edit: PATCH /library/book now updates DB for all formats;
_sync_epub_metadata only called for .epub; non-EPUB formats skip file write
- Fix file path on metadata save: _make_rel_path now includes format prefix
(epub/, pdf/, comics/) matching common.make_rel_path used during import;
previously files were moved outside their format directory
- Fix empty dir cleanup: prune_empty_dirs always runs after successful
metadata save, not only when file was moved
- Hide Edit EPUB button for non-EPUB files in book detail
- Docs: TECHNICAL.md and changelog-develop.md updated
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
||
|---|---|---|
| containers/novela | ||
| docs | ||
| stack | ||
| .gitignore | ||
| build-and-push.sh | ||
| README.md | ||
Novela
Novela is a self-hosted web application for managing and reading a personal digital library. It supports EPUB, PDF, and CBR/CBZ, with metadata editing, reading progress tracking, and Dropbox backups.
What Novela Provides
- Library import and indexing for EPUB/PDF/CBR/CBZ
- Home dashboard with continue reading and unread/read sections
- Reader support for EPUB, PDF, and comics (CBR/CBZ)
- Metadata editing (title, author, publisher, series, volume, tags, genres)
Newreview workflow with list/grid view, column toggles, and bulk actions- Reading analytics/statistics dashboard
- Dropbox backup with:
- versioned snapshots
- object deduplication
- retention policy
- scheduled background runs
Tech Stack
- FastAPI
- Jinja2 templates + vanilla JavaScript
- PostgreSQL 16
- Docker / Docker Compose style deployment
Repository Layout
containers/novela/- application code (routers, templates, static assets, migrations)stack/- deployment stack files and environment configurationdocs/- technical status and changelog documentationbuild-and-push.sh- helper script for container build/push
Quick Start (Development)
- Configure environment values in
stack/novela.env. - Start the stack using your preferred Docker workflow (Compose/Portainer stack).
- Open the app and complete backup credential setup on
/backupif needed.
Key Environment Variables
POSTGRES_DBPOSTGRES_USERPOSTGRES_PASSWORDNOVELA_MASTER_KEYCONFIG_DIRLIBRARY_DIR(optional override)
Documentation
- Technical status:
docs/TECHNICAL.md - Develop changelog:
docs/changelog-develop.md
Disclaimer
This project was developed entirely with AI-assisted implementation workflows. Use it at your own discretion and responsibility, and validate behavior, security, and data handling for your environment before production use.
Status
This repository is actively evolving. The develop documentation reflects implemented behavior in the current codebase.