/flibusta

Фронтенд для архивов Флибусты

Primary LanguageJavaScriptGNU General Public License v2.0GPL-2.0

Docker-контейнер для локальной копии Флибусты.

Отображение книг, поиск по заголовкам, сборникам, авторам, жанрам. Открываются в браузере форматы fb2, docx, rtf, mobi, epub, txt, html. Для fb2 сохраняется позиция чтения.

Возможность создания "книжных полок" для избранных книг, авторов и сборников.

Встроенный сервис OPDS для читалок.

x x x x

Установка:

  1. Установить сервисы docker для вашего сервера.
  2. Разместить файлы проекта в каталог на сервере.
  3. Для выполнения обновления необходимо разместить фалы дампа Флибусты (*.sql) в каталог FlibustaSQL.
  4. Файлы архивов Флибусты (*.zip) необходимо размещать в каталоге Flibusta.Net.
  5. Выполнить docker-compose build
  6. Выполнить docker-compose up -d
  7. Локальный портал будет доступен на порту 27100. Доступен также OPDS каталог: /opds/
  8. Выполнить "Обновление базы" через пункт меню "Сервис"

Каталоги FlibustaSQL, cache и их подкаталоги должны иметь права на запись для контейнера. Скрипты в каталоге /application/tools/ должны иметь права на выполнение.

Для обновления базы с новыми файлами выполнить пункты 3, 4, 5, 9

Переменные окружения для docker-compose (docker-compose environmnet variables):

Параметры базы данных можно определить в docker-compose.yml.

Образ может использовать следующие переменные окружения

  1. FLIBUSTA_DBUSER user базы данных. По умолчанию (если переменная не определена в файле) flibusta
  2. FLUBUSTA_DBNAME имя схемы ( инстанса) базы данных. По умолчанию (если переменная не определена в файле) flibusta
  3. FLIBUSTA_DBTYPE тип базы данных. В текущей версии поддерживается только postgres
  4. FLIBUSTA_DBHOST имя хоста на которой установлена база данных. В докере по умолчанию совпадает с именем сервиса определяющего базу данных. По умолчанию postgres
  5. FLIBUSTA_DBPASSWORD пароль user базы данных. См. обсуждение в следующем абзаце. По умолчанию flibusta

Best practices docker compose не рекомендуют хранить пароль в переменной ( и тем более не рекомендуется задавать пароль в коде). Для хранения паролей в есть механизм secrets. Можно создать текстовой файл содержащий единственную строчку с паролем и указать полный путь к нему в глобальном разделе secrets. Обратите внимание на premissions файла - он должен быть доступен для чтения для php из образа, в идеале только ему. Юзер под которым бежит php-fpm в pool www-data ( user id 82). Это стандартный user из официального образа. Возможно он не существует на вашей системе. Можно дать числовой uid файлу если нет желания или возможности создать user. достаточно выполнить sudo chown 82 /.path/to/file