19 KiB
title, icon, tags
| title | icon | tags | ||
|---|---|---|---|---|
| config.yml | material/file-cog |
|
:material-file-cog: Конфигурация config.yml
Программа читает настройки из YAML-файла config.yml в корне проекта.
Путь к файлу можно задать через глобальный флаг --config.
Приоритет настроек
От низшего к высшему:
- Значения по умолчанию — встроены в код;
config.yml— YAML-файл;- Переменные окружения — переопределяют
config.yml(если заданы); - CLI-флаги — переопределяют переменные окружения и
config.yml(если заданы явно).
Файл .env загружается автоматически, переменные из него применяются как переменные окружения.
Структура файла
app:
timezone: GMT
debug: false
log_level: info
playlists: ./playlists.ini
tags: ./channels.json
server:
host: localhost
port: 8080
site:
base-url: http://localhost:8080
repo-url: https://git.axenov.dev/IPTV
page-size: 0
favicon:
header:
title: IPTV Checker
navigation:
- title: Документация
url: /docs
icon: document-text-outline
footer-links:
- title: Исходники
url: https://git.axenov.dev/IPTV
icon: code-slash-outline
check:
start-on-serve: false
playlists:
user-agent:
- Mozilla/5.0 WINK/1.31.1 (AndroidTV/9) HlsWinkPlayer
timeout: 10000
all-cooldown: 0
one-cooldown: 0
max-routines: 5
per-routine: 1
channels:
user-agent: Mozilla/5.0 WINK/1.31.1 (AndroidTV/9) HlsWinkPlayer
timeout: 10000
byte-range: 512
cooldown: 0
max-routines: 50
per-routine: 10
cache:
enabled: false
host: localhost
port: 6379
username:
password:
db: 0
ttl: 1800
Каждый параметр ниже описан отдельной секцией с указанием значения по умолчанию, переменной окружения и соответствующего CLI-флага.
Секция app
app.timezone
Часовой пояс, используемый в логах и при отображении времени проверок.
app.debug
Режим отладки. Включает расширенное логирование и дополнительные проверки в логике приложения.
app.log_level
Уровень логирования.
Допустимые значения: debug, info, warn, error.
app.playlists
Путь к локальному ini-файлу с описанием плейлистов.
!!! info "Аргумент работает только для команд check и serve --check."
app.tags
Путь к локальному json-файлу с описанием тегов каналов.
!!! info "Аргумент работает только для команд check и serve --check."
Секция server
server.host
Хост для привязки веб-сервера. Пустая строка — слушать на всех интерфейсах.
!!! info "Аргумент работает только для команды serve."
server.port
Порт веб-сервера.
!!! info "Аргумент работает только для команды serve."
Секция site
Настройки внешнего вида и ссылок сайта: заголовок, навигация, пагинация, иконка.
site.base-url
Базовый URL сайта. Используется при формировании абсолютных ссылок в шаблонах.
site.repo-url
Ссылка на исходный репозиторий (отображается в подвале).
site.page-size
Размер страницы пагинации.
При значении 0 пагинация отключена, на главной странице выводятся все плейлисты.
site.favicon
Путь к файлу иконки сайта. Пустая строка — используется встроенная.
site.header.title
Заголовок сайта, отображается в <title> и в navbar.
site.header.navigation
Массив элементов Link в шапке сайта.
site.footer-links
Массив элементов Link в подвале сайта.
Тип Link
Элемент навигации или подвала.
Если задано children, рендерится как выпадающее меню.
| Поле | Тип | Описание |
|---|---|---|
title |
string | Текст ссылки |
url |
string | URL ссылки (можно опустить, если есть children) |
icon |
string | Имя иконки |
children |
Link[] | Дочерние ссылки (выпадающее меню, один уровень вложенности) |
--8<-- "ionicons-name.md"
site:
header:
navigation:
- title: Документация
url: /docs
icon: document-text-outline
- title: Telegram
icon: paper-plane-outline
children:
- title: Канал
url: https://t.me/iptv_aggregator
icon: megaphone-outline
- title: Чат
url: https://t.me/iptv_aggregator_chat
icon: chatbubbles-outline
footer-links:
- title: Исходники
url: https://git.axenov.dev/IPTV
icon: code-slash-outline
- title: axenov.dev
url: https://axenov.dev
icon: person-outline
Секция check
Параметры проверки плейлистов и каналов. Поддерживаются скаляры и массивы.
check.start-on-serve
Запустить фоновую проверку при serve без явного флага --check.
Независимый переключатель от CLI-флага --check — фоновая проверка стартует, если хотя бы один из них активен.
check.playlists
Параметры проверки плейлистов (загрузка m3u-файлов по URL или из ФС).
check.playlists.user-agent
User-Agent для HTTP-запросов плейлистов.
!!! info "Необычный параметр" Если значение параметра задано строкой, то в запросах к плейлистам будет использоваться только оно.
Если значение параметра задано массивом строк, то в запросах к плейлистам будет использоваться случайный из указанных.
!!! info "Необычная переменная" В окружении может задаваться индексированными переменными:
- `CHECK_PLAYLISTS_USER_AGENT_1="value1"`
- `CHECK_PLAYLISTS_USER_AGENT_2="value2"`
- и т.д.; чтение останавливается на первой отсутствующей.
!!! info "Аргумент работает только для команд check и serve --check."
check.playlists.timeout
Таймаут HTTP-запроса плейлиста в миллисекундах.
!!! info "Аргумент работает только для команд check и serve --check."
check.playlists.all-cooldown
Задержка после проверки всех плейлистов в миллисекундах.
!!! info "Необычная переменная" Если значение переменной указано одним числом, то для задержки будет использоваться только оно.
Если значение переменной указано двумя числами через запятую, то будет использоваться случайная задержка в указанном диапазоне.
!!! info "Аргумент работает только для команд check и serve --check."
check.playlists.one-cooldown
Задержка после проверки каждого плейлиста в миллисекундах.
!!! info "Необычная переменная" Если значение переменной указано одним числом, то для задержки будет использоваться только оно.
Если значение переменной указано двумя числами через запятую, то будет использоваться случайная задержка в указанном диапазоне.
!!! info "Аргумент работает только для команд check и serve --check."
check.playlists.max-routines
Максимальное количество параллельных потоков (рутин) проверки плейлистов.
!!! info "Аргумент работает только для команд check и serve --check."
check.playlists.per-routine
Максимальное количество плейлистов в каждом потоке (рутине) проверки.
!!! info "Аргумент работает только для команд check и serve --check."
check.channels
Параметры проверки каналов внутри плейлиста.
check.channels.user-agent
User-Agent для HTTP-запроса каждого канала каждого плейлиста.
!!! info "Необычный параметр" Если значение параметра задано строкой, то в запросах к каналам будет использоваться только оно.
Если значение параметра задано массивом строк, то в запросах к каналам будет использоваться случайный из указанных.
!!! info "Необычная переменная" В окружении может задаваться индексированными переменными:
- `CHECK_CHANNELS_USER_AGENT_1="value1"`
- `CHECK_CHANNELS_USER_AGENT_2="value2"`
- и т.д.; чтение останавливается на первой отсутствующей.
!!! info "Аргумент работает только для команд check и serve --check."
check.channels.timeout
Таймаут HTTP-запроса каждого канала каждого плейлиста в миллисекундах.
!!! info "Аргумент работает только для команд check и serve --check."
check.channels.byte-range
Объём данных в байтах, запрашиваемых у сервера при проверке каждого канала каждого плейлиста.
Меньшее значение повышает риск ошибок в определении типа контента (mime-type).
Большее значение может приводить к повышенной нагрузке и увеличению времени проверки.
!!! info "Аргумент работает только для команд check и serve --check."
check.channels.cooldown
Задержка после проверки каждого канала каждого плейлиста в миллисекундах.
!!! info "Необычная переменная" Если значение переменной указано одним числом, то для задержки будет использоваться только оно.
Если значение переменной указано двумя числами через запятую, то будет использоваться случайная задержка в указанном диапазоне.
!!! info "Аргумент работает только для команд check и serve --check."
check.channels.max-routines
Максимальное количество параллельных потоков (рутин) проверки каналов каждого плейлиста.
!!! info "Аргумент работает только для команд check и serve --check."
check.channels.per-routine
Максимальное количество каналов в каждом потоке (рутине) проверки каждого плейлиста.
!!! info "Аргумент работает только для команд check и serve --check."
Секция cache
Параметры подключения к KeyDB/Redis для хранения результатов проверок.
cache.enabled
Включить использование внешнего кеша.
!!! info "Аргумент работает только для команд check и serve --check."
cache.host
Хост KeyDB/Redis.
!!! info "Аргумент работает только для команд check и serve --check."
cache.port
Порт KeyDB/Redis.
!!! info "Аргумент работает только для команд check и serve --check."
cache.username
Логин для подключения. Пустая строка — без аутентификации.
!!! info "Аргумент работает только для команд check и serve --check."
cache.password
Пароль для подключения.
!!! info "Аргумент работает только для команд check и serve --check."
cache.db
Номер логической базы данных в KeyDB/Redis.
!!! info "Аргумент работает только для команд check и serve --check."
cache.ttl
TTL записей кеша, секунды.
!!! info "Аргумент работает только для команд check и serve --check."