Files

384 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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: статистика по плейлистам и каналам |