384 lines
12 KiB
Markdown
384 lines
12 KiB
Markdown
---
|
||
title: serve
|
||
tags: [iptvc]
|
||
---
|
||
|
||
# Команда `serve`
|
||
|
||
Запускает встроенный веб-сервер для просмотра плейлистов и результатов их проверки в браузере.
|
||
|
||
```bash
|
||
iptvc serve [flags]
|
||
```
|
||
|
||
## Веб-сервер
|
||
|
||
### `-p`, `--port` { id="port" }
|
||
|
||
Порт для веб-сервера.
|
||
|
||
Переопределяет `server.port` из `config.yml` и переменную `SERVER_PORT`.
|
||
|
||
Если не указан, используется значение из `config.yml` (по умолчанию `8800`).
|
||
|
||
```bash
|
||
iptvc serve -p 3000
|
||
```
|
||
|
||
### `--host` { id="host" }
|
||
|
||
Хост для привязки веб-сервера.
|
||
|
||
Переопределяет `server.host` из `config.yml` и переменную `SERVER_HOST`.
|
||
|
||
Если не указан, используется значение из `config.yml` (по умолчанию — все интерфейсы).
|
||
|
||
```bash
|
||
iptvc serve --host 127.0.0.1
|
||
```
|
||
|
||
## Фоновая проверка
|
||
|
||
### `--check` { id="check" }
|
||
|
||
Включает фоновую проверку плейлистов. По умолчанию выключена.
|
||
|
||
Без этого флага веб-сервер работает standalone — отображает данные из кеша (если включён) или статус `unknown` для всех плейлистов.
|
||
|
||
```bash
|
||
iptvc serve --check
|
||
```
|
||
|
||
При `--check` доступны следующие флаги:
|
||
|
||
### `-i`, `--ini` { id="ini" }
|
||
|
||
Путь к локальному [ini-файлу](../../common/formats/playlists.md) с описанием плейлистов.
|
||
|
||
Значение по умолчанию: `./playlists.ini`
|
||
|
||
```bash
|
||
iptvc serve --check -i ~/my.ini
|
||
```
|
||
|
||
### `-t`, `--tags` { id="tags" }
|
||
|
||
Путь к [json-файлу](../../common/formats/channels.md) с описанием тегов каналов.
|
||
|
||
Значение по умолчанию: `./channels.json`
|
||
|
||
```bash
|
||
iptvc serve --check -t ~/tags.json
|
||
```
|
||
|
||
### `--playlists-all-cooldown` { id=playlists-all-cooldown }
|
||
|
||
Пауза между полными циклами фоновой проверки в секундах. Параметр переопределяет `check.playlists.all-cooldown` из конфигурации.
|
||
|
||
Значение по умолчанию: значение `check.playlists.all-cooldown` из конфигурации, обычно `1800` (30 минут).
|
||
|
||
```bash
|
||
# пауза 2 минуты между циклами
|
||
iptvc serve --check --playlists-all-cooldown 120
|
||
```
|
||
|
||
### `--repeat` { id="repeat" }
|
||
|
||
Количество циклов фоновой проверки.
|
||
|
||
Значение по умолчанию: `0` (бесконечно)
|
||
|
||
```bash
|
||
# проверить один раз и остановить фоновую проверку
|
||
iptvc serve --check --repeat 1
|
||
```
|
||
|
||
### `-r`, `--random` { id="random" }
|
||
|
||
Максимальное количество случайных плейлистов из ini-файла для проверки.
|
||
|
||
```bash
|
||
iptvc serve --check -r 10
|
||
```
|
||
|
||
## Глобальные флаги
|
||
|
||
### `--config` { id="config" }
|
||
|
||
Путь к файлу конфигурации `config.yml`.
|
||
|
||
Значение по умолчанию: `config.yml`
|
||
|
||
```bash
|
||
iptvc serve --config /etc/iptvc/config.yml
|
||
```
|
||
|
||
### `--debug` { id="debug" }
|
||
|
||
Включает режим отладки. Переопределяет `app.debug` из `config.yml` и переменную `APP_DEBUG`.
|
||
|
||
```bash
|
||
iptvc serve --debug
|
||
```
|
||
|
||
### `--log-level` { id="log-level" }
|
||
|
||
Устанавливает уровень логирования. Переопределяет `app.log_level` из `config.yml`.
|
||
|
||
Доступные значения: `debug`, `info`, `warn`, `error`.
|
||
|
||
```bash
|
||
iptvc serve --log-level debug
|
||
```
|
||
|
||
### `-v`, `--verbose` { id="verbose" }
|
||
|
||
Включает подробное логирование.
|
||
|
||
## Флаги проверки плейлистов
|
||
|
||
Эти флаги переопределяют параметры секции `check.playlists` из `config.yml`. Доступны для команд `check` и `serve`. Имеют смысл только при включённой фоновой проверке (`--check` или `check.start-on-serve: true`).
|
||
|
||
### `--playlists-timeout` { id="playlists-timeout" }
|
||
|
||
Таймаут HTTP-запроса плейлиста в секундах.
|
||
|
||
Переопределяет `check.playlists.timeout` (по умолчанию `10`).
|
||
|
||
```bash
|
||
iptvc serve --check --playlists-timeout 5
|
||
```
|
||
|
||
### `--playlists-all-cooldown` { id="playlists-all-cooldown" }
|
||
|
||
Задержка в секундах после проверки всех плейлистов.
|
||
|
||
Переопределяет `check.playlists.all-cooldown` (по умолчанию `1800`).
|
||
|
||
```bash
|
||
iptvc serve --check --playlists-all-cooldown 10
|
||
```
|
||
|
||
### `--playlists-one-cooldown` { id="playlists-one-cooldown" }
|
||
|
||
Задержка в секундах после проверки каждого плейлиста.
|
||
|
||
Переопределяет `check.playlists.one-cooldown` (по умолчанию `2`).
|
||
|
||
```bash
|
||
iptvc serve --check --playlists-one-cooldown 2
|
||
```
|
||
|
||
### `--playlists-max-routines` { id="playlists-max-routines" }
|
||
|
||
Максимум одновременно проверяемых плейлистов.
|
||
|
||
Переопределяет `check.playlists.max-routines` (по умолчанию `1`).
|
||
|
||
```bash
|
||
iptvc serve --check --playlists-max-routines 10
|
||
```
|
||
|
||
### `--playlists-per-routine` { id="playlists-per-routine" }
|
||
|
||
Количество плейлистов на одну процедуру проверки.
|
||
|
||
Переопределяет `check.playlists.per-routine` (по умолчанию `1`).
|
||
|
||
```bash
|
||
iptvc serve --check --playlists-per-routine 3
|
||
```
|
||
|
||
### `--playlists-user-agent` { id="playlists-user-agent" }
|
||
|
||
User-Agent для HTTP-запросов плейлистов. Можно указать несколько — будет выбран случайный при каждом запросе.
|
||
|
||
Переопределяет `check.playlists.user-agent`.
|
||
|
||
```bash
|
||
iptvc serve --check --playlists-user-agent "Mozilla/5.0" "curl/8.0"
|
||
```
|
||
|
||
## Флаги проверки каналов
|
||
|
||
Эти флаги переопределяют параметры секции `check.channels` из `config.yml`. Доступны для команд `check` и `serve`. Имеют смысл только при включённой фоновой проверке.
|
||
|
||
### `--channels-timeout` { id="channels-timeout" }
|
||
|
||
Таймаут HTTP-запроса канала в секундах.
|
||
|
||
Переопределяет `check.channels.timeout` (по умолчанию `10`).
|
||
|
||
```bash
|
||
iptvc serve --check --channels-timeout 8
|
||
```
|
||
|
||
### `--channels-byte-range` { id="channels-byte-range" }
|
||
|
||
Объём данных в байтах для загрузки от сервера при проверке канала.
|
||
|
||
Переопределяет `check.channels.byte-range` (по умолчанию `512`).
|
||
|
||
```bash
|
||
iptvc serve --check --channels-byte-range 1024
|
||
```
|
||
|
||
### `--channels-cooldown` { id="channels-cooldown" }
|
||
|
||
Задержка в секундах после проверки каждого канала.
|
||
|
||
Переопределяет `check.channels.cooldown` (по умолчанию `0`).
|
||
|
||
```bash
|
||
iptvc serve --check --channels-cooldown 1
|
||
```
|
||
|
||
### `--channels-max-routines` { id="channels-max-routines" }
|
||
|
||
Максимум одновременно проверяемых каналов.
|
||
|
||
Переопределяет `check.channels.max-routines` (по умолчанию `50`).
|
||
|
||
```bash
|
||
iptvc serve --check --channels-max-routines 100
|
||
```
|
||
|
||
### `--channels-per-routine` { id="channels-per-routine" }
|
||
|
||
Количество каналов на одну процедуру проверки.
|
||
|
||
Переопределяет `check.channels.per-routine` (по умолчанию `10`).
|
||
|
||
```bash
|
||
iptvc serve --check --channels-per-routine 20
|
||
```
|
||
|
||
### `--channels-user-agent` { id="channels-user-agent" }
|
||
|
||
User-Agent для HTTP-запросов каналов. Можно указать несколько — будет выбран случайный при каждом запросе.
|
||
|
||
Переопределяет `check.channels.user-agent`.
|
||
|
||
```bash
|
||
iptvc serve --check --channels-user-agent "Mozilla/5.0" "VLC/3.0"
|
||
```
|
||
|
||
## Флаги кеша
|
||
|
||
Эти флаги переопределяют параметры секции `cache` из `config.yml`. Доступны для команд `check` и `serve`.
|
||
|
||
### `--cache-enabled` { id="cache-enabled" }
|
||
|
||
Включает кеширование результатов в KeyDB/Redis.
|
||
|
||
Переопределяет `cache.enabled` (по умолчанию `false`).
|
||
|
||
```bash
|
||
iptvc serve --cache-enabled
|
||
```
|
||
|
||
### `--cache-host` { id="cache-host" }
|
||
|
||
Хост KeyDB/Redis.
|
||
|
||
Переопределяет `cache.host` (по умолчанию `localhost`).
|
||
|
||
```bash
|
||
iptvc serve --cache-enabled --cache-host 192.168.1.10
|
||
```
|
||
|
||
### `--cache-port` { id="cache-port" }
|
||
|
||
Порт KeyDB/Redis.
|
||
|
||
Переопределяет `cache.port` (по умолчанию `6379`).
|
||
|
||
```bash
|
||
iptvc serve --cache-enabled --cache-port 6380
|
||
```
|
||
|
||
### `--cache-username` { id="cache-username" }
|
||
|
||
Логин для подключения к KeyDB/Redis.
|
||
|
||
Переопределяет `cache.username`.
|
||
|
||
```bash
|
||
iptvc serve --cache-enabled --cache-username myuser
|
||
```
|
||
|
||
### `--cache-password` { id="cache-password" }
|
||
|
||
Пароль для подключения к KeyDB/Redis.
|
||
|
||
Переопределяет `cache.password`.
|
||
|
||
```bash
|
||
iptvc serve --cache-enabled --cache-password secret
|
||
```
|
||
|
||
### `--cache-db` { id="cache-db" }
|
||
|
||
Номер базы данных KeyDB/Redis.
|
||
|
||
Переопределяет `cache.db` (по умолчанию `0`).
|
||
|
||
```bash
|
||
iptvc serve --cache-enabled --cache-db 2
|
||
```
|
||
|
||
### `--cache-ttl` { id="cache-ttl" }
|
||
|
||
TTL записей кеша в секундах.
|
||
|
||
Переопределяет `cache.ttl` (по умолчанию `30`).
|
||
|
||
```bash
|
||
iptvc serve --cache-enabled --cache-ttl 3600
|
||
```
|
||
|
||
## Примеры
|
||
|
||
```bash
|
||
# просто веб-сервер без проверки
|
||
iptvc serve
|
||
|
||
# веб-сервер с фоновой проверкой каждые 2 минуты
|
||
iptvc serve --check --playlists-all-cooldown 120
|
||
|
||
# веб-сервер на порту 3000 с проверкой 10 случайных плейлистов
|
||
iptvc serve -p 3000 --check -r 10
|
||
|
||
# один цикл проверки, затем только веб-сервер
|
||
iptvc serve --check --repeat 1
|
||
|
||
# веб-сервер с кешем и фоновой проверкой, увеличенные лимиты параллелизма
|
||
iptvc serve --check --cache-enabled \
|
||
--playlists-max-routines 10 \
|
||
--channels-max-routines 100
|
||
|
||
# веб-сервер с отладкой и кастомным user-agent
|
||
iptvc serve --check --debug \
|
||
--playlists-user-agent "Mozilla/5.0" \
|
||
--channels-user-agent "VLC/3.0"
|
||
```
|
||
|
||
## Веб-маршруты
|
||
|
||
| Метод | Путь | Описание |
|
||
| --- | --- | --- |
|
||
| GET | `/` | Главная страница со списком плейлистов |
|
||
| GET | `/page/{N}` | Страница N списка плейлистов |
|
||
| GET | `/{code}` | Редирект на прямую ссылку плейлиста |
|
||
| GET | `/{code}.m3u[8]` | Редирект на прямую ссылку плейлиста |
|
||
| GET | `/{code}/details` | Страница с описанием плейлиста |
|
||
| GET | `/api` | Редирект на `/api/` (Swagger UI) |
|
||
| GET | `/api/` | Swagger UI с описанием REST API |
|
||
| GET | `/api/openapi.json` | OpenAPI-схема в формате JSON |
|
||
| GET | `/api/playlists` | JSON: массив всех плейлистов |
|
||
| GET | `/api/playlists/{code}` | JSON: информация о плейлисте |
|
||
| GET | `/api/playlists/{code}/channels` | JSON: список каналов плейлиста |
|
||
| GET | `/api/version` | JSON: версии компонентов |
|
||
| GET | `/api/health` | JSON: состояние сервиса |
|
||
| GET | `/api/stats` | JSON: статистика по плейлистам и каналам |
|