Веб-сервис m3u.su
Содержит исходный код веб-сервиса и консольные инструменты проверки плейлистов и каналов.
Использует playlists.ini с описанием плейлистов для своей работы.
Веб-сайт: m3u.su
Документация: m3u.su/docs
Исходный код: git.axenov.dev/IPTV
Telegram-канал: @iptv_aggregator
Обсуждение: @iptv_aggregator_chat
Бот: @iptv_aggregator_bot
О веб-сервисе
Решает две задачи:
- отображение списка плейлистов, которые можно использовать в своём плеере;
- сокращение длинных ссылок для удобства ввода с пульта на ТВ и лёгкого запоминания.
Установка и настройка
- Развернуть docker-среду
cd iptv-docker; cp .env.example .env- В файле
.envпоменять необходимые значения cd ..; docker compose up -d --build
Описание переменных окружения
APP_URL— адрес, на котором расположен сервис: используется для генерации ссылок на плейлисты;APP_DEBUG— признак отладки сервиса (включает служебный вывод в некоторых местах);APP_ENV— окружение (см. ниже);APP_TITLE— название сервиса: используется для вывода на страницах сайта и в их заголовках;APP_TIMEZONE— часовой пояс, в котором расположен сервер;PAGE_SIZE— размер страницы для постраничной навигации на главной странице;USER_AGENT— user-agent для http-клиента, котоырй будет использоваться при подключении к внешним ресурсам;CACHE_HOST,CACHE_PORT,CACHE_PASSWORD,CACHE_DB— реквизиты подключения к cache/keydb;CACHE_TTL— количество секунд для кэширования информации;TWIG_USE_CACHE— признак использования кэша компиляции шаблонов Twig.
У каждой переменной есть умолчание на случай отсутствия файла .env или её отсутствия в нём.
Но некорректные значения некоторых переменных могут привести к фатальным ошибкам.
Перегрузка переменных окружения
В разных средах можно использовать разные env-файлы для своего удобства.
Для этого следует:
- в файле
.envпеременнойAPP_ENVуказать значение, например,customили любое другое; - скопировать файл
.envв файл.env.custom; - в файле
.env.customуказать все или только необходимые переменные со произвольными значениями.
Отсутствие файла .env.custom не вызовет ошибку.
При подгрузке файла .env.custom будут перегружены только те переменные окружения, которые в нём объявлены.
Использованный стек
- php8.4-fpm
- SlimPHP v4
- Guzzle v7
- Twig v3
- symfony/console
- focusim/php-qrcode
- Bootstrap v5.2
- Ionicons
- List.js
- telegram-bot/api
Лицензия
Исходный код распространяется на условиях лицензии MIT.
См. файл LICENSE для подробностей.