diff --git a/README.md b/README.md
index 3ba4085..131339f 100644
--- a/README.md
+++ b/README.md
@@ -35,7 +35,7 @@ I'm too lazy to translate and support the whole project in ru and en, sorry, guy
---
-## Содержание
+## Документация
- [Как использовать этот список?](#howtouse)
- [Формат playlists.ini](#iniformat)
@@ -49,7 +49,6 @@ I'm too lazy to translate and support the whole project in ru and en, sorry, guy
---
-
## Как использовать этот список?
Чтобы подключить плейлист, нужно в настройках медиаплеера указать ссылку в следующем формате:
@@ -65,14 +64,10 @@ iptv.axenov.dev/? (устаревший формат)
Либо провернуть всё то же самое через браузер.
-
## Формат `playlists.ini`
```ini
-# В квадратных скобках - ID плейлиста в рамках этого
-# конфига (обязателен). Для удобства ввода с пульта,
-# для ID рекомендуется число или короткая строка без
-# пробелов и др. спецсимволов.
+# ID плейлиста в рамках этого конфига (обязательно)
[1]
# Название плейлиста (необязательно)
@@ -94,15 +89,15 @@ src = 'https://example.com/super-duper-playlist'
redirect = 1
```
-В описании плейлиста обязательны:
-
-* любой желаемый ID в квадратных скобках;
-* либо `pls`, либо `redirect` (если указаны оба, то `redirect` приоритетен).
+В описании любого плейлиста обязательны:
+* ID в квадратных скобках
+ > Для удобства ввода с пульта, рекомендуется задавать числом или короткой строкой без пробелов и др. спецсимволов.
+* параметр `pls` или `redirect`
+ > Если указаны оба, то `redirect` приоритетен.
Плейлистов с редиректами может быть сколько угодно, но они не должны быть цикличными.
-
## API
Можно получать состояние плейлистов из этого сборника при помощи метода:
@@ -139,16 +134,16 @@ GET https://iptv.axenov.dev//json
где:
-* `id` -- название плейлиста
-* `name` -- краткое описание из источника или от себя
+* `id` -- идентификатор плейлиста
+* `name` -- название плейлиста
* `url` -- короткая ссылка, которую можно использовать для добавления плейлиста в плеер
-* `desc` -- подробное описание плейлиста
+* `desc` -- краткое описание
* `pls` -- прямая ссылка на m3u/m3u8 плейлист
* `src` -- ссылка на источник, откуда взят плейлист
-* `status` -- признак доступности плейлиста (`online`, `timeout`, `offline`, `unknown`)
+* `status` -- статус плейлиста (`"online"|"timeout"|"offline"|"error"`)
* `encoding` -- данные о кодировке файла плейлиста
- * `name` -- название кодировки (на данный момент определяются только `UTF-8` или `Windows-1251`)
- * `alert` -- признак отличия кодировки от `UTF-8`, названия каналов сконвертированы в `UTF-8`
+ * `name` -- название кодировки (`"UTF-8"|"Windows-1251"`)
+ * `alert` -- признак отличия кодировки от `UTF-8`, названия каналов сконвертированы в `UTF-8`, могут быть ошибки в отображении
* `channels` -- массив названий каналов
* `count` -- количество каналов >= 0
@@ -174,27 +169,72 @@ GET https://iptv.axenov.dev//json
где:
-* `id` -- название плейлиста
-* `name` -- краткое описание из источника или от себя
+* `id` -- идентификатор плейлиста
+* `name` -- название плейлиста
* `url` -- короткая ссылка, которую можно использовать для добавления плейлиста в плеер
-* `desc` -- подробное описание плейлиста
+* `desc` -- краткое описание
* `pls` -- прямая ссылка на m3u/m3u8 плейлист
* `src` -- ссылка на источник, откуда взят плейлист
-* `status` -- признак доступности плейлиста (`online`, `timeout`, `offline`, `error`)
-* `error` -- данные о кодировке файла плейлиста
+* `status` -- статус плейлиста (`"online"|"timeout"|"offline"|"error"`)
+* `error` -- данные об ошибке при проверке плейлиста
* `code` -- [код ошибки curl](https://curl.se/libcurl/c/libcurl-errors.html)
* `message` -- текст ошибки curl
-
## Развёртывание проекта
-1. Выполнить `cp .env.example .env`, установить необходимые параметры
+1. Выполнить `cp src/.env.example src/.env`, установить необходимые параметры
2. Выполнить `docker compose up -d --build`
-3. Открыть `https://:8080`
+3. Открыть `http://:8080`
+
+Если на сервере, на котором запускаются контейнеры, стоит apache2, то его можно использовать как реверс прокси:
+
+Для этого следует:
+
+```
+$ sudo a2enmod proxy proxy_http proxy_balancer lbmethod_byrequests
+$ sudo nano /etc/apache2/sites-available/iptv.conf
+```
+```apacheconf
+# example.com заменить на свой адрес
+
+
+ ServerName example.com
+ # обязательно без SSL:
+ ProxyPreserveHost On
+ ProxyPass / http://localhost:8080/
+ ProxyPassReverse / http://localhost:8080/
+ # обязательно для SSL:
+ # RewriteEngine on
+ # RewriteCond %{SERVER_NAME} =example.com
+ # RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
+
+
+# обязательно для SSL:
+#
+#
+# ServerName example.com
+# ProxyPreserveHost On
+# ProxyPass / http://localhost:8080/
+# ProxyPassReverse / http://localhost:8080/
+# сертификаты можно получить через certbot
+# SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
+# SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
+# Include /etc/letsencrypt/options-ssl-apache.conf
+#
+#
+
+# Ctrl+O
+# Enter
+# Ctrl+X
+```
+```shell
+$ sudo a2ensite iptv
+$ # для подгрузки включенных модулей выполнить именно restart, а не reload
+$ sudo systemctl restart apache2
+```
-
## Дополнительные инструменты (`./tools`)
### `download-all.sh`
@@ -349,7 +389,6 @@ http://live02-cdn.tv.ti.ru:80/dtv/id376_NBN_SG--Fox_HD/04/plst.m3u8
5. Вручную: добавить плейлист в IPTV-плеер и перепроверить результат.
-
## Использованный стек
* [docker compose](https://docs.docker.com/compose/)
@@ -360,7 +399,6 @@ http://live02-cdn.tv.ti.ru:80/dtv/id376_NBN_SG--Fox_HD/04/plst.m3u8
* bash
-
## Лицензия
[The MIT License](LICENSE)