diff --git a/README.md b/README.md
index 8713bef..e1f0949 100644
--- a/README.md
+++ b/README.md
@@ -19,53 +19,38 @@
Список проверяется и обновляется мной вручную.
Гарантию работоспособности никто не даёт.
-## English description
-
-> **Mirrored repo**: https://git.axenov.dev/anthony/iptv
-
-This repo contains IPTV-playlists free to use with your media-player.
-
-Most of them are in russian or CIS languages but you can find something interesting here for yourself.
-
-Also there are some handy tools to make your own playlist or find channels you want in playlists listed here.
-
-You can use this repo according to [LICENSE](LICENSE) conditions.
-
-I'm too lazy to translate and support the whole project in ru and en, sorry, guys.
+* [Как использовать этот список?](#как-использовать-этот-список)
+* [Формат `playlists.ini`](#формат-playlistsini)
+* [API](#api)
+* [Развёртывание проекта](#развёртывание-проекта)
+ * [Apache](#apache)
+ * [Nginx](#nginx)
+* [Расширенные возможности](#расширенные-возможности)
+ * [Собственный код html/css/js](#собственный-код-htmlcssjs-)
+ * [Очистка кеша twig](#очистка-кеша-twig)
+ * [Скачать все плейлисты](#скачать-все-плейлисты)
+ * [Проверить каналы плейлиста](#проверить-каналы-плейлиста)
+ * [Поиск каналов в одном плейлисте](#поиск-каналов-в-одном-плейлисте)
+ * [Поиск каналов во всех плейлистах](#поиск-каналов-во-всех-плейлистах)
+ * [Создать плейлист из нужных каналов](#создать-плейлист-из-нужных-каналов)
+* [Как создать свой собственный плейлист?](#как-создать-свой-собственный-плейлист)
+* [Использованный стек](#использованный-стек)
+* [Лицензия](#лицензия)
---
-## Документация
-
-- [Как использовать этот список?](#howtouse)
-- [Формат playlists.ini](#iniformat)
-- [API](#api)
-- [Развёртывание проекта](#deploy)
-- [Расширенные возможности](#tools)
-- [Как создать свой собственный плейлист](#howtomake)
-- [Использованный стек](#stack)
-- [Лицензия](#license)
-
----
-
-
-
## Как использовать этот список?
Чтобы подключить плейлист, нужно в настройках медиаплеера указать ссылку в следующем формате:
```
iptv.axenov.dev/
-iptv.axenov.dev? (устаревший формат)
-iptv.axenov.dev/? (устаревший формат)
```
где `` - один из идентификаторов, указанных в [`playlists.ini`](playlists.ini) в квадратных скобках.
Либо провернуть всё то же самое через браузер.
-
-
## Формат `playlists.ini`
```ini
@@ -99,8 +84,6 @@ redirect = 1
Плейлистов с редиректами может быть сколько угодно, но они не должны быть цикличными.
-
-
## API
Можно получать состояние плейлистов из этого сборника при помощи метода:
@@ -184,8 +167,6 @@ GET https://iptv.axenov.dev//json
* `code` -- [код ошибки curl](https://curl.se/libcurl/c/libcurl-errors.html)
* `message` -- текст ошибки curl
-
-
## Развёртывание проекта
Локально достаточно выполнить `./iptv init && ./iptv open`.
@@ -193,13 +174,16 @@ GET https://iptv.axenov.dev//json
На сервере опционально можно настроить реверс-прокси до контейнера, например, чтобы настроить доступ по доменному
имени, изменить порт, подключить SSL-сертификаты или др.
+### Apache
+
Если на сервере, на котором запускаются контейнеры, стоит apache2, то, чтобы использовать его как реверс-прокси, нужно:
```
$ sudo a2enmod proxy proxy_http proxy_balancer lbmethod_byrequests
$ sudo nano /etc/apache2/sites-available/iptv.conf
```
-```apacheconf
+
+```
# example.com заменить на свой адрес
@@ -232,13 +216,43 @@ $ sudo nano /etc/apache2/sites-available/iptv.conf
# Enter
# Ctrl+X
```
+
```shell
$ sudo a2ensite iptv
$ # для подгрузки включенных модулей выполнить именно restart, а не reload
$ sudo systemctl restart apache2
```
-
+### Nginx
+
+```
+$ sudo nano /etc/nginx/sites-available/iptv.conf
+```
+
+```
+# example.com заменить на свой адрес
+
+server {
+ listen 80;
+ listen [::]:80;
+ server_name example.com;
+ access_log /var/log/nginx/access.log;
+ error_log /var/log/nginx/error.log;
+ location / {
+ proxy_pass http://127.0.0.1:8080;
+ }
+}
+
+# Ctrl+O
+# Enter
+# Ctrl+X
+```
+
+```shell
+$ sudo ln -s /etc/nginx/sites-available/iptv.conf /etc/nginx/sites-enabled/iptv.conf
+$ sudo systemctl reload apache2
+```
+
## Расширенные возможности
### Собственный код html/css/js
@@ -312,7 +326,6 @@ cd src && composer clear-views
Для сохранения в файл следует добавить `> myfile.m3u` или `>> myfile.m3u` в конец команды.
-
## Как создать свой собственный плейлист?
1. Скачать все плейлисты, указанные в [`playlists.ini`](playlists.ini):
@@ -334,19 +347,15 @@ cd src && composer clear-views
4. Вручную: удалить нерабочие, мусорные и продублировавшиеся (по ссылкам) каналы.
5. Вручную: добавить плейлист в IPTV-плеер и перепроверить результат.
-
-
## Использованный стек
* [docker compose](https://docs.docker.com/compose/)
-* [php8.1-fpm](https://www.php.net/releases/8.1/en.php)
-* [FlightPHP](https://flightphp.com/learn)
+* [php8.3-fpm](https://www.php.net/releases/8.3/ru.php)
+* [SlimPHP v4](https://www.slimframework.com/docs/v4/)
* [Bootstrap 5](https://getbootstrap.com/docs/5.0/getting-started/introduction/)
* [nginx](https://nginx.org/ru/)
* bash
-
-
## Лицензия
[The MIT License](LICENSE)