diff --git a/docs/images/other/phone/grandstream_01.png b/docs/images/other/phone/grandstream_01.png
new file mode 100644
index 0000000..643059b
Binary files /dev/null and b/docs/images/other/phone/grandstream_01.png differ
diff --git a/docs/images/other/phone/grandstream_02.png b/docs/images/other/phone/grandstream_02.png
new file mode 100644
index 0000000..6cf9e8e
Binary files /dev/null and b/docs/images/other/phone/grandstream_02.png differ
diff --git a/docs/images/other/phone/grandstream_03.png b/docs/images/other/phone/grandstream_03.png
new file mode 100644
index 0000000..742331e
Binary files /dev/null and b/docs/images/other/phone/grandstream_03.png differ
diff --git a/docs/images/other/phone/grandstream_04.png b/docs/images/other/phone/grandstream_04.png
new file mode 100644
index 0000000..46f775f
Binary files /dev/null and b/docs/images/other/phone/grandstream_04.png differ
diff --git a/docs/images/other/phone/grandstream_05.png b/docs/images/other/phone/grandstream_05.png
new file mode 100644
index 0000000..785a2f9
Binary files /dev/null and b/docs/images/other/phone/grandstream_05.png differ
diff --git a/docs/images/other/phone/grandstream_06.png b/docs/images/other/phone/grandstream_06.png
new file mode 100644
index 0000000..0581e08
Binary files /dev/null and b/docs/images/other/phone/grandstream_06.png differ
diff --git a/docs/images/other/phone/grandstream_07.png b/docs/images/other/phone/grandstream_07.png
new file mode 100644
index 0000000..a7bfdc4
Binary files /dev/null and b/docs/images/other/phone/grandstream_07.png differ
diff --git a/docs/other/chrome.md b/docs/other/chrome.md
index 79bdb86..80b5e19 100755
--- a/docs/other/chrome.md
+++ b/docs/other/chrome.md
@@ -8,12 +8,3 @@ Google Chrome
2. далее для функции Hardware Media Key Handling вместо значения «`Default`» устанавливаем «`Disabled`
3. перезапускаем Chrome, чтобы активировать изменение.
-
-
-report - click this
-
-cpu_adam ............... [NO] ....... [OKAY]
-cpu_adagrad ............ [NO] ....... [OKAY]
-fused_adam ............. [NO] ....... [OKAY]
-
-
\ No newline at end of file
diff --git a/docs/other/cloudflare-cname.md b/docs/other/cloudflare-cname.md
new file mode 100755
index 0000000..0a4b94c
--- /dev/null
+++ b/docs/other/cloudflare-cname.md
@@ -0,0 +1,24 @@
+# Cоздание новой DNS-записи CNAME на Cloudflare
+
+----------
+
+Я рекомендую получить собственное доменное имя, указывающее на IP-адрес вашего дома в глобальной сети. Частное доменное имя через reg.ru будет стоить 850 рублей в год. Есть несколько причин, почему я рекомендую это:
+
+- В моем тестировании я никогда не мог заставить некоторые контейнеры докеров работать в качестве подкаталога (даже на моем собственном частном доменном имени) за обратным прокси-сервером Traefik. В таких ситуациях вам останется создать несколько динамических субдоменов DNS, чтобы разместить все ваши службы. Большинство бесплатных динамических DNS-сервисов ограничивают количество субдоменов, которые вы можете создать.
+- Afraid DNS не является одним из поддерживаемых поставщиков wildcard сертификатов. Хотя DuckDNS указан как поддерживаемый, он еще не тестировался.
+
+В моей настройке использую собственное доменное имя, все мои приложения в качестве отдельных хостов и Traefik 2.9 с сертификатами Wildcard. Мой провайдер DNS — Cloudflare, который [протестирован и подтвержден](https://doc.traefik.io/traefik/v1.7/configuration/acme/#wildcard-domains) для работы с подстановочными сертификатами Traefik Let’s Encrypt. Если у вас есть собственное доменное имя, а ваш провайдер DNS не указан в списке поддерживаемых, то я рекомендую перенести ваш DNS на Cloudflare, который удивительно быстр и бесплатен.
+
+В Cloudflare вы должны указать свой корневой домен (example.com) на свой IP-адрес WAN. Затем добавьте CNAME с подстановочным знаком (*.example.com) или отдельные субдомены, указывающие на ваш корневой домен (@ для хоста), как показано ниже (для этого не требуется платная учетная запись).
+
+[![Cloudflare Dns Entries](https://www.smarthomebeginner.com/images/2018/05/cloudflare-dns-records-screenshot-740x495.png "Traefik Tutorial: Traefik Reverse Proxy with LetsEncrypt for Docker Media Server 3")](https://www.smarthomebeginner.com/images/2018/05/cloudflare-dns-records-screenshot.png)
+
+Cloudflare Dns Entries For Traefik Dns Challenge
+
+In addition to creating the DNS records, you will have to adjust Cloudflares SSL settings to avoid indefinite redirects. Go to **Crypto** settings for the domain and change **SSL** to **Full** as shown below.
+
+[![Cloudflare &Quot;Full&Quot; Ssl](https://www.smarthomebeginner.com/images/2018/05/cloudflare-crypto-full-ssl-740x358.png "Traefik Tutorial: Traefik Reverse Proxy with LetsEncrypt for Docker Media Server 4")](https://www.smarthomebeginner.com/images/2018/05/cloudflare-crypto-full-ssl.png)
+
+Cloudflare “Full” Ssl
+
+Note that you may have to wait for a few minutes for the DNS entries to propagate. If you run Traefik before that, DNS challenge may fail and no SSL certificate will be generated. If you keep trying, [Let’s Encrypt may ban you temporarily](https://letsencrypt.org/docs/rate-limits/) for reaching the request limits. To counter this I have added a 5 min wait in the traefik configuration below but you may need longer. Until validation is complete, Traefik’s default certificate will be used and your browser will throw a warning.
\ No newline at end of file
diff --git a/docs/other/marvel.md b/docs/other/marvel.md
new file mode 100755
index 0000000..7d2a654
--- /dev/null
+++ b/docs/other/marvel.md
@@ -0,0 +1,53 @@
+Оптимальный вариант просмотра (в порядке выхода)
+I. «Сага Бесконечности»
+
+Первая фаза
+1. «Железный человек» (2008)
+2. «Невероятный Халк» (2008)
+3. «Железный человек 2» (2010)
+4. «Тор» (2011)
+5. «Первый мститель» (2011)
+6. «Мстители» (2012)
+
+Вторая фаза
+7. «Железный человек 3» (2013)
+8. «Тор 2: Царство тьмы» (2013)
+9. «Первый мститель: Другая война» (2014)
+10. «Стражи Галактики» (2014)
+11. «Мстители: Эра Альтрона» (2015)
+12. «Человек-муравей» (2015)
+
+Третья фаза
+13. «Первый мститель: Противостояние» (2016)
+14. «Доктор Стрэндж» (2016)
+15. «Стражи Галактики. Часть 2» (2017)
+16. «Человек-паук: Возвращение домой» (2017)
+17. «Тор: Рагнарёк» (2017)
+18. «Черная Пантера» (2018)
+19. «Мстители: Война бесконечности» (2018)
+20. «Человек-муравей и Оса» (2018)
+21. «Капитан Марвел» (2019)
+22. «Мстители: Финал» (2019)
+23. «Человек-паук: Вдали от дома» (2019)
+
+«Сага Мультивселенной»
+Четвертая фаза
+24. «Ванда/Вижн» (2021), сериал
+25. «Сокол и Зимний Солдат» (2021), сериал
+26. «Локи», 1-й сезон (2021), сериал
+27. «Черная Вдова» (2021)
+28. «Что, если…?», 1-й сезон (2021), мультсериал
+29. «Шан-Чи и легенда десяти колец» (2021)
+30. «Вечные» (2021)
+31. «Соколиный Глаз» (2021), сериал
+32. «Человек-паук: Нет пути домой» (2021)
+33. «Лунный рыцарь» (2022), сериал
+34. «Доктор Стрэндж: В мультивселенной безумия» (2022)
+35. «Мисс Марвел» (2022), сериал
+36. «Тор: Любовь и гром» (2022)
+37. «Я есть Грут» (2022), мини-мультсериал
+38. «Женщина-Халк: Адвокат» (2022), сериал
+39. «Ночной оборотень» (2022), спешел
+40. «Черная Пантера: Ваканда навеки» (2022)
+41. «Стражи Галактики: Праздничный спецвыпуск» (2022), спешел
+42. «Человек-муравей и Оса: Квантомания» (2023)
\ No newline at end of file
diff --git a/docs/other/phone/grandstream/provisioning.md b/docs/other/phone/grandstream/provisioning.md
new file mode 100644
index 0000000..4bc3542
--- /dev/null
+++ b/docs/other/phone/grandstream/provisioning.md
@@ -0,0 +1,111 @@
+# Настройка телефонов через TFTP сервер
+
+Опустим настройку самого TFTP сервера, в сети много есть информации по этому вопросу.
+
+## Правка начального шаблона
+
+Для начала, нам потребуется получить файл шаблона и немного его отредактировать.
+
+Скачать можно c [облака](https://disk.yandex.ru/d/UJJK2Ttm1amJmg).
+
+| **Параметры** | **Описание** |
+| --- | --- |
+| P47 | адрес сервера Астериск |
+| P34 | пароль авторизации |
+| P237 | сервер и папка, откуда берется конфиг |
+| P30 | ntp сервер для синхронизации времени |
+| P64 | часовой пояс |
+| P2 | пароль на админку |
+| P192 | сервер и папка, откуда берется обновление прошивки |
+
+сохраняем файл.
+
+## Заполнение файла с настройками
+
+Чтобы не вводить номера телефонов в каждый файл, существует возможность по созданию файла с настройками.
+
+Скачать файл можно [тут](https://disk.yandex.ru/d/S7XKjHypTigfyg). В файле заполняем:
+
+| Параметр | Значение |
+| --- | --- |
+| `MAC` | MAC адрес |
+| `User_ID_1` | номер |
+| `Password_1` | пароль |
+| `Auth_ID_1` | номер |
+| `SIP_Name_1` | номер |
+
+Файл сохраняем в формате `scv`, разделители **запятые**. Он нам потребуется дальше.
+
+## Создание конфиг файлов
+
+Для создания конфиг файлов используется программа [GSXmlGenerator_3.5](https://disk.yandex.ru/d/I3HvTLTLXHv4sA)
+
+![](../../../images/other/phone/grandstream_01.png)
+
+Запускаем программу, в ней:
+
+| Параметр | Значение |
+| --- | --- |
+| Configuration Template | путь где находится шаблон |
+| Output Path | путь до папки, куда будут сохраняться готовые файлы |
+| Use CSV File | путь до файла csv с настройками |
+
+После нажимаем на **Run with CSV as Input**
+
+## Папка на tftp сервере
+
+Создадим папку на tftp сервере, откуда телефон будет брать конфиг файл.
+
+К примеру это будет папка `test`. Далее в папку следует закачать:
+
+- файл прошивки
+- 3 файла звонков (не обязательно)
+- файлы конфигов
+
+Файлы можно взять по [ссылке](https://disk.yandex.ru/d/4eji_swJJdshNQ)
+
+В итоге получится такое содержание папки:
+
+![](../../../images/other/phone/grandstream_02.png)
+
+## Настройка на телефоне
+
+Есть 2 способа настройки - ручной и автоматический
+
+=== "Автоматический"
+
+ Способ через конфигурирование DHCP и прописывание 66 опции.
+
+ Открываем оснастку DHCP сервера и идем в параметры сервера. Далее ПКМ на центральной части - Настроить параметры:
+
+ ![](../../../images/other/phone/grandstream_03.png)
+
+ Ищем 066 параметр: 066 Имя узла сервера загрузки и прописываем путь до папки с конфигами:
+
+ ![](../../../images/other/phone/grandstream_04.png)
+
+ Нажимаем ОК.
+
+ Теперь при включении телефона, телефон сам получит настройки подключения и сам обновит firmware
+
+=== "Ручной"
+
+ Включаем телефон и заходим на web-страницу администрирования:
+
+ Стандартный логин/пароль - `admin`/`admin`
+
+ Далее переходим на вкладку **Maintenance** и выбираем в выпадающем списке **Upgrade and Provisioning**:
+
+ ![](../../../images/other/phone/grandstream_05.png)
+
+ На открывшейся странице ищем раздел **Config**. Выбираем метод скачивание через tftp и указываем путь до нашего сервера.
+
+ Внизу нажимаем **Save and Apply**.
+
+ ![](../../../images/other/phone/grandstream_06.png)
+
+ После сохранения вверху **Reboot**
+
+ ![](../../../images/other/phone/grandstream_07.png)
+
+ После перезагрузки, телефон сам скачает обновление с сервера.
\ No newline at end of file
diff --git a/docs/other/prometheus-grafana.md b/docs/other/prometheus-grafana.md
new file mode 100755
index 0000000..4b8d999
--- /dev/null
+++ b/docs/other/prometheus-grafana.md
@@ -0,0 +1,267 @@
+# Как запустить Prometheus и Grafana используя Docker Compose
+
+----------
+
+Docker Compose используется для запуска нескольких контейнеров как одной службы. Если у вас есть приложение/стек, требующий разных служб, docker compose позволяет создать один файл, который запустит все контейнеры как одну службу и избавит вас от необходимости запускать их по отдельности. Также можно запускать по одной службе за раз с помощью docker compose. Сегодня мы рассмотрим, как запустить Prometheus и Grafana с помощью docker compose.
+
+Чтобы иметь возможность использовать Docker Compose, в вашей системе должны быть установлены как Docker, так и Docker Compose.
+
+Prometheus — это база данных временных рядов, использующая экспортеры для мониторинга различных серверов/сервисов, а Grafana — один из самых популярных инструментов мониторинга. В сочетании с Prometheus, Grafana предлагает мощный инструмент визуализации данных временных рядов.
+
+Чтобы запустить Prometheus и Grafana с помощью docker compose, нам нужно создать файл docker compose, определяющий отдельные сервисы (Prometheus и Grafana), используемые образы, запущенные порты и все остальное необходимое.
+
+## Использование постоянных томов с Docker Compose
+
+Нам нужно учитывать тот факт, что для Grafana требуется файл конфигурации и файл источника данных. Promemetheus также требует файла конфигурации. Для этого мы будем использовать смонтированные тома (постоянные тома), чтобы можно было легко вносить изменения в файлы, когда это необходимо.
+
+Создайте рабочий каталог с именем _prometheus-grafana_ и внутри него создайте каталоги для хранения файлов конфигурации Prometheus и Grafana.
+
+mkdir -p ~/prometheus-grafana/{grafana,prometheus}
+
+Теперь перейдите в каталог _grafana_ и создайте файлы конфигурации. Файл конфигурации **Grafana** по умолчанию предоставляется в официальном репозитории Github. Создайте файл с именем _grafana.ini,_ скопируйте и вставьте конфигурацию grafana по умолчанию в этот файл и сохраните.
+
+Контент для конфигурации Grafana по умолчанию можно найти по _адресу https://github.com/grafana/grafana/blob/master/conf/defaults.ini_ . Обратите внимание, что вы можете вносить изменения в файл конфигурации по умолчанию в соответствии с вашими потребностями.
+
+wget https://raw.githubusercontent.com/grafana/grafana/main/conf/defaults.ini -O ~/prometheus-grafana/grafana/grafana.ini vim ~/prometheus-grafana/grafana/grafana.ini
+
+После этого перейдите в папку Prometheus и создайте файл конфигурации prometheus, чтобы указать Prometheus, где брать метрики. Поскольку у меня нет отдельного сервера для мониторинга, отображаемые метрики относятся к самому серверу prometheus (localhost:9090)
+
+nano ~/prometheus-grafana/prometheus/prometheus.yml
+
+global:
+
+scrape_interval: 15s
+
+scrape_timeout: 10s
+
+evaluation_interval: 15s
+
+alerting:
+
+alertmanagers:
+
+- static_configs:
+
+- targets: []
+
+scheme: http
+
+timeout: 10s
+
+api_version: v1
+
+scrape_configs:
+
+- job_name: prometheus
+
+honor_timestamps: true
+
+scrape_interval: 15s
+
+scrape_timeout: 10s
+
+metrics_path: /metrics
+
+scheme: http
+
+static_configs:
+
+- targets:
+
+- localhost:9090
+
+Вы можете открыть и изменить файл в соответствии с вашим вариантом использования.
+
+nano ~/prometheus-grafana/prometheus/prometheus.yml
+
+На данный момент Grafana не показывает, откуда брать данные. Нам нужно сказать ему, чтобы он достался от Прометея. Создайте файл с именем _datasource.yml_ в каталоге grafana.
+
+nano ~/prometheus-grafana/grafana/datasource.yml
+
+apiVersion: 1
+
+datasources:
+
+- name: Prometheus
+
+type: prometheus
+
+url: http://localhost:9090
+
+isDefault: true
+
+access: proxy
+
+editable: true
+
+Дальнейшая модификация может быть выполнена:
+
+nano ~/prometheus-grafana/grafana/datasource.yml
+
+К настоящему времени у нас готовы все тома. Давайте продолжим, чтобы создать файл docker-compose.
+
+nano ~/prometheus-grafana/docker-compose.yml
+
+Содержимое должно выглядеть так, как показано ниже. Убедитесь, что вы изменили путь к файлам конфигурации в соответствии с путями в вашей системе.
+
+version: "3.7"
+
+networks:
+
+direct_net:
+
+name: direct_net
+
+driver: bridge
+
+ipam:
+
+config:
+
+- subnet: 192.168.200.0/24
+
+services:
+
+prometheus:
+
+user: "$PUID:$PGID"
+
+container_name: prometheus
+
+image: prom/prometheus:latest
+
+restart: always
+
+networks:
+
+- direct_net
+
+ulimits:
+
+nofile:
+
+soft: 200000
+
+hard: 200000
+
+command:
+
+--config.file=/data/prometheus.yml
+
+--storage.tsdb.path=/data
+
+--storage.tsdb.retention.time=180d
+
+--web.enable-admin-api
+
+volumes:
+
+- $DOCKER_APP/prometheus:/data
+
+- /etc/timezone:/etc/timezone:ro
+
+- /etc/localtime:/etc/localtime:ro
+
+grafana:
+
+user: "$PUID:$PGID"
+
+container_name: grafana
+
+image: grafana/grafana:latest
+
+restart: always
+
+networks:
+
+- direct_net
+
+security_opt:
+
+- no-new-privileges:true
+
+environment:
+
+GF_INSTALL_PLUGINS: "grafana-clock-panel,grafana-simple-json-datasource,grafana-worldmap-panel,grafana-piechart-panel"
+
+volumes:
+
+- ~/prometheus-grafana/grafana/data:/var/lib/grafana
+
+- /etc/timezone:/etc/timezone:ro
+
+- /etc/localtime:/etc/localtime:ro
+
+Если вам нужно указать конкретную версию Prometheus или Grafana, вы можете добавить номер версии, чтобы он выглядел так:
+
+services:
+
+prometheus:
+
+image: prom/prometheus:#get tag https://hub.docker.com/r/prom/prometheus/tags
+
+---
+
+grafana:
+
+image: grafana/grafana:# Tags https://hub.docker.com/r/grafana/grafana/tags
+
+Также целью создания стека Prometheus/Grafana является мониторинг других сервисов, работающих, возможно, на разных серверах. Prometheus использует разные экспортеры для предоставления метрик, связанных с аппаратным обеспечением и ядром, в зависимости от отслеживаемого вами сервиса, наиболее распространенным из которых является node-exporter. Экспортеры устанавливаются на хостах, за которыми нужно следить.
+
+Поскольку у меня нет другого внешнего сервера, я собираюсь установить экспортер узлов на локальном компьютере. Для этого в конец файла _~/prometheus-grafana/docker-compose.yml_ добавляем:
+
+node-exporter:
+
+image: prom/node-exporter:latest
+
+container_name: monitoring_node_exporter
+
+restart: unless-stopped
+
+expose:
+
+- 9100
+
+Также я должен обновить файл prometheus.yml, чтобы добавить node-exporter в качестве цели.
+
+static_configs:
+
+- targets: ['localhost:9090','node-exporter:9100']
+
+Или формат:
+
+static_configs:
+
+- targets:
+
+- localhost:9090
+
+- node-exporter:9100
+
+Если у вас есть другие экспортеры из других сервисов, вы можете добавить в массив по подобию.
+
+### Запуск контейнеров с помощью docker-compose
+
+Перейдите в каталог данных:
+
+cd ~/prometheus-grafana
+
+Теперь все готово для запуска наших контейнеров. Чтобы запустить контейнеры, выполните команду, как показано ниже:
+
+docker compose up -d
+
+Проверте запуск контейнеров:
+
+docker compose ps
+
+Получите доступ к Prometheus и grafana из браузера, используя порты по умолчанию. Для Прометея мы используем _`http://serverip_or_hostname:9090`_. Если вы перейдете к **status** -> target , вы сможете увидеть статус своих целей, как показано ниже **_:_**
+
+![](https://techviewleo.com/wp-content/uploads/2021/03/How-to-run-prometheus-and-grafana-with-docker-compose.png?ezimgfmt=rs:640x143/rscb7/ng:webp/ngcb7)
+
+Для Grafana зайдите `http://serverip_or_hostname:3000`и войдите в систему, используя имя пользователя и пароль, указанные в `.ini` файле конфигурации. Учетные данные по умолчанию: _admin:admin_
+
+![](https://techviewleo.com/wp-content/uploads/2021/03/How-to-run-prometheus-and-grafana-with-docker-compose-1.png?ezimgfmt=rs:640x214/rscb7/ng:webp/ngcb7)
+
+Теперь вы можете продолжить и создать информационную панель для мониторинга. Одна вещь, которую я отметил, заключается в том, что я не мог получить метрики для использования при создании графиков, когда «доступ» в разделе «HTTP» источников данных был установлен на «сервер». Мне пришлось установить его как «браузер», как показано ниже:
+
+![](https://techviewleo.com/wp-content/uploads/2021/03/How-to-run-prometheus-and-grafana-with-docker-compose-4.png?ezimgfmt=rs:640x326/rscb7/ng:webp/ngcb7)
\ No newline at end of file
diff --git a/mkdocs.yml b/mkdocs.yml
index 9e0de35..3550ff4 100755
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -37,7 +37,7 @@ nav:
- Монтирование CIFS: ubuntu/mount-cifs.md
- Proxmox:
- CT Template: proxmox/ct-template.md
- - Помойка:
+ - Другое:
- SSL для сайта: other/ssl-for-site.md
- Ubuntu bash aliases: other/ubuntu-bash-aliases.md
- ТСД:
@@ -60,6 +60,9 @@ nav:
- VBA Отправка почты: other/office/excel/vba-send-email.md
- VBA Прогресс бар: other/office/excel/vba-progress-bar.md
- VBA Удаление пароля: other/office/excel/vba-remove-pass.md
+ - Телефоны:
+ - Grandstream:
+ - Provisioning через TFTP: other/phone/grandstream/provisioning.md
- Сеть:
- Mikrotik: