Files
docs/content/iptvc/commands/serve.md
T
2026-07-13 12:30:05 +08:00

409 lines
11 KiB
Markdown

---
title: serve
tags: [iptvc]
---
# Команда `serve`
Запускает встроенный веб-сервер для просмотра плейлистов и результатов их проверки в браузере.
```bash
iptvc serve [flags]
```
## Веб-сервер
<a id="port"></a>
### `-p`, `--port`
Порт для веб-сервера.
Переопределяет `server.port` из `config.yml` и переменную `WEB_PORT`.
Если не указан, используется значение из `config.yml` (по умолчанию `8080`).
```bash
iptvc serve -p 3000
```
<a id="host"></a>
### `--host`
Хост для привязки веб-сервера.
Переопределяет `server.host` из `config.yml` и переменную `WEB_HOST`.
Если не указан, используется значение из `config.yml` (по умолчанию — все интерфейсы).
```bash
iptvc serve --host 127.0.0.1
```
## Фоновая проверка
<a id="check"></a>
### `--check`
Включает фоновую проверку плейлистов. По умолчанию выключена.
Без этого флага веб-сервер работает standalone — отображает данные из кеша (если включён) или статус `unknown` для всех плейлистов.
```bash
iptvc serve --check
```
При `--check` доступны следующие флаги:
<a id="ini"></a>
### `-i`, `--ini`
Путь к локальному [ini-файлу](../../formats/playlists.md) с описанием плейлистов.
Значение по умолчанию: `./playlists.ini`
```bash
iptvc serve --check -i ~/my.ini
```
<a id="tags"></a>
### `-t`, `--tags`
Путь к [json-файлу](../../formats/channels.md) с описанием тегов каналов.
Значение по умолчанию: `./channels.json`
```bash
iptvc serve --check -t ~/tags.json
```
<a id="every"></a>
### `--every`
Интервал между циклами фоновой проверки в секундах.
Значение по умолчанию: `60`
```bash
iptvc serve --check --every 120
```
<a id="repeat"></a>
### `--repeat`
Количество циклов фоновой проверки.
Значение по умолчанию: `0` (бесконечно)
```bash
# проверить один раз и остановить фоновую проверку
iptvc serve --check --repeat 1
```
<a id="random"></a>
### `-r`, `--random`
Максимальное количество случайных плейлистов из ini-файла для проверки.
```bash
iptvc serve --check -r 10
```
## Глобальные флаги
<a id="config"></a>
### `--config`
Путь к файлу конфигурации `config.yml`.
Значение по умолчанию: `config.yml`
```bash
iptvc serve --config /etc/iptvc/config.yml
```
<a id="debug"></a>
### `--debug`
Включает режим отладки. Переопределяет `app.debug` из `config.yml` и переменную `APP_DEBUG`.
```bash
iptvc serve --debug
```
<a id="log-level"></a>
### `--log-level`
Устанавливает уровень логирования. Переопределяет `app.log_level` из `config.yml`.
Доступные значения: `debug`, `info`, `warn`, `error`.
```bash
iptvc serve --log-level debug
```
<a id="verbose"></a>
### `-v`, `--verbose`
Включает подробное логирование.
## Флаги проверки плейлистов
Эти флаги переопределяют параметры секции `check.playlists` из `config.yml`. Доступны для команд `check` и `serve`. Имеют смысл только при включённой фоновой проверке (`--check` или `check.start-on-serve: true`).
<a id="playlists-timeout"></a>
### `--playlists-timeout`
Таймаут HTTP-запроса плейлиста в миллисекундах.
Переопределяет `check.playlists.timeout` (по умолчанию `10000`).
```bash
iptvc serve --check --playlists-timeout 5000
```
<a id="playlists-all-cooldown"></a>
### `--playlists-all-cooldown`
Задержка в миллисекундах после проверки всех плейлистов.
Переопределяет `check.playlists.all-cooldown` (по умолчанию `0`).
```bash
iptvc serve --check --playlists-all-cooldown 10000
```
<a id="playlists-one-cooldown"></a>
### `--playlists-one-cooldown`
Задержка в миллисекундах после проверки каждого плейлиста.
Переопределяет `check.playlists.one-cooldown` (по умолчанию `0`).
```bash
iptvc serve --check --playlists-one-cooldown 2000
```
<a id="playlists-max-routines"></a>
### `--playlists-max-routines`
Максимум одновременно проверяемых плейлистов.
Переопределяет `check.playlists.max-routines` (по умолчанию `5`).
```bash
iptvc serve --check --playlists-max-routines 10
```
<a id="playlists-per-routine"></a>
### `--playlists-per-routine`
Количество плейлистов на одну процедуру проверки.
Переопределяет `check.playlists.per-routine` (по умолчанию `1`).
```bash
iptvc serve --check --playlists-per-routine 3
```
<a id="playlists-user-agent"></a>
### `--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`. Имеют смысл только при включённой фоновой проверке.
<a id="channels-timeout"></a>
### `--channels-timeout`
Таймаут HTTP-запроса канала в миллисекундах.
Переопределяет `check.channels.timeout` (по умолчанию `10000`).
```bash
iptvc serve --check --channels-timeout 8000
```
<a id="channels-byte-range"></a>
### `--channels-byte-range`
Объём данных в байтах для загрузки от сервера при проверке канала.
Переопределяет `check.channels.byte-range` (по умолчанию `512`).
```bash
iptvc serve --check --channels-byte-range 1024
```
<a id="channels-cooldown"></a>
### `--channels-cooldown`
Задержка в миллисекундах после проверки каждого канала.
Переопределяет `check.channels.cooldown` (по умолчанию `0`).
```bash
iptvc serve --check --channels-cooldown 100
```
<a id="channels-max-routines"></a>
### `--channels-max-routines`
Максимум одновременно проверяемых каналов.
Переопределяет `check.channels.max-routines` (по умолчанию `50`).
```bash
iptvc serve --check --channels-max-routines 100
```
<a id="channels-per-routine"></a>
### `--channels-per-routine`
Количество каналов на одну процедуру проверки.
Переопределяет `check.channels.per-routine` (по умолчанию `10`).
```bash
iptvc serve --check --channels-per-routine 20
```
<a id="channels-user-agent"></a>
### `--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`.
<a id="cache-enabled"></a>
### `--cache-enabled`
Включает кеширование результатов в KeyDB/Redis.
Переопределяет `cache.enabled` (по умолчанию `false`).
```bash
iptvc serve --cache-enabled
```
<a id="cache-host"></a>
### `--cache-host`
Хост KeyDB/Redis.
Переопределяет `cache.host` (по умолчанию `localhost`).
```bash
iptvc serve --cache-enabled --cache-host 192.168.1.10
```
<a id="cache-port"></a>
### `--cache-port`
Порт KeyDB/Redis.
Переопределяет `cache.port` (по умолчанию `6379`).
```bash
iptvc serve --cache-enabled --cache-port 6380
```
<a id="cache-username"></a>
### `--cache-username`
Логин для подключения к KeyDB/Redis.
Переопределяет `cache.username`.
```bash
iptvc serve --cache-enabled --cache-username myuser
```
<a id="cache-password"></a>
### `--cache-password`
Пароль для подключения к KeyDB/Redis.
Переопределяет `cache.password`.
```bash
iptvc serve --cache-enabled --cache-password secret
```
<a id="cache-db"></a>
### `--cache-db`
Номер базы данных KeyDB/Redis.
Переопределяет `cache.db` (по умолчанию `0`).
```bash
iptvc serve --cache-enabled --cache-db 2
```
<a id="cache-ttl"></a>
### `--cache-ttl`
TTL записей кеша в секундах.
Переопределяет `cache.ttl` (по умолчанию `1800`).
```bash
iptvc serve --cache-enabled --cache-ttl 3600
```
## Примеры
```bash
# просто веб-сервер без проверки
iptvc serve
# веб-сервер с фоновой проверкой каждые 2 минуты
iptvc serve --check --every 120
# веб-сервер на порту 3000 с проверкой 10 случайных плейлистов
iptvc serve -p 3000 --check -r 10
# один цикл проверки, затем только веб-сервер
iptvc serve --check --repeat 1 --every 0
# веб-сервер с кешем и фоновой проверкой, увеличенные лимиты параллелизма
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/playlists/{code}` | JSON: информация о плейлисте |
| GET | `/api/version` | JSON: версии компонентов |
| GET | `/api/health` | JSON: состояние сервиса |
| GET | `/api/stats` | JSON: статистика по плейлистам и каналам |