Большая переработка

- внедрён iptvc
- скорректированы докерфайлы
- php8.3 => 8.4
- переписан скрипт iptv
- скорректирован композ и енвы
This commit is contained in:
2025-05-11 12:13:30 +08:00
parent 3a624ba8d1
commit 833c5218eb
15 changed files with 1031 additions and 108 deletions

View File

@@ -1,38 +1,54 @@
# Инфраструктурный слой проекта iptv.axenov.dev
> **Адрес**: https://iptv.axenov.dev
> **FAQ**: https://iptv.axenov.dev/faq
> **Исходный код**: https://git.axenov.dev/IPTV
Docker-окружение для работы проекта iptv.axenov.dev.
Содержит docker-окружение для запуска проекта iptv.axenov.dev.
> **Веб-сайт:** [iptv.axenov.dev](https://iptv.axenov.dev)
> **Зеркало:** [m3u.su](https://m3u.su)
> Исходный код: [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)
> Дополнительные сведения: [git.axenov.dev/IPTV/.profile](https://git.axenov.dev/IPTV/.profile)
## Использованный стек
* [docker compose](https://docs.docker.com/compose/)
* [php8.3-fpm](https://www.php.net/releases/8.3/ru.php)
* [php8.4-fpm](https://www.php.net/releases/8.4/ru.php)
* [nginx](https://nginx.org/ru/)
* [keydb](https://docs.keydb.dev/docs/)
* [iptvc](https://git.axenov.dev/IPTV/iptvc)
* bash
## Установка и настройка
```
git clone https://git.axenov.dev/IPTV/docker.git iptv
cp .env.example .env
git clone https://git.axenov.dev/IPTV/svc-main.git
cp svc-main/.env.example svc-main/.env
docker exec -it iptv-php composer i
docker compose up -d --build
wget -O - https://git.axenov.dev/IPTV/iptv-docker/raw/branch/master/iptv | bash -s - init
```
### Описание переменных окружения
##рипт [`iptv`](./iptv)
Это инструмент, который позволяет быстро управлять локальной средой `lis-docker`:
* инициализировать с нуля, как в примере выше;
* управлять образами и контейнерами среды.
> Управление средой не всегда удобно через команды git и docker, поэтому рекомендуется использовать `./iptv`.
Набери `./iptv help` для справки по использованию.
При доработке используй [линтер](https://www.shellcheck.net): `shellcheck -s bash iptv`
## Описание переменных окружения
* `IPTV_ENV` -- окружение для развёртывания: это имена директорий и/или префиксы имён конфигов, которые будут проброшены в контейнеры;
* `REDIS_UID`, `REDIS_GID` -- ID поьзователя/группы для разрешения владельца файлов и директорий keydb;
* `REDIS_PORT` -- порт keydb, который будет проброшен на хост.
* `KEYDB_UID`, `KEYDB_GID` -- ID пользователя/группы для разрешения владельца файлов и директорий keydb;
* `KEYDB_PORT` -- порт keydb, который будет проброшен на хост.
* `KEYDB_USERNAME`, `KEYDB_PASSWORD` -- реквизиты доступа к keydb;
* `CHECKER_DB` -- БД keydb для хранения кеша проверенных плейлистов;
* `CHECKER_TTL` -- время жизни кеша проверенных плейлистов;
* `CHECKER_WAIT` -- кол-во секунд между запусками iptvc;
* `CHECKER_INIFILE` -- путь к файлу списка плейлистов внутри контейнера;
* `CHECKER_TAGFILE` -- путь к файлу списка тегов внутри контейнера.
### Reverse-proxy
## Reverse-proxy
На сервере опционально можно настроить реверс-прокси до контейнера веб-сервиса, например, чтобы настроить доступ по доменному имени, изменить порт, подключить SSL-сертификаты или др.