HeadlinesBriefing favicon HeadlinesBriefing.com

Самостоятельная библиотека электронных книг на Cloudflare R2 или Node

Hacker News •
×

GitHub пользователь murerkinn выпустил bookshelf — самостоятельную библиотеку электронных книг, работающую без базы данных. Обеспечивает файлы EPUB и PDF с помощью специализированных браузер-читателей, поиск и функции загрузки. Проект предлагает два пути развертывания: Cloudflare Worker над объектным хранилищем R2, или Node сервер над локальной директорией. Оба настраиваются через `bookshelf.config.json`.

Для начала требуется Node 24+ и система类型 Unix. Самый быстрый путь использует Docker: `mkdir books && cp ~/Downloads/*.epub books/` followed by `docker compose run --rm sync --create` and `docker compose up -d`. Полка станет доступна по адресу `http://localhost:3000`. Объем с именем `library` хранит опубликованные электронные книги, профили и позиции чтения: единственные данные, требующие резервного копирования. Для настроек без Docker пользователи запускают `npm run sync -- --create`, `npm run build` и `npm start -w @bookshelf/app`.

Развертывание на Cloudflare требует учетной записи и `npx wrangler login`. Команды `npm run sync -- --create` и `npm run deploy` создают R2-ный бакет и загружают Worker. Команда `npm run demo` генерирует девять публичных доменных титулов для тестов. Публичные экземпляры автоматически переходят в режим только для чтения: они обслуживают книги и позволяют скачивать, но отказываются от записей, таких как изменения профиля или серверные позиции чтения. Позиции чтения возвращаются в браузерное хранилище. Автор рекомендует развертывать только на доверенных сетях или за средствами контроля доступа, так как любой с доступом может читать и скачивать всю библиотеку.