Редактирование readme
This commit is contained in:
137
README.md
137
README.md
@@ -20,11 +20,12 @@ inpx-web
|
|||||||
* [Параметры командной строки](#cli)
|
* [Параметры командной строки](#cli)
|
||||||
* [Конфигурация](#config)
|
* [Конфигурация](#config)
|
||||||
* [Удаленная библиотека](#remotelib)
|
* [Удаленная библиотека](#remotelib)
|
||||||
* Настройка https с помощью nginx
|
* [Фильтр по аторам и книгам](#filter)
|
||||||
* Сборка проекта
|
* [Настройка https с помощью nginx](#https)
|
||||||
* Разработка
|
* [Сборка проекта](#build)
|
||||||
|
* [Разработка](#development)
|
||||||
|
|
||||||
<a name="capabilities" />
|
<a id="capabilities" />
|
||||||
|
|
||||||
## Возможности программы
|
## Возможности программы
|
||||||
- поиск по автору, серии, названию и пр.
|
- поиск по автору, серии, названию и пр.
|
||||||
@@ -37,13 +38,13 @@ inpx-web
|
|||||||
- мощная оптимизация, хорошая скорость поиска
|
- мощная оптимизация, хорошая скорость поиска
|
||||||
- релизы под Linux и Windows
|
- релизы под Linux и Windows
|
||||||
|
|
||||||
<a name="#usage" />
|
<a id="usage" />
|
||||||
|
|
||||||
## Использование
|
## Использование
|
||||||
Поместите приложение `inpx-web` в папку с .inpx-файлом и файлами библиотеки и запустите.
|
Поместите приложение `inpx-web` в папку с .inpx-файлом и файлами библиотеки и запустите.
|
||||||
По умолчанию сервер будет доступен по адресу http://127.0.0.1:12380
|
По умолчанию сервер будет доступен по адресу http://127.0.0.1:12380
|
||||||
|
|
||||||
<a name="#cli" />
|
<a id="cli" />
|
||||||
|
|
||||||
### Параметры командной строки
|
### Параметры командной строки
|
||||||
Запустите `inpx-web --help`, чтобы увидеть список опций:
|
Запустите `inpx-web --help`, чтобы увидеть список опций:
|
||||||
@@ -60,7 +61,7 @@ Options:
|
|||||||
--recreate Принудительно пересоздать поисковую БД при запуске приложения
|
--recreate Принудительно пересоздать поисковую БД при запуске приложения
|
||||||
```
|
```
|
||||||
|
|
||||||
<a name="#config" />
|
<a id="config" />
|
||||||
|
|
||||||
### Конфигурация
|
### Конфигурация
|
||||||
При первом запуске в рабочей директории будет создан конфигурационный файл `config.json`:
|
При первом запуске в рабочей директории будет создан конфигурационный файл `config.json`:
|
||||||
@@ -114,7 +115,7 @@ Options:
|
|||||||
При необходимости, можно настроить нужный параметр в этом файле вручную. Параметры командной
|
При необходимости, можно настроить нужный параметр в этом файле вручную. Параметры командной
|
||||||
строки имеют больший приоритет, чем настройки из `config.json`.
|
строки имеют больший приоритет, чем настройки из `config.json`.
|
||||||
|
|
||||||
<a name="#remotelib" />
|
<a id="remotelib" />
|
||||||
|
|
||||||
### Удаленная библиотека
|
### Удаленная библиотека
|
||||||
|
|
||||||
@@ -142,3 +143,123 @@ Options:
|
|||||||
Пароль не обязателен, но необходим в случае, если сервер тоже "смотрит" в интернет, для ограничения доступа к его веб-интерфесу.
|
Пароль не обязателен, но необходим в случае, если сервер тоже "смотрит" в интернет, для ограничения доступа к его веб-интерфесу.
|
||||||
При указании `"remoteLib": {...}` настройки командной строки --inpx и --lib-dir игнорируются,
|
При указании `"remoteLib": {...}` настройки командной строки --inpx и --lib-dir игнорируются,
|
||||||
т.к. файлы .inpx-индекса и библиотеки используются удаленно.
|
т.к. файлы .inpx-индекса и библиотеки используются удаленно.
|
||||||
|
|
||||||
|
<a id="filter" />
|
||||||
|
|
||||||
|
### Фильтр по аторам и книгам
|
||||||
|
|
||||||
|
При создании поисковой БД во время загрузки и парсинга .inpx-файла, имеется возможность
|
||||||
|
отфильтровать авторов и книги, задав определенные критерии. Для этого небходимо создать
|
||||||
|
в рабочей директории (там же, где `config.json`) файл `filter.json` следующего вида:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"info": {
|
||||||
|
"collection": "Новое название коллекции",
|
||||||
|
"structure": "",
|
||||||
|
"version": "1.0.0"
|
||||||
|
},
|
||||||
|
"filter": "(r) => r.del == 0",
|
||||||
|
"includeAuthors": ["Имя автора 1", "Имя автора 2"],
|
||||||
|
"excludeAuthors": ["Имя автора"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
При создании поисковой БД, авторы и книги из `includeAuthors` будут добавлены, а из `excludeAuthors` исключены.
|
||||||
|
Использование совместно `includeAuthors` и `excludeAuthors` имеет мало смысла, поэтому для включения
|
||||||
|
определенных авторов можно использовать только `includeAuthors`:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"info": {
|
||||||
|
"collection": "Новое название коллекции"
|
||||||
|
},
|
||||||
|
"includeAuthors": ["Имя автора 1", "Имя автора 2"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
Для исключения:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"info": {
|
||||||
|
"collection": "Новое название коллекции"
|
||||||
|
},
|
||||||
|
"excludeAuthors": ["Имя автора 1", "Имя автора 2"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Параметр `filter` используется для более гибкой фильтрации по атрибутам записей из .inpx.
|
||||||
|
Уберем все записи, помеченные как удаленные и исключим "Имя автора 1":
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"info": {
|
||||||
|
"collection": "Новое название коллекции"
|
||||||
|
},
|
||||||
|
"filter": "(inpxRec) => inpxRec.del == 0",
|
||||||
|
"excludeAuthors": ["Имя автора 1"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
Использование `filter` небезопасно, т.к. позволяет выполнить произвольный js-код внутри программы,
|
||||||
|
поэтому запуск приложения в этом случае должен сопровождаться дополнительным параметром командной строки `--unsafe-filter`.
|
||||||
|
Названия атрибутов inpxRec соответствуют названиям в нижнем регистре из структуры structure.info в .inpx-файле.
|
||||||
|
<a id="https" />
|
||||||
|
|
||||||
|
### Настройка https с помощью nginx
|
||||||
|
Проще всего настроить https с помощью certbot и проксирования в nginx (пример для debian-based linux):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
#ставим nginx
|
||||||
|
sudo apt install nginx
|
||||||
|
```
|
||||||
|
```
|
||||||
|
#правим конфиг nginx
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name <имя сервера>;
|
||||||
|
set $inpx_web http://127.0.0.1:12380;
|
||||||
|
|
||||||
|
client_max_body_size 512m;
|
||||||
|
proxy_read_timeout 1h;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass $inpx_web;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
```sh
|
||||||
|
#загружаем новый конфиг
|
||||||
|
sudo service nginx reload
|
||||||
|
```
|
||||||
|
Далее следовать инструкции установки https://certbot.eff.org/instructions?ws=nginx&os=debianbuster
|
||||||
|
|
||||||
|
<a id="build" />
|
||||||
|
|
||||||
|
### Сборка проекта
|
||||||
|
Сборка только в среде Linux.
|
||||||
|
Необходима версия node.js не ниже 16.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
git clone https://github.com/bookpauk/inpx-web
|
||||||
|
cd inpx-web
|
||||||
|
npm i
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Для платформы Windows
|
||||||
|
```sh
|
||||||
|
npm run build:win
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Для платформы Linux
|
||||||
|
```sh
|
||||||
|
npm run build:linux
|
||||||
|
```
|
||||||
|
|
||||||
|
Результат сборки будет доступен в каталоге `dist/linux|win` в виде исполнимого (standalone) файла.
|
||||||
|
|
||||||
|
<a id="development" />
|
||||||
|
|
||||||
|
### Разработка
|
||||||
|
```sh
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Связаться с автором проекта: [bookpauk@gmail.com](mailto:bookpauk@gmail.com)
|
||||||
Reference in New Issue
Block a user