Тайлбар байхгүй

Book Pauk d6ee223414 Редактирование README 2 жил өмнө
build ff26b5999d Добавил очистку publicDir 2 жил өмнө
client f519bf3f67 Добавлено пояснение в случае неуспешного копирования ссылки 2 жил өмнө
server 319d8e7fdf Мелкий рефакторинг 2 жил өмнө
.babelrc 5739fef2b7 Начальный коммит 2 жил өмнө
.eslintrc 5739fef2b7 Начальный коммит 2 жил өмнө
.gitignore 248781315a Поправки .gitignore 2 жил өмнө
LICENSE.md 5739fef2b7 Начальный коммит 2 жил өмнө
README.md d6ee223414 Редактирование README 2 жил өмнө
makefile 5739fef2b7 Начальный коммит 2 жил өмнө
nodemon.json 5739fef2b7 Начальный коммит 2 жил өмнө
package-lock.json 4ddabd1ca9 1.0.2 2 жил өмнө
package.json 4ddabd1ca9 1.0.2 2 жил өмнө

README.md

inpx-web

Веб-сервер для поиска по .inpx-коллекции. Выглядит это так: https://lib.omnireader.ru

.inpx - индексный файл для импорта\экспорта информации из базы данных сетевых библиотек в базу каталогизатора MyHomeLib или freeLib или LightLib

Просто поместите приложение inpx-web в папку с .inpx-файлом и файлами библиотеки (zip-архивами) и запустите. Сервер будет доступен по адресу http://127.0.0.1:12380

После открытия веб-приложения в бразуере, для быстрого понимания того, как работает поиск, воспользуйтесь памяткой (кнопка со знаком вопроса).

##

Возможности программы

  • поиск по автору, серии, названию и пр.
  • скачивание книги, копирование ссылки или открытие в читалке
  • возможность указать рабочий каталог при запуске, а также расположение .inpx и файлов библиотеки
  • ограничение доступа по паролю
  • работа в режиме "удаленная библиотека"
  • фильтр авторов и книг при создании поисковой БД для создания своей коллекции "на лету"
  • подхват изменений .inpx-файла (периодическая проверка), автоматическое пересоздание поисковой БД
  • мощная оптимизация, хорошая скорость поиска
  • релизы под Linux и Windows

Использование

Поместите приложение inpx-web в папку с .inpx-файлом и файлами библиотеки и запустите. По умолчанию сервер будет доступен по адресу http://127.0.0.1:12380

Параметры командной строки

Запустите inpx-web --help, чтобы увидеть список опций:

Usage: inpx-web [options]

Options:
  --help              Показать опции командной строки
  --host=<ip>         Задать имя хоста для веб сервера, по умолчанию: 0.0.0.0
  --port=<port>       Задать порт для веб сервера, по умолчанию: 12380
  --app-dir=<dirpath> Задать рабочую директорию, по умолчанию: <execDir>/.inpx-web
  --lib-dir=<dirpath> Задать директорию библиотеки (с zip-архивами), по умолчанию: там же, где лежит файл приложения
  --inpx=<filepath>   Задать путь к файлу .inpx, по умолчанию: тот, что найдется в директории библиотеки
  --recreate          Принудительно пересоздать поисковую БД при запуске приложения

Конфигурация

При первом запуске в рабочей директории будет создан конфигурационный файл config.json:

{
    // пароль для ограничения доступа к веб-интерфейсу сервера
    "accessPassword": "",

    // содержимое кнопки-ссылки (читать), если не задано - кнопка (читать) не показывается
    // пример: "https://omnireader.ru/#/reader?url=${DOWNLOAD_LINK}"
    // на место ${DOWNLOAD_LINK} будет подставлена ссылка на скачивание файла книги
    "bookReadLink": "",

    // включить(true)/выключить(false) журналирование
    "loggingEnabled": true,

    // максимальный размер в байтах директории закешированных файлов в <раб.дир>/public/files
    // чистка каждый час
    "maxFilesDirSize": 1073741824,
    
    // включить(true)/выключить(false) кеширование запросов на сервере
    "queryCacheEnabled": true,

    // периодичность чистки кеша запросов на сервере, в минутах
    "cacheCleanInterval": 60,

    // периодичность проверки изменений .inpx-файла
    // если файл изменился, поисковая БД будет автоматически пересоздана
    "inpxCheckInterval": 60,

    // включить(true)/выключить(false) режим работы с малым количеством физической памяти на машине
    // при включении этого режима, количество требуемой для создания БД памяти снижается примерно в 1.5-2 раза
    // во столько же раз увеличивается время создания
    "lowMemoryMode": false,

    // включить(true)/выключить(false) режим "Удаленная библиотека" (сервер)
    "allowRemoteLib": false,

    // включить(Object)/выключить(false) режим "Удаленная библиотека" (клиент)
    // подробнее см. раздел "Удаленная библиотека" ниже
    "remoteLib": false,

    // настройки веб-сервера
    "server": {
        "host": "0.0.0.0",
        "port": "12380"
    }
}

При необходимости, можно настроить нужный параметр в этом файле вручную. Параметры командной строки имеют больший приоритет, чем настройки из config.json.

Удаленная библиотека

В случае, когда необходимо физически разнести веб-интерфейс и библиотеку файлов на разные машины, приложение может работать в режиме клиент-сервер: веб-интерфейс, поисковый движок и поисковая БД на одной машине (клиент), а библиотека книг и .inpx-файл на другой (сервер).

Для этого необходимо развернуть два приложения, первое из которых будет клиентом для второго.

На сервере правим config.json:

    "accessPassword": "123456",
    "allowRemoteLib": true,

На клиенте:

    "remoteLib": {
    	"accessPassword": "123456",
        "url": "ws://server.host:12380"
    },

Если сервер работает по протоколу http://, то указываем протокол ws://, а для https:// соответственно wss://. Пароль не обязателен, но необходим в случае, если сервер тоже "смотрит" в интернет, для ограничения доступа к его веб-интерфесу. При указании "remoteLib": {...} настройки командной строки --inpx и --lib-dir игнорируются, т.к. файлы .inpx-индекса и библиотеки используются удаленно.