Ведется разработка многоплатформенного сервиса в виде облегченного исполняемого модуля flibgolite
По результатам разработки и тестирования flibgolite будет сделано обновление flibgo
flibgo это OPDS-сервер для домашней библиотеки
OPDS (англ. Open Publication Distribution System) — электронный формат каталога веб-синдикации, основанный на Atom и HTTP. OPDS-каталоги позволяют читать, сортировать и распространять электронные издания. (ВикипедиЯ)
В настоящем релизе flibgo работа только с публикациями в формате FB2, как с отдельными файлами, так и с zip-архивами
OPDS-каталог проверен и работает с мобильными читалками FBReader и PocketBook Reader
-
Подготовка к установке
flibgo написан на языке GO и для хранения каталога использует СУБД MySQL, поэтому для упрощения установки и настройки рекомендую запускать flibgo в контейнерах Docker.
Порядок установки Docker Desktop для Windows, MacOS и Linux описан https://www.docker.com/products/docker-desktop
-
Настройка
Скопируйте zip-архив с flibgo https://github.com/vinser/flibgo/archive/refs/heads/master.zip или загрузите flibgo с помощью
git clone https://github.com/vinser/flibgo.git
, если у вас установлен gitВ файле
docker-compose.yml
укажите папку, например, "books", в котором будут храниться и обрабатываться файлы FB2 и zip-архивы с файламиВ папке будут созданы три подпапки:
books
├─── stock - сюда помещаем новые файлы FB2 и/или zip-архивы с файлами FB2
└─── trash - сюда попадут файлы, при обработке которых были ошибки
-
Запуск и остановка
Находясь в папке с файлом docker-compose.yml, запустите flibgo командой
docker-compose up -d
flibgo будет раз в минуту каталогизировать новые книги и предоставит доступ к OPDS-каталогу по URL
http://<ip или имя вашего компьютера>:8085/opds
Остановка сервера производится командой
docker-compose down
Пересоздать каталог по уже обработанным файлам поможет команда docker-compose exec app go run /flibgo/cmd/flibgo/main.go -reindex
Дополнительные настройки сотреть в confif/config.yml
Там все очевидно ;)
Критика и предложения приветствуются, но прошу не пинать, сервер пишется в свободное время