Files
web/README.md

73 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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