В параметры командной строки добавлена возможность задавать путь к файлу

конфигурации, а все остальные настройки приложения можно указать в нем самом (#30)
This commit is contained in:
Book Pauk
2024-04-04 18:02:16 +07:00
parent 4edcc4c88d
commit 175511ba45
4 changed files with 110 additions and 53 deletions

View File

@@ -66,29 +66,63 @@ OPDS-сервер доступен по адресу [http://127.0.0.1:12380/opd
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 Принудительно пересоздать поисковую БД при запуске приложения
--help Показать опции командной строки
--host=<ip> Задать имя хоста для веб сервера, по умолчанию: 0.0.0.0
--port=<port> Задать порт для веб сервера, по умолчанию: 12380
--config=<filepath> Задать файл конфигурации, по умолчанию: <dataDir>/config.json
--data-dir=<dirpath> (или --app-dir) Задать рабочую директорию, по умолчанию: <execDir>/.inpx-web
--lib-dir=<dirpath> Задать директорию библиотеки (с zip-архивами), по умолчанию: там же, где лежит файл приложения
--inpx=<filepath> Задать путь к файлу .inpx, по умолчанию: тот, что найдется в директории библиотеки
--recreate Принудительно пересоздать поисковую БД при запуске приложения
--unsafe-filter Использовать небезопасный фильтр на свой страх и риск
```
<a id="config" />
### Конфигурация
При первом запуске в рабочей директории будет создан конфигурационный файл `config.json`:
По умолчанию, при первом запуске в рабочей директории будет создан конфигурационный файл `config.json`.
При необходимости, можно настроить нужный параметр в этом файле вручную. Параметры командной
строки имеют больший приоритет, чем настройки из `config.json`.
```js
{
// рабочая директория приложения, аналог параметра командной строки --data-dir (или --app-dir)
// пустая строка: использовать значение по умолчанию - <execDir>/.inpx-web
// где execDir - директория файла приложения
"dataDir": "",
// директория для хранения временных файлов
// пустая строка: использовать значение по умолчанию - <dataDir>/tmp
// специальное значение "${OS}" указывается для использования системного каталога:
// "${OS}" => "<os_temporary_dir>/inpx-web"
"tempDir": "",
// директория для хранения логов
// пустая строка: использовать значение по умолчанию - <dataDir>/logs
"logDir": "",
// директория библиотеки (с zip-архивами), аналог параметра командной строки --lib-dir
// пустая строка: использовать значение по умолчанию - директорию файла приложения
// пустая строка: использовать значение по умолчанию - директорию файла приложения (execDir)
"libDir": "",
// путь к файлу .inpx, аналог параметра командной строки --inpx
// пустая строка: использовать значение по умолчанию - inpx-файл, что найдется в директории библиотеки
"inpx": "",
// конфигурационный файл для фильра по авторам и книгам (см. ниже)
// пустая строка: использовать значение по умолчанию - файл filter.json в директории файла конфигурации
"inpxFilterFile": "",
// разрешить(true)/запретить(false) перезаписывать файл конфигурации, если появились новые параметры для настройки
// файл перезаписывается с сохранением всех предыдущих настроек и с новыми по умолчанию
// бывает полезно при выходе новых версий приложения
"allowConfigRewrite": false,
// разрешить(true)/запретить(false) использовать небезопасный фильтр (см. ниже)
// аналог параметра командной строки --unsafe-filter
"allowUnsafeFilter": false,
// пароль для ограничения доступа к веб-интерфейсу сервера
// пустое значение - доступ без ограничений
"accessPassword": "",
@@ -210,9 +244,6 @@ Options:
}
```
При необходимости, можно настроить нужный параметр в этом файле вручную. Параметры командной
строки имеют больший приоритет, чем настройки из `config.json`.
<a id="remotelib" />
### Удаленная библиотека
@@ -247,8 +278,8 @@ Options:
### Фильтр по авторам и книгам
При создании поисковой БД, во время загрузки и парсинга .inpx-файла, имеется возможность
отфильтровать авторов и книги, задав определенные критерии. Для этого небходимо создать
в рабочей директории (там же, где `config.json`) файл `filter.json` следующего вида:
отфильтровать авторов и книги, задав определенные критерии. По умолчанию, для этого небходимо создать
в директории конфигурационного файла (там же, где `config.json`) файл `filter.json` следующего вида:
```json
{
"info": {
@@ -293,8 +324,10 @@ Options:
}
```
Использование `filter` небезопасно, т.к. позволяет выполнить произвольный js-код внутри программы,
поэтому запуск приложения в этом случае должен сопровождаться дополнительным параметром командной строки `--unsafe-filter`.
поэтому запуск приложения в этом случае должен сопровождаться дополнительным параметром командной строки `--unsafe-filter`
или разрешением в конфиге `allowUnsafeFilter`.
Названия атрибутов inpxRec соответствуют названиям в нижнем регистре из структуры structure.info в .inpx-файле.
Файл `filter.json` можно расположить где угодно, что задается параметром `inpxFilterFile` в конфиге.
<a id="https" />
### Настройка https с помощью nginx