73 lines
4.7 KiB
Markdown
73 lines
4.7 KiB
Markdown
# Веб-сервис iptv.axenov.dev
|
||
|
||
Содержит исходный код веб-сервиса и консольные инструменты проверки плейлистов и каналов.
|
||
|
||
Использует [playlists.ini](https://git.axenov.dev/IPTV/playlists) с описанием плейлистов для своей работы.
|
||
|
||
> **Веб-сайт:** [iptv.axenov.dev](https://iptv.axenov.dev)
|
||
> **Зеркало:** [m3u.su](https://m3u.su)
|
||
> Исходный код: [git.axenov.dev/IPTV/web](https://git.axenov.dev/IPTV/web)
|
||
> Telegram-канал: [@iptv_aggregator](https://t.me/iptv_aggregator)
|
||
> Обсуждение: [@iptv_aggregator_chat](https://t.me/iptv_aggregator_chat)
|
||
> Дополнительные сведения: [git.axenov.dev/IPTV/.profile](https://git.axenov.dev/IPTV/.profile)
|
||
|
||
## О веб-сервисе
|
||
|
||
Решает две задачи:
|
||
* отображение списка плейлистов, которые можно использовать в своём плеере;
|
||
* сокращение длинных ссылок для удобства ввода с пульта на ТВ и лёгкого запоминания.
|
||
|
||
## Установка и настройка
|
||
|
||
1. Развернуть [docker-среду](https://git.axenov.dev/IPTV/docker)
|
||
2. `cd iptv-docker; cp .env.example .env`
|
||
3. В файле `.env` поменять необходимые значения
|
||
4. `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-файлы для своего удобства.
|
||
|
||
Для этого следует:
|
||
1. в файле `.env` переменной `APP_ENV` указать значение, например, `custom` или любое другое;
|
||
2. скопировать файл `.env` в файл `.env.custom`;
|
||
3. в файле `.env.custom` указать все или только необходимые переменные со произвольными значениями.
|
||
|
||
Отсутствие файла `.env.custom` не вызовет ошибку.
|
||
|
||
При подгрузке файла `.env.custom` будут перегружены только те переменные окружения, которые в нём объявлены.
|
||
|
||
## Использованный стек
|
||
|
||
* [php8.4-fpm](https://www.php.net/releases/8.4/ru.php)
|
||
* [SlimPHP v4](https://www.slimframework.com/docs/v4/)
|
||
* [Guzzle v7](https://docs.guzzlephp.org/en/latest/)
|
||
* [Twig v3](https://twig.symfony.com/doc/3.x/)
|
||
* [symfony/console](https://symfony.com/doc/current/components/console.html)
|
||
* [focusim/php-qrcode](https://github.com/Focusim/php-qrcode)
|
||
* [Bootstrap v5.2](https://getbootstrap.com/docs/5.2/getting-started/introduction/)
|
||
* [Ionicons](https://ionic.io/ionicons)
|
||
* [List.js](https://listjs.com)
|
||
* [telegram-bot/api](https://packagist.org/packages/telegram-bot/api)
|
||
|
||
## Лицензия
|
||
|
||
Исходный код распространяется на условиях лицензии MIT.
|
||
См. файл [LICENSE](LICENSE) для подробностей.
|