Редактирование README
This commit is contained in:
145
README.md
145
README.md
@@ -1,3 +1,144 @@
|
|||||||
# inpx-web
|
inpx-web
|
||||||
|
========
|
||||||
|
|
||||||
Веб-сервер для поиска по inpx-коллекции.
|
Веб-сервер для поиска по .inpx-коллекции.
|
||||||
|
Выглядит это так: https://lib.omnireader.ru
|
||||||
|
|
||||||
|
.inpx - индексный файл для импорта\экспорта информации из базы данных сетевых библиотек
|
||||||
|
в базу каталогизатора [MyHomeLib](https://alex80.github.io/mhl/)
|
||||||
|
или [freeLib](http://sourceforge.net/projects/freelibdesign)
|
||||||
|
или [LightLib](https://lightlib.azurewebsites.net)
|
||||||
|
|
||||||
|
Просто поместите приложение `inpx-web` в папку с .inpx-файлом и файлами библиотеки (zip-архивами) и запустите.
|
||||||
|
Сервер будет доступен по адресу http://127.0.0.1:12380
|
||||||
|
|
||||||
|
После открытия веб-приложения в бразуере, для быстрого понимания того, как работает поиск, воспользуйтесь памяткой (кнопка со знаком вопроса).
|
||||||
|
|
||||||
|
##
|
||||||
|
* [Возможности программы](#capabilities)
|
||||||
|
* [Использование](#usage)
|
||||||
|
* [Параметры командной строки](#cli)
|
||||||
|
* [Конфигурация](#config)
|
||||||
|
* [Удаленная библиотека](#remotelib)
|
||||||
|
* Настройка https с помощью nginx
|
||||||
|
* Сборка проекта
|
||||||
|
* Разработка
|
||||||
|
|
||||||
|
<a name="capabilities" />
|
||||||
|
|
||||||
|
## Возможности программы
|
||||||
|
- поиск по автору, серии, названию и пр.
|
||||||
|
- скачивание книги, копирование ссылки или открытие в читалке
|
||||||
|
- возможность указать рабочий каталог при запуске, а также расположение .inpx и файлов библиотеки
|
||||||
|
- ограничение доступа по паролю
|
||||||
|
- работа в режиме "удаленная библиотека"
|
||||||
|
- фильтр авторов и книг при создании поисковой БД для создания своей коллекции "на лету"
|
||||||
|
- подхват изменений .inpx-файла (периодическая проверка), автоматическое пересоздание поисковой БД
|
||||||
|
- мощная оптимизация, хорошая скорость поиска
|
||||||
|
- релизы под Linux и Windows
|
||||||
|
|
||||||
|
<a name="#usage" />
|
||||||
|
|
||||||
|
## Использование
|
||||||
|
Поместите приложение `inpx-web` в папку с .inpx-файлом и файлами библиотеки и запустите.
|
||||||
|
По умолчанию сервер будет доступен по адресу http://127.0.0.1:12380
|
||||||
|
|
||||||
|
<a name="#cli" />
|
||||||
|
|
||||||
|
### Параметры командной строки
|
||||||
|
Запустите `inpx-web --help`, чтобы увидеть список опций:
|
||||||
|
```console
|
||||||
|
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 Принудительно пересоздать поисковую БД при запуске приложения
|
||||||
|
```
|
||||||
|
|
||||||
|
<a name="#config" />
|
||||||
|
|
||||||
|
### Конфигурация
|
||||||
|
При первом запуске в рабочей директории будет создан конфигурационный файл `config.json`:
|
||||||
|
```js
|
||||||
|
{
|
||||||
|
// пароль для ограничения доступа к веб-интерфейсу сервера
|
||||||
|
"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`.
|
||||||
|
|
||||||
|
<a name="#remotelib" />
|
||||||
|
|
||||||
|
### Удаленная библиотека
|
||||||
|
|
||||||
|
В случае, когда необходимо физически разнести веб-интерфейс и библиотеку файлов на разные машины,
|
||||||
|
приложение может работать в режиме клиент-сервер: веб-интерфейс, поисковый движок и поисковая БД на одной машине (клиент),
|
||||||
|
а библиотека книг и .inpx-файл на другой (сервер).
|
||||||
|
|
||||||
|
Для этого необходимо развернуть два приложения, первое из которых будет клиентом для второго.
|
||||||
|
|
||||||
|
На сервере правим `config.json`:
|
||||||
|
```
|
||||||
|
"accessPassword": "123456",
|
||||||
|
"allowRemoteLib": true,
|
||||||
|
```
|
||||||
|
|
||||||
|
На клиенте:
|
||||||
|
```
|
||||||
|
"remoteLib": {
|
||||||
|
"accessPassword": "123456",
|
||||||
|
"url": "ws://server.host:12380"
|
||||||
|
},
|
||||||
|
```
|
||||||
|
|
||||||
|
Если сервер работает по протоколу `http://`, то указываем протокол `ws://`, а для `https://` соответственно `wss://`.
|
||||||
|
Пароль не обязателен, но необходим в случае, если сервер тоже "смотрит" в интернет, для ограничения доступа к его веб-интерфесу.
|
||||||
|
При указании `"remoteLib": {...}` настройки командной строки --inpx и --lib-dir игнорируются,
|
||||||
|
т.к. файлы .inpx-индекса и библиотеки используются удаленно.
|
||||||
|
|||||||
Reference in New Issue
Block a user