Веб-сервис m3u.su
Содержит исходный код веб-сервиса и консольные инструменты проверки плейлистов и каналов.
Использует playlists.ini с описанием плейлистов для своей работы.
Веб-сайт: m3u.su
Документация: m3u.su/docs
Исходный код: git.axenov.dev/IPTV/web
Telegram-канал: @iptv_aggregator
Обсуждение: @iptv_aggregator_chat
Бот: @iptv_aggregator_bot
Дополнительные сведения: git.axenov.dev/IPTV/.profile
О веб-сервисе
Решает две задачи:
- отображение списка плейлистов, которые можно использовать в своём плеере;
- сокращение длинных ссылок для удобства ввода с пульта на ТВ и лёгкого запоминания.
Установка и настройка
- Развернуть 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 для подробностей.