Jekyll2022-01-04T19:26:35+00:00https://sybdata.github.io/blog/feed.xmlSybDataSoftware is like sex: it's better when it's free.SybDataКак смотреть GlanzTV в браузере через Ott-play2021-03-20T23:45:30+00:002021-03-20T23:45:30+00:00https://sybdata.github.io/blog/ottg/ott-play<h2 id="как-смотреть-iptv-в-браузере-через-ott-play">Как смотреть IPTV в браузере через Ott-play</h2>
<h3 id="ott-play-by-alex--мультиплатформенный-плеер-iptv-доступный-на-телевизорах-в-браузере-на-тв-приставках-и-на-мобильных-устройствах-просмотр-каналов-не-требует-регистрации-и-авторизации-необходим-только-ввод-секретного-ключа-который-можно-получить-у-провайдера">Ott-play (by Alex) — мультиплатформенный плеер IPTV, доступный на телевизорах, в браузере, на ТВ-приставках и на мобильных устройствах. Просмотр каналов не требует регистрации и авторизации, необходим только ввод секретного ключа, который можно получить у провайдера.</h3>
<p>На текущий момент в Ott-play реализована поддержка следующих провайдеров:</p>
<ul>
<li>
<h3 id="glanztv">GlanzTV,</h3>
</li>
<li>Gomel-Sat,</li>
<li>EDEM,</li>
<li>IpStream,</li>
<li>OTT CLUB,</li>
<li>AntiFriz,</li>
<li>Shura TV,</li>
<li>TV.TЕAМ,</li>
<li>TV Dosug
и некоторых других.</li>
</ul>
<h2 id="порядок-действий">Порядок действий</h2>
<h3 id="для-запуска-просмотра-iptv-в-браузере-выполните-следующие-действия">Для запуска просмотра IPTV в браузере выполните следующие действия:</h3>
<h3 id="1-получите-ключ-доступа-в-личном-кабинете-glanztv">1. Получите ключ доступа в личном кабинете GlanzTV.</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/111882856-2143a080-89b8-11eb-8b81-c36700cbce39.png" alt="2021-03-20" /></p>
<h3 id="2-откройте-браузер-на-вашем-устройстве-и-перейдите-по-соответствующему-адресу">2. Откройте браузер на вашем устройстве и перейдите по соответствующему адресу:</h3>
<ul>
<li>исходим из того что вы абонент GlanzTV — <a href="http://ott-play.com/ottg/">перейти</a>
<h3 id="3-нажмите-справа-вверху-на-кнопку-шестерёнку-для-вызова-диалогового-окна-с-настройками">3. Нажмите справа вверху на кнопку-шестерёнку для вызова диалогового окна с настройками:</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/111883615-bfd20080-89bc-11eb-8a22-cd9e5d93f0c7.PNG" alt="IMG_0049" /></p>
<h3 id="4-внесите-в-диалоговом-окне-логин-и-пароль-которые-вы-получили-в-личном-кабинете-вашего-провайдера-в-п1">4. Внесите в диалоговом окне логин и пароль, которые вы получили в личном кабинете вашего провайдера в п.1.</h3>
<h3 id="5-задайте-по-желанию-параметры-внешнего-вида-плеера-положение-плеера-размер-плеера-размер-шрифтов-строк-в-списке-пиконы-в-списке-автостарт">5. Задайте по желанию параметры внешнего вида плеера (положение плеера, размер плеера, размер шрифтов, строк в списке, пиконы в списке, автостарт).</h3>
<h3 id="6-нажмите-на-кнопку-установить">6. Нажмите на кнопку «Установить».</h3>
<h3 id="7-выберите-желаемый-телеканал-в-списке-для-начала-просмотра">7. Выберите желаемый телеканал в списке для начала просмотра.</h3>
<h3 id="8-enjoy">8. enjoy!</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/111883966-c82b3b00-89be-11eb-9df3-9154b5ee7d67.PNG" alt="IMG_0051" />
<img src="https://user-images.githubusercontent.com/24189833/111883994-f3ae2580-89be-11eb-862c-2361e611e4ab.PNG" alt="IMG_0050" /></p>
</li>
</ul>SybDataКак смотреть IPTV в браузере через Ott-playDownload2020-10-01T22:50:30+00:002020-10-01T22:50:30+00:00https://sybdata.github.io/blog/netzwerk/download<p><img src="https://user-images.githubusercontent.com/24189833/103466928-fd25db00-4d49-11eb-8af6-8b9c007851bb.png" alt="tvz" /></p>
<h2 id="televizo-версия-18994">Televizo Версия: 1.8.9.94</h2>
<p>Версия: 1.8.9.94
Краткое описание: от 20.03.2021
Список изменений:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Исправлены зависания некоторых видео;
Улучшена поддержка плейлистов;
Исправления ошибок после большого обновления.
</code></pre></div></div>
<h3 id="скачать-televizo_18994apk">Скачать: <a href="https://github.com/sybdata/blog/raw/master/docs/Televizo_1.8.9.94.apk">Televizo_1.8.9.94.apk</a></h3>
<h2 id="televizo-версия-1894">Televizo Версия: 1.8.9.4</h2>
<p>Краткое описание: от 13.12.2020
Список изменений:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Добавлена опция назначения программы передач для каждого плейлиста;
Добавлена возможность активировать Premium на 1 час бесплатно;
Добавлена поддержка "http-referer" в плейлисте;
Добавлены подтверждения удаления плейлиста и программы передач;
Исправлены ошибки в программе передач;
Исправлены ошибки в User-Agent;
Другие исправления и улучшения.
</code></pre></div></div>
<h3 id="скачать-televizo_1894apk">Скачать: <a href="https://github.com/sybdata/blog/raw/master/docs/Televizo_1.8.9.4.apk">Televizo_1.8.9.4.apk</a></h3>
<p>Версия: 1.8.9.5-beta2
Краткое описание: от 31.12.2020
Список изменений:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Добавлена опция отображения номеров каналов (ТВ и ТВ-приставки);
Добавлена опция "Картинка в картинке" (Android 7+, телефоны и планшеты);
Добавлен режим фонового воспроизведения (телефоны и планшеты);
Исправлены ошибки в Xtream Codes плейлистах;
Другие исправления и улучшения. ### Скачать: [Televizo_1.8.9.5-beta2.apk](https://github.com/sybdata/blog/raw/master/docs/Televizo_1.8.9.5-beta2.apk)
</code></pre></div></div>
<h2 id="wink-vod-atv-v2-обновление-мода-для-тв-и-приставок">Wink VOD ATV v2: обновление мода для ТВ и приставок</h2>
<p><img src="https://user-images.githubusercontent.com/24189833/103135433-9d2f9480-46b8-11eb-8a95-fd2d360453ad.png" alt="21085847" /></p>
<h4 id="изменения-в-v21-v22">изменения в v2.1-v2.2:</h4>
<ul>
<li>Исправлена ошибка «Эта версия приложения больше не поддерживается»</li>
<li>Улучшена работа настройки «Не показывать трейлеры»</li>
<li>Кнопкам «Смотреть еще» возвращен фон</li>
<li>VODы теперь тоже используют High-качество (если выбрано)</li>
<li>При High-качестве 4K-фильмы запускаются в 2160p (а не 1080p)</li>
<li>Настройка: Обход ограничений High-качества, выключена
– Почему выключена? Сделана «на будущее», пока не нужна. Ограничений качества в приставочной (ATV) версии сейчас нет</li>
</ul>
<h3 id="wink-vod-atv-1231_cmist_arm7_v2-3apk"><a href="https://github.com/sybdata/blog/raw/master/docs/Wink-VOD-ATV-1.23.1_CMist_arm7_lite_v2-3.apk">Wink-VOD-ATV-1.23.1_CMist_arm7_v2-3.apk</a></h3>
<h3 id="wink-vod-atv-1231_cmist_arm7_v2apk"><a href="https://github.com/sybdata/blog/blob/master/docs/Wink-VOD-ATV-1.23.1_CMist_arm7_v2.apk?raw=true">Wink-VOD-ATV-1.23.1_CMist_arm7_v2.apk</a></h3>
<p>[v2] Wink VOD ATV v1.23.1 (на ТВ/приставку)</p>
<ul>
<li>Мод от CopyMist (Wink News (https://t.me/wink_news))</li>
<li>Архитектура: ARM7 (Android 5.0+)</li>
<li>Открыт весь контент (с фильмами и пр.)</li>
<li>Возвращены/добавлены ТВ-каналы</li>
<li>Не клон, заменит официальную версию</li>
<li>Можно ставить рядом с Ultimate
(https://t.me/wink_news/265)- Полное описание (https://t.me/wink_news/385) + обновление</li>
</ul>
<p>(https://t.me/wink_news/399)Другие варианты этого APK:</p>
<ul>
<li>ARM7 без рут-фикса (https://t.me/wink_free/134057) (если точно рута нет)</li>
<li>ARM64-архитектура (https://t.me/wink_free/134058) (и ARM64 без рут-фикса (https://t.me/wink_free/134059))</li>
<li>x86-архитектура (https://t.me/wink_free/134060) (и x86 без рут-фикса (https://t.me/wink_free/134061))</li>
</ul>
<h3 id="wink-vod-atv-1231_cmist_arm7_lite_v2apk"><a href="https://github.com/sybdata/blog/blob/master/docs/Wink-VOD-ATV-1.23.1_CMist_arm7_lite_v2.apk?raw=true">Wink-VOD-ATV-1.23.1_CMist_arm7_lite_v2.apk</a></h3>
<ul>
<li>Архитектура: ARM7</li>
<li>Без рут-фикса (если точно рута нет)</li>
</ul>
<h3 id="wink-vod-atv-1231_cmist_arm64_v2apk"><a href="https://github.com/sybdata/blog/blob/master/docs/Wink-VOD-ATV-1.23.1_CMist_arm64_v2.apk?raw=true">Wink-VOD-ATV-1.23.1_CMist_arm64_v2.apk</a></h3>
<ul>
<li>Архитектура: ARM64</li>
</ul>
<h3 id="wink-vod-atv-1231_cmist_arm64_lite_v2apk"><a href="https://github.com/sybdata/blog/blob/master/docs/Wink-VOD-ATV-1.23.1_CMist_arm64_lite_v2.apk?raw=true">Wink-VOD-ATV-1.23.1_CMist_arm64_lite_v2.apk</a></h3>
<ul>
<li>Архитектура: ARM64</li>
<li>Без рут-фикса (если точно рута нет)</li>
</ul>
<h3 id="wink-vod-atv-1231_cmist_x86_v2apk"><a href="https://github.com/sybdata/blog/blob/master/docs/Wink-VOD-ATV-1.23.1_CMist_x86_v2.apk?raw=true">Wink-VOD-ATV-1.23.1_CMist_x86_v2.apk</a></h3>
<ul>
<li>Архитектура: x86</li>
</ul>
<h3 id="wink-vod-atv-1231_cmist_x86_lite_v2apk"><a href="https://github.com/sybdata/blog/blob/master/docs/Wink-VOD-ATV-1.23.1_CMist_x86_lite_v2.apk?raw=true">Wink-VOD-ATV-1.23.1_CMist_x86_lite_v2.apk</a></h3>
<ul>
<li>Архитектура: x86</li>
<li>Без рут-фикса (если точно рута нет)</li>
</ul>
<h2 id="v1">v1</h2>
<h2 id="wink-vod-atv-v1231-для-тв-и-приставок">Wink VOD ATV v1.23.1: для ТВ и приставок</h2>
<h3 id="wink-vod-atv-1231_cmist_arm7apk"><a href="https://github.com/sybdata/blog/blob/master/Wink-VOD-ATV-1.23.1_CMist_arm7.apk?raw=true">Wink-VOD-ATV-1.23.1_CMist_arm7.apk</a></h3>
<h3 id="--без-рут-фикса-если-точно-рута-нет">- Без рут-фикса (если точно рута нет)</h3>
<h3 id="wink-vod-atv-1231_cmist_arm7_liteapk"><a href="https://github.com/sybdata/blog/blob/master/Wink-VOD-ATV-1.23.1_CMist_arm7_lite.apk?raw=true">Wink-VOD-ATV-1.23.1_CMist_arm7_lite.apk</a></h3>SybDataTelevizo Версия: 1.8.9.94Свой сервер - Решения2020-09-22T22:50:30+00:002020-09-22T22:50:30+00:00https://sybdata.github.io/blog/netzwerk/own-server<p><img src="https://user-images.githubusercontent.com/24189833/93932452-84fa5300-fd20-11ea-8465-cb84ce99817f.png" alt="2020-09-22 (6)" /></p>
<h2 id="запустите-собственный-сервер-в-oracle-cloud-infrastructure">Запустите собственный сервер в Oracle Cloud Infrastructure</h2>
<h3 id="вначале-выберем-язык-на-котором-понятней-и-удобней-и-открываем-стартовую-страницу-httpswwworaclecomruindexhtml">Вначале выберем язык на котором понятней и удобней и открываем стартовую страницу: https://www.oracle.com/ru/index.html</h3>
<h3 id="идём-в---oracle-cloud-infrastructure---опробовать-бесплатный-уровень">идём в -> “Oracle Cloud Infrastructure” -> “Опробовать бесплатный уровень”</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94052304-09a8a800-fdd9-11ea-9e9e-ec666a0c8445.png" alt="2020-09-23 (1)" /></p>
<h3 id="далее-ознакомимся-с-условиями-и-с-перечнем-бесплатного-пакета-always-free">далее ознакомимся с условиями и с перечнем бесплатного пакета “Always Free”</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94052908-e5999680-fdd9-11ea-8693-7f1212ad5061.png" alt="2020-09-23 (2)" /></p>
<p><img src="https://user-images.githubusercontent.com/24189833/94053329-7ec8ad00-fdda-11ea-8fc3-3abd958a177b.png" alt="2020-09-23 (3)" /></p>
<h3 id="жмём-на-начните-с-бесплатной-версии-и-поехали">жмём на “начните с бесплатной версии” и поехали…</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94059611-f569a880-fde2-11ea-8266-17e990548b6c.png" alt="2020-09-23 (5)" />
<img src="https://user-images.githubusercontent.com/24189833/94059953-7628a480-fde3-11ea-966a-0c8b9f90b9e5.png" alt="2020-09-23 (6)" /></p>
<h3 id="дальше-нужно-пройти-2-верификации-по-смс-и-по-кредитке-кнопка-start-my-free-уже-видна-и-держим-на-неё-курс">дальше нужно пройти 2 верификации, по смс и по кредитке (кнопка “start my free..” уже видна и держим на неё курс)</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94060498-58a80a80-fde4-11ea-8b58-8f0d6f9f136e.png" alt="2020-09-23 (7)" />
<img src="https://user-images.githubusercontent.com/24189833/94060862-e683f580-fde4-11ea-97aa-4be7960d2126.png" alt="2020-09-23 (8)" />
<img src="https://user-images.githubusercontent.com/24189833/94061125-424e7e80-fde5-11ea-85ee-c352b6d57789.png" alt="2020-09-23 (9)" />
<img src="https://user-images.githubusercontent.com/24189833/94061457-b426c800-fde5-11ea-9059-072543573d73.png" alt="2020-09-23 (10)" /></p>
<h3 id="если-всё-в-порядке-то-получаем-зелёный-свет">если всё в порядке то получаем “зелёный свет”</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94061629-eb957480-fde5-11ea-9620-8272fbfa3441.png" alt="2020-09-23 (11)" /></p>
<h3 id="и-теперь-кнопка-start-my-free-наконец-то-доступна">и теперь кнопка “start my free..” наконец то доступна</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94062458-fef50f80-fde6-11ea-81f6-94ed9fa52552.png" alt="2020-09-23 (13)" /></p>
<h3 id="жмакаем-и-мы-на-месте">жмакаем и мы на месте</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94062725-53988a80-fde7-11ea-84fa-d0d5f0453978.png" alt="2020-09-23 (14)" /></p>
<h3 id="обзываем-свой-будущий-сервер">обзываем свой будущий сервер</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94062971-b38f3100-fde7-11ea-987d-900a0da00600.png" alt="2020-09-23 (15)" /></p>
<h3 id="выбираем-ось">выбираем ОСь</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94063137-f3eeaf00-fde7-11ea-8e0c-f0ad9660d42b.png" alt="2020-09-23 (16)" /></p>
<h3 id="бесплатные-машины-доступны-только-на-ad3">бесплатные машины доступны только на AD3!</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94063430-62cc0800-fde8-11ea-8e09-fa5904072e1a.png" alt="2020-09-23 (17)" /></p>
<h3 id="теперь-выбираем-саму-машину-и-главное-не-промахнутся">теперь выбираем саму машину и главное не промахнутся</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94063819-fa315b00-fde8-11ea-984b-ab714eb7bbb7.png" alt="2020-09-23 (18)" />
<img src="https://user-images.githubusercontent.com/24189833/94064091-6d3ad180-fde9-11ea-82b6-23136b6ac982.png" alt="2020-09-23 (19)" />
<img src="https://user-images.githubusercontent.com/24189833/94064229-a5daab00-fde9-11ea-90b9-86b2d2e28f50.png" alt="2020-09-23 (20)" /></p>
<h3 id="генерируем-с-puttygenexe-пару-ключей-и-копируем-паблик-на-сервер-а-приватный-сохраняем-на-компе-потом-понадобится">генерируем с puttygen.exe пару ключей и копируем паблик на сервер а приватный сохраняем на компе, потом понадобится…</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94065027-d707ab00-fdea-11ea-831e-7a3e06e6f0ac.png" alt="2020-09-23 (22)" />
<img src="https://user-images.githubusercontent.com/24189833/94065248-2d74e980-fdeb-11ea-92c8-adb21d57c748.png" alt="2020-09-23 (23)" /></p>
<h3 id="в-дополнительных-настройках-выключаем-мониторинг-остальное-по-умолчанию-и-жмём-создать">в дополнительных настройках выключаем мониторинг, остальное по умолчанию, и жмём “создать”</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94065588-a83e0480-fdeb-11ea-9192-47ab1052de10.png" alt="2020-09-23 (24)" /></p>
<h3 id="настроим-putty-и-попробуем-зайти-на-сервер-через-ssh">настроим putty и попробуем зайти на сервер через ssh</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94066505-da039b00-fdec-11ea-8843-670fe5c9a64a.png" alt="2020-09-23 (26)" />
<img src="https://user-images.githubusercontent.com/24189833/94066758-35358d80-fded-11ea-8cb3-bbebb0f67b2d.png" alt="2020-09-23 (27)" />
<img src="https://user-images.githubusercontent.com/24189833/94067238-de7c8380-fded-11ea-969f-7bff39694061.png" alt="2020-09-23 (28)" /></p>
<h3 id="здесь-соглашаемся">здесь соглашаемся</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94067482-34e9c200-fdee-11ea-9790-67ca0f4dbba0.png" alt="2020-09-23 (29)" /></p>
<h3 id="всё-мы-вошли">всё мы вошли</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94067786-a88bcf00-fdee-11ea-8754-2b758fec8216.png" alt="2020-09-23 (30)" /></p>
<h3 id="получаем-рут-и-работаем">получаем рут и работаем</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94068049-fb658680-fdee-11ea-9c0b-30fb79c058ab.png" alt="2020-09-23 (31)" />
<img src="https://user-images.githubusercontent.com/24189833/94068245-38317d80-fdef-11ea-8f68-8cd065192236.png" alt="2020-09-23 (32)" />
<img src="https://user-images.githubusercontent.com/24189833/94068481-88104480-fdef-11ea-97bb-68cc0f640019.png" alt="2020-09-23 (33)" /></p>
<h3 id="на-мыло-придёт-два-письма-с-краткими-даными-учётки-с-кнопками-по-которым-и-можно-заходить-на-свою-учётку">на мыло придёт два письма с краткими даными учётки с “кнопками” по которым и можно заходить на свою учётку</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94069184-71b6b880-fdf0-11ea-8a19-ccd21d2d6798.png" alt="2020-09-23 (34)" />
<img src="https://user-images.githubusercontent.com/24189833/94069238-83985b80-fdf0-11ea-8006-26aa4b3f8b3e.png" alt="2020-09-23 (35)" /></p>
<h1 id="enjoy">enjoy</h1>
<h1 id="дополнительнобонус">Дополнительно(Бонус)</h1>
<h2 id="использование-сети-маршрутизации-в-режиме-кластера">Использование сети маршрутизации в режиме кластера</h2>
<p><img src="https://user-images.githubusercontent.com/24189833/95024190-d17b5200-0681-11eb-9277-a6d5be892b70.png" alt="ingress-routing-mesh" /></p>
<h3 id="открыть-протоколы-и-порты-между-хостами">Открыть протоколы и порты между хостами</h3>
<p>Следующие порты должны быть доступны:</p>
<ul>
<li>TCP port 2377 для управления кластером</li>
<li>TCP and UDP port 7946 для связи между узлами</li>
<li>UDP port 4789 для оверлейного сетевого трафика</li>
</ul>
<p>### Создание кластера
#### Откройте терминал и подключитесь по ssh к машине, на которой вы хотите запустить свой управляющий узел и выполните следующюю команду:</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="err">$</span> <span class="n">docker</span> <span class="n">swarm</span> <span class="n">init</span> <span class="o">--</span><span class="n">advertise</span><span class="o">-</span><span class="n">addr</span> <span class="mf">192.168</span><span class="o">.</span><span class="mf">99.100</span>
<span class="no">Swarm</span> <span class="ss">initialized: </span><span class="n">current</span> <span class="n">node</span> <span class="p">(</span><span class="n">dxn1zf6l61qsb1josjja83ngz</span><span class="p">)</span> <span class="n">is</span> <span class="n">now</span> <span class="n">a</span> <span class="n">manager</span><span class="o">.</span>
<span class="no">To</span> <span class="n">add</span> <span class="n">a</span> <span class="n">worker</span> <span class="n">to</span> <span class="n">this</span> <span class="n">swarm</span><span class="p">,</span> <span class="n">run</span> <span class="n">the</span> <span class="n">following</span> <span class="ss">command:
</span><span class="n">docker</span> <span class="n">swarm</span> <span class="n">join</span> <span class="p">\</span>
<span class="o">--</span><span class="n">token</span> <span class="no">SWMTKN</span><span class="o">-</span><span class="mi">1</span><span class="o">-</span><span class="mi">49</span><span class="n">nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv</span><span class="o">-</span><span class="mi">8</span><span class="n">vxv8rssmk743ojnwacrr2e7c</span> <span class="p">\</span>
<span class="mf">192.168</span><span class="o">.</span><span class="mf">99.100</span><span class="p">:</span><span class="mi">2377</span>
<span class="no">To</span> <span class="n">add</span> <span class="n">a</span> <span class="n">manager</span> <span class="n">to</span> <span class="n">this</span> <span class="n">swarm</span><span class="p">,</span> <span class="n">run</span> <span class="s1">'docker swarm join-token manager'</span> <span class="n">and</span> <span class="n">follow</span> <span class="n">the</span> <span class="n">instructions</span><span class="o">.</span>
</code></pre></div></div>
<h4 id="откройте-терминал-и-подключитесь-по-ssh-к-машине-на-которой-вы-хотите-запустить-второй-рабочий-узел">Откройте терминал и подключитесь по ssh к машине, на которой вы хотите запустить второй рабочий узел.</h4>
<h4 id="запустите-команду-созданную-выходными-данными-docker-swarm-init-из-первого-шага-чтобы-создать-второй-рабочий-узел-присоединенный-к-существующему-swarm">Запустите команду, созданную выходными данными docker swarm init из первого шага, чтобы создать второй рабочий узел, присоединенный к существующему swarm:</h4>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="err">$</span> <span class="n">docker</span> <span class="n">swarm</span> <span class="n">join</span> <span class="p">\</span>
<span class="o">--</span><span class="n">token</span> <span class="no">SWMTKN</span><span class="o">-</span><span class="mi">1</span><span class="o">-</span><span class="mi">49</span><span class="n">nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv</span><span class="o">-</span><span class="mi">8</span><span class="n">vxv8rssmk743ojnwacrr2e7c</span> <span class="p">\</span>
<span class="mf">192.168</span><span class="o">.</span><span class="mf">99.100</span><span class="p">:</span><span class="mi">2377</span>
<span class="no">This</span> <span class="n">node</span> <span class="n">joined</span> <span class="n">a</span> <span class="n">swarm</span> <span class="n">as</span> <span class="n">a</span> <span class="n">worker</span><span class="o">.</span>
</code></pre></div></div>
<h3 id="разверните-сервис-в-кластере">Разверните сервис в кластере</h3>
<h4 id="откройте-терминал-и-подключитесь-по-ssh-к-машине-на-которой-вы-запустили-управляющий-узел-и-выполните-следующую-команду">Откройте терминал и подключитесь по ssh к машине, на которой вы запустили управляющий узел и выполните следующую команду:</h4>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">docker</span> <span class="n">service</span> <span class="n">create</span> <span class="o">--</span><span class="n">replicas</span> <span class="mi">4</span> <span class="o">--</span><span class="nb">name</span> <span class="n">zmp_cluster</span> <span class="o">--</span><span class="n">publish</span> <span class="n">published</span><span class="o">=</span><span class="mi">1010</span><span class="p">,</span><span class="n">target</span><span class="o">=</span><span class="mi">1010</span> <span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:zproxy</span>
</code></pre></div></div>
<p><img src="https://user-images.githubusercontent.com/24189833/95024782-a3980c80-0685-11eb-9d08-248f573d17fe.png" alt="2020-10-04 (1)" /></p>
<p><img src="https://user-images.githubusercontent.com/24189833/95025247-9f212300-0688-11eb-8cb5-bd7ec1bec82a.png" alt="2020-10-04 (2)" /></p>
<h2 id="run-your-own-zmp-server-on-oracle-cloud-infrastructure">Run your own ZMP Server on Oracle Cloud Infrastructure</h2>
<p>If you choose to, register on Oracle Cloud (requires credit card for verification) and create a free VM:</p>
<ul>
<li>Create a VM instance</li>
<li>Give it a name</li>
<li>OS/image: Ubuntu 16.04 Minimal or Ubuntu 18.04 Minimal or Ubuntu 20.04 Minimal or CentOS 7</li>
<li>Show Shape, Network and Storage Options -> Assign a public IP address</li>
<li><a href="https://tech.id500.de/wp/?page_id=201">Add SSH key (generate one using ssh-keygen if you don’t have one)</a></li>
<li>Show advanced options. I removed monitoring, since I’ll remove the monitoring agent later.</li>
</ul>
<p>View resources and make sure the instance and boot volume are “Always Free” if you don’t intent to pay for them.</p>
<p>Make sure you can ssh to the server (using the ssh key you generated/picked) using the user ‘ubuntu’ and can use sudo.</p>
<h3 id="open-firewall">Open firewall</h3>
<h4 id="oracle-cloud-security-lists">Oracle Cloud Security lists</h4>
<p>View resources -> Instances -> Select instance -> Virtual Cloud Network -> Public Subnet -> Security Lists -> Default -> Ingress</p>
<p>Open incoming for CIDR 0.0.0.0/0:</p>
<ul>
<li>22/tcp for SSH (should be open already)</li>
<li>xxxx/tcp for ZMP</li>
<li>xxxx/tcp for HLS-proxy or Xteve</li>
</ul>
<h4 id="ubuntu-iptables">Ubuntu iptables</h4>
<p>The Oracle Cloud Ubuntu images come with somewhat restrictive iptables rules by default. Docker manages the instance firewall and we have the Oracle Cloud firewall in front, so let’s remove the current firewall to avoid trouble:</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">apt</span> <span class="n">purge</span> <span class="n">netfilter</span><span class="o">-</span><span class="n">persistent</span> <span class="n">iptables</span><span class="o">-</span><span class="n">persistent</span>
</code></pre></div></div>
<h3 id="remove-useless-stuff-optional">Remove useless stuff (optional)</h3>
<p>Oracle cloud includes a somewhat heavy monitoring daemon. We have better use for that memory since current versions of Synapse, the Matrix homeserver, can be memory hungry.</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">snap</span> <span class="n">remove</span> <span class="n">oracle</span><span class="o">-</span><span class="n">cloud</span><span class="o">-</span><span class="n">agent</span>
<span class="n">apt</span> <span class="n">purge</span> <span class="n">snapd</span> <span class="nb">open</span><span class="o">-</span><span class="n">iscsi</span> <span class="n">lxd</span> <span class="n">lxcfs</span>
</code></pre></div></div>
<h3 id="tune-server-optional">Tune server (optional)</h3>
<p>I suggest enabling swap, since there’s only 1 GB of RAM.</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">dd</span> <span class="k">if</span><span class="o">=</span><span class="sr">/dev/</span><span class="n">zero</span> <span class="n">of</span><span class="o">=</span><span class="sr">/swap bs=1M count=1k
chmod 0600 /s</span><span class="n">wap</span>
<span class="n">mkswap</span> <span class="sr">/swap
swapon /s</span><span class="n">wap</span>
<span class="n">echo</span> <span class="s1">'/swap none swap sw 0 0'</span> <span class="o">>></span> <span class="sr">/etc/</span><span class="n">fstab</span>
</code></pre></div></div>SybDataImplemented Solutions2020-08-27T01:08:30+00:002020-08-27T01:08:30+00:00https://sybdata.github.io/blog/netzwerk/Implemented%20Solutions<ul>
<li>
<p><a href="https://user-images.githubusercontent.com/24189833/95739613-64704980-0c8b-11eb-9b02-d076e6e69916.gif">ZMP(ZMediaProxy)-сервер</a></p>
</li>
<li>
<p>HLS Proxy</p>
</li>
<li>
<p>HTTPAceProxy</p>
</li>
<li>
<p>AceY - Ace Stream Proxy</p>
</li>
<li>
<p><a href="http://m-portal.ultima-tv.com/stalker_portal/">Server с порталом Ministra TV platform</a></p>
</li>
</ul>SybDataZMP(ZMediaProxy)-серверP2P - Решения2020-08-27T00:50:30+00:002020-08-27T00:50:30+00:00https://sybdata.github.io/blog/netzwerk/p2p<h2 id="ace-stream-media-прокси-сервер">Ace Stream Media прокси-сервер</h2>
<h3 id="140221--запуск--hls-proxy-750--acestream-x64-v3149">14.02.21 Запуск HLS-Proxy 7.5.0 + AceStream x64 v3.1.49</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/107877991-0325e480-6ed0-11eb-9427-4046b69e77de.png" alt="2021-02-14 (4)" /></p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">mkdir</span> <span class="o">-</span><span class="nb">p</span> <span class="sr">/opt/</span><span class="n">hls_stream</span> <span class="o">&&</span> <span class="n">cd</span> <span class="sr">/opt/</span><span class="n">hls_stream</span>
<span class="n">nano</span> <span class="n">docker</span><span class="o">-</span><span class="n">compose</span><span class="p">.</span><span class="nf">yml</span>
<span class="ss">version: </span><span class="s2">"2"</span>
<span class="ss">services:
acestream:
container_name: </span><span class="n">ace</span>
<span class="ss">image: </span><span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:ace</span><span class="o">-</span><span class="n">d8</span>
<span class="ss">tmpfs:
</span><span class="o">-</span> <span class="sr">/dev/</span><span class="n">disk</span><span class="o">/</span><span class="n">by</span><span class="o">-</span><span class="nb">id</span><span class="ss">:noexec</span><span class="p">,</span><span class="n">rw</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="mi">4</span><span class="n">k</span>
<span class="o">-</span> <span class="sr">/tmp/</span><span class="n">fs</span><span class="ss">:noexec</span><span class="p">,</span><span class="n">rw</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="mi">4096</span><span class="n">m</span>
<span class="ss">restart: </span><span class="n">always</span>
<span class="ss">ports:
</span><span class="o">-</span> <span class="s2">"6878:6878"</span>
<span class="o">-</span> <span class="s2">"8621:8621"</span>
<span class="o">-</span> <span class="s2">"8056:80"</span>
<span class="ss">tty: </span><span class="kp">true</span>
<span class="ss">hlsproxy:
container_name: </span><span class="n">hlsp</span>
<span class="ss">image: </span><span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:hlsproxy</span>
<span class="ss">environment:
</span><span class="o">-</span> <span class="n">port</span><span class="o">=</span><span class="mi">38050</span>
<span class="ss">restart: </span><span class="n">always</span>
<span class="ss">ports:
</span><span class="o">-</span> <span class="s2">"38050:38050"</span>
</code></pre></div></div>
<ul>
<li>port=38050 замените на своё значение!</li>
</ul>
<p>далее</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">docker</span><span class="o">-</span><span class="n">compose</span> <span class="n">up</span> <span class="o">-</span><span class="n">d</span>
</code></pre></div></div>
<p><img src="https://user-images.githubusercontent.com/24189833/107879064-f1940b00-6ed6-11eb-8233-12b9d05715d0.png" alt="2021-02-14 (1)" /></p>
<p>потом в вебинтерфейсе прокси добавляем адрес движка
<img src="https://user-images.githubusercontent.com/24189833/107877625-dd97db80-6ecd-11eb-91f7-0df978348a85.png" alt="2021-02-14 (2)" /></p>
<p>задаём пароль и секретное для админа</p>
<p>добавляем клиентов</p>
<p>генерируем в учётке bit.ly токен для коротких ссылок
<img src="https://user-images.githubusercontent.com/24189833/107888998-69caf280-6f10-11eb-8c22-aee8402fb864.png" alt="2021-02-14 (3)" />
и добавляем его в конфиг
<img src="https://user-images.githubusercontent.com/24189833/107877980-eb4e6080-6ecf-11eb-8458-e5f023c9e819.png" alt="2021-02-14 (5)" /></p>
<h3 id="enjoy">enjoy</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/107878039-57c95f80-6ed0-11eb-86bc-d9c39481cdcc.png" alt="2021-02-14 (6)" /></p>
<h3 id="0-запуск-acestream-x64-v3149--acestream-search">0. Запуск AceStream x64 v3.1.49 + acestream-search:</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">docker</span> <span class="n">run</span> <span class="o">-</span><span class="n">d</span> <span class="o">--</span><span class="nb">name</span> <span class="n">ace</span> <span class="o">-</span><span class="nb">p</span> <span class="mi">6878</span><span class="p">:</span><span class="mi">6878</span> <span class="o">-</span><span class="nb">p</span> <span class="mi">8621</span><span class="p">:</span><span class="mi">8621</span> <span class="o">-</span><span class="nb">p</span> <span class="mi">8056</span><span class="p">:</span><span class="mi">80</span> <span class="o">--</span><span class="n">tmpfs</span> <span class="s2">"/dev/disk/by-id:noexec,rw,size=4k"</span> <span class="o">--</span><span class="n">tmpfs</span> <span class="s2">"/tmp/fs/:noexec,rw,size=4096m"</span> <span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:ace</span><span class="o">-</span><span class="n">d8</span>
</code></pre></div></div>
<h4 id="что-бы-спарсить-свой-плейлист-запускаем-далее-команду">что бы спарсить свой плейлист, запускаем далее команду:</h4>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">docker</span> <span class="nb">exec</span> <span class="o">-</span><span class="n">w</span> <span class="sr">/opt/</span> <span class="n">ace</span> <span class="p">.</span><span class="nf">/</span><span class="n">start</span><span class="p">.</span><span class="nf">sh</span> <span class="mf">192.168</span><span class="o">.</span><span class="mf">178.26</span> <span class="mi">6878</span>
</code></pre></div></div>
<h4 id="где-19216817826-адрес-вашего-движка-и-6878-соответственно-его-http-port">где 192.168.178.26 адрес вашего движка и 6878 соответственно его http-port</h4>
<h4 id="плейлист-будет-доступен-по-адресу">плейлист будет доступен по адресу:</h4>
<ul>
<li>192.168.178.26:8056/ace.m3u
<h4 id="весь-каталог">весь каталог:</h4>
</li>
<li>192.168.178.26:8056</li>
</ul>
<h3 id="0-запуск-acestream-x64-v3149--acestream-search--hls-proxy">0. Запуск AceStream x64 v3.1.49 + acestream-search + HLS Proxy:</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/98481977-78618980-21fe-11eb-9480-2a486bf7bd16.png" alt="2020-11-08" /></p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">mkdir</span> <span class="o">-</span><span class="nb">p</span> <span class="sr">/opt/</span><span class="n">hls_stream</span> <span class="o">&&</span> <span class="n">cd</span> <span class="sr">/opt/</span><span class="n">hls_stream</span>
<span class="n">nano</span> <span class="n">docker</span><span class="o">-</span><span class="n">compose</span><span class="p">.</span><span class="nf">yml</span>
<span class="ss">version: </span><span class="s2">"2"</span>
<span class="ss">services:
acestream:
container_name: </span><span class="n">ace</span>
<span class="ss">image: </span><span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:ace</span><span class="o">-</span><span class="n">d8</span>
<span class="ss">tmpfs:
</span><span class="o">-</span> <span class="sr">/dev/</span><span class="n">disk</span><span class="o">/</span><span class="n">by</span><span class="o">-</span><span class="nb">id</span><span class="ss">:noexec</span><span class="p">,</span><span class="n">rw</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="mi">4</span><span class="n">k</span>
<span class="o">-</span> <span class="sr">/tmp/</span><span class="n">fs</span><span class="ss">:noexec</span><span class="p">,</span><span class="n">rw</span><span class="p">,</span><span class="n">size</span><span class="o">=</span><span class="mi">4096</span><span class="n">m</span>
<span class="ss">restart: </span><span class="n">always</span>
<span class="ss">ports:
</span><span class="o">-</span> <span class="s2">"6878:6878"</span>
<span class="o">-</span> <span class="s2">"8621:8621"</span>
<span class="o">-</span> <span class="s2">"8056:80"</span>
<span class="ss">tty: </span><span class="kp">true</span>
<span class="ss">hlsproxy:
container_name: </span><span class="n">hlsp</span>
<span class="ss">image: </span><span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:hlsproxy</span>
<span class="ss">restart: </span><span class="n">always</span>
<span class="ss">ports:
</span><span class="o">-</span> <span class="s2">"8040:8040"</span>
</code></pre></div></div>
<h4 id="что-бы-спарсить-свой-плейлист-запускаем-далее-команду-1">что бы спарсить свой плейлист, запускаем далее команду:</h4>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">docker</span> <span class="nb">exec</span> <span class="o">-</span><span class="n">w</span> <span class="sr">/opt/</span> <span class="n">ace</span> <span class="p">.</span><span class="nf">/</span><span class="n">start</span><span class="p">.</span><span class="nf">sh</span> <span class="mf">192.168</span><span class="o">.</span><span class="mf">178.26</span> <span class="mi">6878</span>
</code></pre></div></div>
<h4 id="где-19216817826-адрес-вашего-движка-и-6878-соответственно-его-http-port-1">где 192.168.178.26 адрес вашего движка и 6878 соответственно его http-port</h4>
<h4 id="плейлист-будет-доступен-по-адресу-1">плейлист будет доступен по адресу:</h4>
<ul>
<li>192.168.178.26:8056/ace.m3u
<h4 id="весь-каталог-1">весь каталог:</h4>
</li>
<li>192.168.178.26:8056</li>
</ul>
<p><img src="https://user-images.githubusercontent.com/24189833/98481987-8911ff80-21fe-11eb-8e21-7b7d5fe20974.png" alt="Screenshot_20201108-193935" /></p>
<p><img src="https://user-images.githubusercontent.com/24189833/98482000-9c24cf80-21fe-11eb-8c43-75a1314f6ae6.png" alt="Screenshot_20201108-140254" /></p>
<h3 id="1-запуск-acestream-x64-v3149-ubuntu-18">1. Запуск AceStream x64 v3.1.49 Ubuntu 18:</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">docker</span> <span class="n">run</span> <span class="o">-</span><span class="n">d</span> <span class="o">-</span><span class="nb">p</span> <span class="mi">8621</span><span class="p">:</span><span class="mi">8621</span> <span class="o">-</span><span class="nb">p</span> <span class="mi">6878</span><span class="p">:</span><span class="mi">6878</span> <span class="o">--</span><span class="nb">name</span> <span class="n">aceremote64d</span> <span class="o">--</span><span class="n">tmpfs</span> <span class="s2">"/dev/disk/by-id:noexec,rw,size=4k"</span> <span class="o">--</span><span class="n">tmpfs</span> <span class="s2">"/tmp/fs/:noexec,rw,size=4096m"</span> <span class="o">--</span><span class="n">restart</span><span class="o">=</span><span class="n">always</span> <span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:aced0nly</span> <span class="n">bash</span> <span class="o">-</span><span class="n">c</span> <span class="s2">"/opt/start.sh SZGHqCMt 62062 6878 8621 1800"</span>
</code></pre></div></div>
<figure class="">
<img src="https://user-images.githubusercontent.com/24189833/91351277-51431080-e7e8-11ea-9305-c047cd71c484.png" alt="this is a placeholder image" />
<figcaption>
</figcaption></figure>
<h3 id="1a-запуск-acestream-x64-v3149-debian8-slim">1a. Запуск AceStream x64 v3.1.49 debian:8-slim:</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">mkdir</span> <span class="o">-</span><span class="nb">p</span> <span class="sr">/opt/</span><span class="n">p2pstream</span>
<span class="n">cd</span> <span class="sr">/opt/</span><span class="n">p2pstream</span>
<span class="n">wget</span> <span class="n">https</span><span class="ss">:/</span><span class="o">/</span><span class="n">raw</span><span class="p">.</span><span class="nf">githubusercontent</span><span class="p">.</span><span class="nf">com</span><span class="o">/</span><span class="n">sybdata</span><span class="o">/</span><span class="n">aceubase</span><span class="o">/</span><span class="n">master</span><span class="o">/</span><span class="n">src</span><span class="o">/</span><span class="n">docker</span><span class="o">-</span><span class="n">compose</span><span class="p">.</span><span class="nf">yml</span>
<span class="n">docker</span><span class="o">-</span><span class="n">compose</span> <span class="n">up</span> <span class="o">-</span><span class="n">d</span>
</code></pre></div></div>
<figure class="">
<img src="https://user-images.githubusercontent.com/24189833/91646328-307bf480-ea4e-11ea-9293-e5def1055b84.png" alt="this is a placeholder image" />
<figcaption>
</figcaption></figure>
<h2 id="httpaceproxy"><a href="https://github.com/pepsik-kiev/HTTPAceProxy">HTTPAceProxy</a></h2>
<h3 id="1-запуск-на-базе-python-v385-alpine312">1. Запуск на базе python v3.8.5-alpine3.12:</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">docker</span> <span class="n">run</span> <span class="o">-</span><span class="n">d</span> <span class="o">-</span><span class="nb">p</span> <span class="mi">8081</span><span class="p">:</span><span class="mi">8081</span> <span class="o">--</span><span class="nb">name</span> <span class="n">httpaproxy</span> <span class="o">--</span><span class="n">restart</span><span class="o">=</span><span class="n">always</span> <span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:httpaproxy</span>
</code></pre></div></div>
<figure class="">
<img src="https://user-images.githubusercontent.com/24189833/51075114-a10eab80-1687-11e9-84fd-5a748a71c804.png" alt="this is a placeholder image" />
<figcaption>
</figcaption></figure>
<h2 id="acey---ace-stream-proxy"><a href="https://github.com/xelaok/acey">AceY - Ace Stream Proxy</a></h2>
<h3 id="1-запуск-на-базе-nodealpine">1. Запуск на базе node:alpine:</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">docker</span> <span class="n">run</span> <span class="o">-</span><span class="n">d</span> <span class="o">-</span><span class="nb">p</span> <span class="mi">8100</span><span class="p">:</span><span class="mi">8100</span> <span class="o">--</span><span class="n">shm</span><span class="o">-</span><span class="n">size</span><span class="o">=</span><span class="mi">2</span><span class="no">G</span> <span class="o">--</span><span class="nb">name</span> <span class="n">aceyproxy</span> <span class="o">--</span><span class="n">restart</span><span class="o">=</span><span class="n">always</span> <span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:acey</span>
</code></pre></div></div>
<figure class="">
<img src="https://user-images.githubusercontent.com/24189833/91347705-0ecb0500-e7e3-11ea-8198-2a26a4607725.png" alt="this is a placeholder image" />
<figcaption>
</figcaption></figure>SybDataAce Stream Media прокси-серверOTT/IPTV - Решения2020-08-26T22:50:30+00:002020-08-26T22:50:30+00:00https://sybdata.github.io/blog/netzwerk/ott-iptv<p><img src="https://user-images.githubusercontent.com/24189833/103430327-f79e8880-4bc3-11eb-85bb-b474bc579f97.jpg" alt="hero" /></p>
<h2 id="faststream---авторизованный-реселлер--подключайся-и-пополняй-баланс-без-коммисии">FastStream - Авторизованный реселлер • <a href="https://ottg.de">Подключайся и пополняй баланс без коммисии!</a></h2>
<h2 id="установка-ministra-tv-platform">Установка Ministra TV Platform</h2>
<p><img src="https://user-images.githubusercontent.com/24189833/107879271-1fc61a80-6ed8-11eb-85cd-2a61a6640edf.png" alt="2021-02-06 (4)" /></p>
<p>Чтобы установить Ministra/Stalker portal придется установить более 200 пакетов в вашу ОС.Рекомендую установить в docker-контейнер, это быстро и удобно, иначе могут возникнут конфликты с другими веб-сервисами.
Для продолжения нам потребуется сам Docker и Docker-compose.</p>
<h3 id="1-создадим-рабочую-папку-в-которой-будет-жить-портал-и-скачаем-docker-compose-файл">1. Создадим рабочую папку, в которой будет жить портал и скачаем docker-compose файл:</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">mkdir</span> <span class="sr">/opt/s</span><span class="n">talker</span> <span class="o">&&</span> <span class="n">cd</span> <span class="sr">/opt/s</span><span class="n">talker</span> <span class="o">&&</span> <span class="n">wget</span> <span class="n">https</span><span class="ss">:/</span><span class="o">/</span><span class="n">raw</span><span class="p">.</span><span class="nf">githubusercontent</span><span class="p">.</span><span class="nf">com</span><span class="o">/</span><span class="n">sybdata</span><span class="o">/</span><span class="no">Ministra</span><span class="o">/</span><span class="n">master</span><span class="o">/</span><span class="n">docker</span><span class="o">/</span><span class="n">docker</span><span class="o">-</span><span class="n">compose</span><span class="p">.</span><span class="nf">yml</span>
</code></pre></div></div>
<h3 id="2-запускаем-портал">2. Запускаем портал:</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">docker</span><span class="o">-</span><span class="n">compose</span> <span class="n">up</span> <span class="o">-</span><span class="n">d</span>
</code></pre></div></div>
<h3 id="3-контейнер-содержит-только-окружение-актуальную-версию-ministrastalker-middleware-можно-скачать-и-положить-в-varwwwstalker_portal-или-выполнить-скрипт-который-сам-скачает-последнюю-версию-ministra-v561-и-заполнит-нам-базу-данных">3. Контейнер содержит только окружение, актуальную версию Ministra/Stalker Middleware можно скачать и положить в /var/www/stalker_portal/ или выполнить скрипт, который сам скачает последнюю версию ministra-v5.6.1 и заполнит нам базу данных:</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">docker</span> <span class="nb">exec</span> <span class="o">-</span><span class="n">it</span> <span class="n">stalker_portal_1</span> <span class="sr">/opt/</span><span class="n">deploy</span><span class="p">.</span><span class="nf">sh</span>
</code></pre></div></div>
<p>Ждем, пока скрипт выполнится.</p>
<figure class="">
<img src="https://user-images.githubusercontent.com/24189833/91488736-0b517f80-e8b0-11ea-8422-cdb96157f68f.png" alt="this is a placeholder image" />
<figcaption>
</figcaption></figure>
<p>Готово, админ панель Сталкера доступна по адресу:</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">http</span><span class="ss">:/</span><span class="o">/</span><span class="n">ip</span><span class="o">/</span><span class="n">stalker_portal</span><span class="o">/</span> <span class="c1">#Заходим по стандартному логину/паролю: admin/1.</span>
</code></pre></div></div>
<p><img src="https://user-images.githubusercontent.com/24189833/107879183-a4646900-6ed7-11eb-91cb-f0ce5ab0be4e.png" alt="Screenshot_20210214-120545" />
<img src="https://user-images.githubusercontent.com/24189833/107879198-bf36dd80-6ed7-11eb-9a24-684ab8976907.png" alt="Screenshot_20210214-121737" />
<img src="https://user-images.githubusercontent.com/24189833/107879217-d4ac0780-6ed7-11eb-82e4-d859069fe54e.png" alt="Screenshot_20210213-191737" />
<img src="https://user-images.githubusercontent.com/24189833/107879298-4b490500-6ed8-11eb-9813-3a64284d91d5.png" alt="2021-02-14" /></p>
<h2 id="все-вопросы-и-запросы-на-помощь-по-установке-и-консультациям-просьба-направлять-на-streamfasterid500de-">Все вопросы и запросы на помощь по установке и консультациям просьба направлять на <a href="mailto:streamfaster@id500.de">streamfaster@id500.de</a> !</h2>
<h3 id="неактуальный-самообновляемый-плейлист">НЕактуальный самообновляемый Плейлист:</h3>
<html><script async="" src="https://telegram.org/js/telegram-widget.js?12" data-telegram-post="wink_news/390" data-width="100%"></script></html>
<h3 id="0002b-запуск-zmp-linux-amd64-v2132--hls-proxy-for-iptv-741">0002b. Запуск zmp-linux-amd64 v2.1.32 + HLS Proxy for IPTV 7.4.1:</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">mkdir</span> <span class="o">-</span><span class="nb">p</span> <span class="sr">/opt/</span><span class="n">hlsp</span> <span class="o">&&</span> <span class="n">cd</span> <span class="sr">/opt/</span><span class="n">hlsp</span>
<span class="n">docker</span> <span class="n">network</span> <span class="n">create</span> <span class="o">-</span><span class="n">d</span> <span class="n">bridge</span> <span class="o">--</span><span class="n">subnet</span><span class="o">=</span><span class="mf">172.21</span><span class="o">.</span><span class="mf">0.0</span><span class="o">/</span><span class="mi">16</span> <span class="n">hlsp_default</span>
<span class="n">nano</span> <span class="n">docker</span><span class="o">-</span><span class="n">compose</span><span class="p">.</span><span class="nf">yml</span>
<span class="ss">version: </span><span class="s2">"2"</span>
<span class="ss">services:
zmp:
container_name: </span><span class="n">zmp2132</span>
<span class="ss">image: </span><span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="p">:</span><span class="mi">2132</span>
<span class="ss">environment:
</span><span class="o">-</span> <span class="no">ZMP_HOST</span><span class="o">=</span><span class="mf">172.21</span><span class="o">.</span><span class="mf">0.2</span>
<span class="ss">restart: </span><span class="n">always</span>
<span class="ss">tty: </span><span class="kp">true</span>
<span class="ss">hlsproxy:
container_name: </span><span class="n">hlsp</span>
<span class="ss">image: </span><span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:hlsproxy</span>
<span class="ss">restart: </span><span class="n">always</span>
<span class="ss">ports:
</span><span class="o">-</span> <span class="s2">"26040:26040"</span>
<span class="n">docker</span><span class="o">-</span><span class="n">compose</span> <span class="n">up</span> <span class="o">-</span><span class="n">d</span>
</code></pre></div></div>
<h3 id="0000x-запуск-zmediaproxy-2132-linux-amd64">0000x. Запуск ZMediaProxy 2.1.32 linux-amd64:</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">docker</span> <span class="n">run</span> <span class="o">-</span><span class="n">d</span> <span class="o">--</span><span class="nb">name</span> <span class="n">zmp64</span> <span class="o">--</span><span class="n">restart</span><span class="o">=</span><span class="n">always</span> <span class="o">-</span><span class="n">e</span> <span class="no">ZMP_HOST</span><span class="o">=</span><span class="mf">192.168</span><span class="o">.</span><span class="mf">178.26</span> <span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="p">:</span><span class="mi">2132</span>
</code></pre></div></div>
<p>‘ZMP_HOST=’ замените на своё значение!
порт по умолчанию 8082, если надо другой то можно менять ‘-e ZMP_PORT=xxxx’
плейлист по умолчанию всегда ‘http://immo.date/ero.m3u’, если надо другой то ‘-e ZMP_PLAYLIST=http://xxx.m3u’</p>
<h3 id="000x-запуск-zmediaproxy-2126-linux-amd64">000x. Запуск ZMediaProxy 2.1.26 linux-amd64:</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">docker</span> <span class="n">run</span> <span class="o">-</span><span class="n">d</span> <span class="o">--</span><span class="nb">name</span> <span class="n">zmp64</span> <span class="o">--</span><span class="n">restart</span><span class="o">=</span><span class="n">always</span> <span class="o">-</span><span class="n">e</span> <span class="no">ZMP_HOST</span><span class="o">=</span><span class="mf">192.168</span><span class="o">.</span><span class="mf">178.26</span> <span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="p">:</span><span class="mi">2126</span>
</code></pre></div></div>
<p>‘ZMP_HOST=’ замените на своё значение!
порт по умолчанию 8082, можно менять ‘-e ZMP_PORT=8082’
<img src="https://user-images.githubusercontent.com/24189833/102697826-2ff3ad80-4239-11eb-8292-d791e38f6cd1.png" alt="2020-12-19" /></p>
<h3 id="00x-запуск-zmediaproxy-2126-linux-arm64-на-rpi3bubuntu-server-20041">00x. Запуск ZMediaProxy 2.1.26 linux-arm64 на RPi3B+(Ubuntu Server 20.04.1):</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/94855108-4ce4c580-042e-11eb-98e8-791019a6b156.png" alt="Ubuntu+Server+on+Raspberry+Pi" /></p>
<p>Используйте Raspberry Pi Imager, чтобы легко установить Raspberry Pi OS и другие операционные системы на SD-карту, готовую к использованию с Raspberry Pi:</p>
<h4 id="raspberry-pi-imager-for-windows"><a href="https://downloads.raspberrypi.org/imager/imager_1.4.exe">Raspberry Pi Imager for Windows</a></h4>
<h4 id="raspberry-pi-imager-for-macos"><a href="https://downloads.raspberrypi.org/imager/imager_1.4.dmg">Raspberry Pi Imager for macOS</a></h4>
<h4 id="raspberry-pi-imager-for-ubuntu"><a href="https://downloads.raspberrypi.org/imager/imager_1.4_amd64.deb">Raspberry Pi Imager for Ubuntu</a></h4>
<p><img src="https://user-images.githubusercontent.com/24189833/94856163-dba61200-042f-11eb-9625-13eb82099da0.png" alt="2020-10-01 (2)" /></p>
<h4 id="вход-по-ssh-на-сервер-pi">Вход по ssh на сервер Pi</h4>
<h4 id="когда-будет-предложено-войти-в-систему-используйте-ubuntu-в-качестве-имени-пользователя-и-пароля-вам-будет-предложено-изменить-этот-пароль-по-умолчанию-после-входа-в-систему">Когда будет предложено войти в систему, используйте «ubuntu» в качестве имени пользователя и пароля. Вам будет предложено изменить этот пароль по умолчанию после входа в систему.</h4>
<p><img src="https://user-images.githubusercontent.com/24189833/94856792-c54c8600-0430-11eb-8965-20dc2223200b.png" alt="2020-10-01 (3)" /></p>
<h4 id="вариант-1--в-ручную">Вариант 1 , в ручную</h4>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">sudo</span> <span class="o">-</span><span class="n">i</span>
<span class="n">cd</span> <span class="sr">/opt && wget https:/</span><span class="o">/</span><span class="n">f002</span><span class="p">.</span><span class="nf">backblazeb2</span><span class="p">.</span><span class="nf">com</span><span class="o">/</span><span class="n">file</span><span class="o">/</span><span class="n">tvplaylist</span><span class="o">/</span><span class="n">zmp</span><span class="o">-</span><span class="n">arm64</span>
<span class="n">nano</span> <span class="sr">/etc/s</span><span class="n">ystemd</span><span class="o">/</span><span class="nb">system</span><span class="o">/</span><span class="n">zmp</span><span class="p">.</span><span class="nf">service</span>
<span class="p">[</span><span class="no">Unit</span><span class="p">]</span>
<span class="no">Description</span><span class="o">=</span><span class="no">ZMediaProxy</span>
<span class="no">After</span><span class="o">=</span><span class="n">network</span><span class="p">.</span><span class="nf">target</span>
<span class="p">[</span><span class="no">Service</span><span class="p">]</span>
<span class="no">Type</span><span class="o">=</span><span class="n">simple</span>
<span class="no">Restart</span><span class="o">=</span><span class="n">on</span><span class="o">-</span><span class="n">failure</span>
<span class="no">RestartSec</span><span class="o">=</span><span class="mi">10</span><span class="n">s</span>
<span class="no">ExecStart</span><span class="o">=</span><span class="sr">/opt/</span><span class="n">zmp</span><span class="o">-</span><span class="n">arm64</span> <span class="o">--</span><span class="n">host</span> <span class="s2">"192.168.178.195"</span> <span class="o">--</span><span class="n">best</span> <span class="o">--</span><span class="n">rosnd</span> <span class="n">http</span><span class="ss">:/</span><span class="o">/</span><span class="n">immo</span><span class="p">.</span><span class="nf">date</span><span class="o">/</span><span class="n">ero</span><span class="p">.</span><span class="nf">m3u</span> <span class="o">--</span><span class="n">loglevel</span> <span class="n">off</span>
<span class="p">[</span><span class="no">Install</span><span class="p">]</span>
<span class="no">WantedBy</span><span class="o">=</span><span class="n">multi</span><span class="o">-</span><span class="n">user</span><span class="p">.</span><span class="nf">target</span>
<span class="n">systemctl</span> <span class="n">start</span> <span class="n">zmp</span><span class="p">.</span><span class="nf">service</span>
<span class="n">systemctl</span> <span class="n">enable</span> <span class="n">zmp</span><span class="p">.</span><span class="nf">service</span>
<span class="n">systemctl</span> <span class="n">status</span> <span class="n">zmp</span><span class="p">.</span><span class="nf">service</span>
</code></pre></div></div>
<p><img src="https://user-images.githubusercontent.com/24189833/94857176-61768d00-0431-11eb-9d85-ac8a898a19ec.png" alt="2020-10-01 (1)" /></p>
<p><img src="https://user-images.githubusercontent.com/24189833/94857225-77844d80-0431-11eb-802f-82a8f4ff4e74.png" alt="2020-10-01" /></p>
<h3 id="000x-запуск-zmediaproxy-212-на-synology-nas-server-v64">000x. Запуск ZMediaProxy 2.1.2 на Synology NAS-Server v64</h3>
<p><img src="https://user-images.githubusercontent.com/24189833/95739613-64704980-0c8b-11eb-9b02-d076e6e69916.gif" alt="2126" /></p>
<h3 id="001-запуск-zmp-v1010--xteve-m3u-proxy-v212для-сервера-vpsvds">001. Запуск zmp-v1.0.10 + xTeVe-M3U Proxy v2.1.2(для сервера vps/vds):</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">mkdir</span> <span class="o">-</span><span class="nb">p</span> <span class="sr">/opt/x</span><span class="n">teve_stream2</span><span class="o">/</span><span class="n">xteve</span><span class="o">/</span><span class="n">_config</span>
<span class="n">mkdir</span> <span class="o">-</span><span class="nb">p</span> <span class="sr">/opt/x</span><span class="n">teve_stream2</span><span class="o">/</span><span class="n">tmp_xteve</span> <span class="o">&&</span> <span class="n">cd</span> <span class="sr">/opt/x</span><span class="n">teve_stream2</span>
<span class="n">nano</span> <span class="n">docker</span><span class="o">-</span><span class="n">compose</span><span class="p">.</span><span class="nf">yml</span>
<span class="ss">version: </span><span class="s1">'3'</span>
<span class="ss">services:
zmp:
container_name: </span><span class="n">zmp</span>
<span class="ss">image: </span><span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:zproxy</span>
<span class="ss">ports:
</span><span class="o">-</span> <span class="s2">"2020:2020"</span>
<span class="ss">restart: </span><span class="n">always</span>
<span class="ss">tty: </span><span class="kp">true</span>
<span class="ss">xteveproxy:
container_name: </span><span class="n">xteve</span>
<span class="ss">image: </span><span class="n">sybdata</span><span class="o">/</span><span class="n">xteve</span>
<span class="ss">logging:
driver: </span><span class="s2">"json-file"</span>
<span class="ss">options:
</span><span class="n">max</span><span class="o">-</span><span class="ss">size: </span><span class="s2">"10m"</span>
<span class="n">max</span><span class="o">-</span><span class="ss">file: </span><span class="s2">"3"</span>
<span class="ss">volumes:
</span><span class="o">-</span> <span class="s2">"/opt/xteve_stream2/xteve/:/root/.xteve:rw"</span>
<span class="o">-</span> <span class="s2">"/opt/xteve_stream2/xteve/_config:/config:rw"</span>
<span class="o">-</span> <span class="s2">"/opt/xteve_stream2/tmp_xteve:/tmp/xteve:rw"</span>
<span class="ss">restart: </span><span class="n">always</span>
<span class="ss">ports:
</span><span class="o">-</span> <span class="s2">"34400:34400"</span>
<span class="n">docker</span><span class="o">-</span><span class="n">compose</span> <span class="n">up</span> <span class="o">-</span><span class="n">d</span>
</code></pre></div></div>
<h3 id="редактирование-плейлиста-zmp">Редактирование плейлиста zmp:</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">nano</span> <span class="sr">/opt/</span><span class="n">zparser_xteve</span><span class="p">.</span><span class="nf">sh</span>
<span class="c1">#!/bin/sh</span>
<span class="c1"># for *nix shell</span>
<span class="n">get_file_zproxy</span><span class="p">()</span>
<span class="p">{</span>
<span class="n">local</span> <span class="no">URL</span><span class="o">=</span><span class="s2">"http:zmp-ip:32020/$(basename $1)"</span>
<span class="n">curl</span> <span class="o">--</span><span class="n">compressed</span> <span class="o">--</span><span class="n">connect</span><span class="o">-</span><span class="n">timeout</span> <span class="mi">10</span> <span class="o">--</span><span class="n">max</span><span class="o">-</span><span class="n">time</span> <span class="mi">30</span> <span class="o">--</span><span class="nb">fail</span> <span class="o">-</span><span class="no">R</span> <span class="o">-</span><span class="n">z</span> <span class="s2">"$1"</span> <span class="o">-</span><span class="n">o</span> <span class="s2">"$1"</span> <span class="s2">"${URL}"</span>
<span class="p">}</span>
<span class="n">get_file_zproxy</span> <span class="sr">/opt/x</span><span class="n">teve_stream2</span><span class="o">/</span><span class="n">xteve</span><span class="o">/</span><span class="n">data</span><span class="o">/</span><span class="n">playlist_nd</span><span class="p">.</span><span class="nf">m3u8</span>
<span class="n">sed</span> <span class="o">-</span><span class="n">i</span> <span class="s1">'s/0.0.0.0/zmp-ip/g'</span> <span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">xteve_stream2</span><span class="o">/</span><span class="n">xteve</span><span class="o">/</span><span class="n">data</span><span class="o">/</span><span class="n">playlist_nd</span><span class="p">.</span><span class="nf">m3u8</span>
<span class="n">mv</span> <span class="sr">/opt/x</span><span class="n">teve_stream2</span><span class="o">/</span><span class="n">xteve</span><span class="o">/</span><span class="n">data</span><span class="o">/</span><span class="n">playlist_nd</span><span class="p">.</span><span class="nf">m3u8</span> <span class="sr">/opt/x</span><span class="n">teve_stream2</span><span class="o">/</span><span class="n">xteve</span><span class="o">/</span><span class="n">data</span><span class="o">/</span><span class="n">hls5_zmp_nd</span><span class="p">.</span><span class="nf">m3u8</span>
</code></pre></div></div>
<p>права и запускаем</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">chmod</span> <span class="o">+</span><span class="n">x</span> <span class="sr">/opt/</span><span class="n">zparser_xteve</span><span class="p">.</span><span class="nf">sh</span>
<span class="sr">/opt/</span><span class="n">zparser_xteve</span><span class="p">.</span><span class="nf">sh</span>
</code></pre></div></div>
<p>запись в крон</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">crontab</span> <span class="o">-</span><span class="n">e</span>
<span class="mi">0</span> <span class="o">*</span><span class="sr">/5 * * * /o</span><span class="n">pt</span><span class="o">/</span><span class="n">zparser_xteve</span><span class="p">.</span><span class="nf">sh</span> <span class="o">></span> <span class="sr">/dev/nu</span><span class="n">ll</span> <span class="mi">2</span><span class="o">>&</span><span class="mi">1</span>
</code></pre></div></div>
<h2 id="initial-configuration">Initial Configuration</h2>
<ul>
<li>Запустите браузер
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="o">...</span>
<span class="p">[</span><span class="n">xTeVe</span><span class="p">]</span> <span class="no">Web</span> <span class="no">Interface</span><span class="p">:</span> <span class="n">http</span><span class="ss">:/</span><span class="o">/</span><span class="n">xteve</span><span class="o">-</span><span class="n">ip</span><span class="p">:</span><span class="mi">34400</span><span class="o">/</span><span class="n">web</span><span class="o">/</span>
<span class="o">...</span>
</code></pre></div> </div>
</li>
</ul>
<h3 id="мастер-настройки">Мастер настройки</h3>
<figure class="">
<img src="https://raw.githubusercontent.com/xteve-project/xTeVe-Documentation/master/images/configuration-01.png" alt="this is a placeholder image" />
<figcaption>
</figcaption></figure>
<h4 id="m3u-playlist">M3U Playlist</h4>
<p>Specify an M3U playlist, local or from a web server.</p>
<p>Local path:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>/path/to/playlist.m3u
</code></pre></div></div>
<figure class="">
<img src="https://user-images.githubusercontent.com/24189833/93721923-6024a500-fb93-11ea-973d-d7eebef08641.png
" alt="this is a placeholder image" />
<figcaption>
</figcaption></figure>
<p>Web server:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>http://example.com/playlist.m3u
</code></pre></div></div>
<h4 id="xmltv-file">XMLTV File</h4>
<p><strong>Only available with XEPG</strong>
Specify an XMLTV file, local or from a web server.</p>
<p>Local path:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>/path/to/xmltv.xml
</code></pre></div></div>
<p>Web server:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>http://example.com/xmltv.xml
</code></pre></div></div>
<figure class="">
<img src="https://user-images.githubusercontent.com/24189833/93721944-82b6be00-fb93-11ea-9dea-b6e6d4fb166f.png
" alt="this is a placeholder image" />
<figcaption>
</figcaption></figure>
<h3 id="00-запуск-zmp-linux-amd64--xteve-m3u-proxy-v212">00. Запуск zmp-linux-amd64 + xTeVe-M3U Proxy v2.1.2:</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">mkdir</span> <span class="o">-</span><span class="nb">p</span> <span class="sr">/opt/x</span><span class="n">teve_stream</span><span class="o">/</span><span class="n">config</span>
<span class="n">mkdir</span> <span class="o">-</span><span class="nb">p</span> <span class="sr">/opt/x</span><span class="n">teve_stream</span><span class="o">/</span><span class="n">tmp_xteve</span>
<span class="n">docker</span> <span class="n">network</span> <span class="n">create</span> <span class="o">-</span><span class="n">d</span> <span class="n">bridge</span> <span class="o">--</span><span class="n">subnet</span><span class="o">=</span><span class="mf">172.22</span><span class="o">.</span><span class="mf">0.0</span><span class="o">/</span><span class="mi">16</span> <span class="n">xteve_stream_default</span>
<span class="n">nano</span> <span class="n">docker</span><span class="o">-</span><span class="n">compose</span><span class="p">.</span><span class="nf">yml</span>
<span class="ss">version: </span><span class="s1">'3'</span>
<span class="ss">services:
zmp:
container_name: </span><span class="n">zmp02</span>
<span class="ss">image: </span><span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:ss2224</span>
<span class="ss">command: </span><span class="sr">/opt/s</span><span class="n">tart</span><span class="p">.</span><span class="nf">sh</span> <span class="mf">172.22</span><span class="o">.</span><span class="mf">0.2</span> <span class="mi">47272</span>
<span class="ss">restart: </span><span class="n">always</span>
<span class="ss">tty: </span><span class="kp">true</span>
<span class="ss">xteveproxy:
container_name: </span><span class="n">xteve</span>
<span class="ss">image: </span><span class="n">tnwhitwell</span><span class="o">/</span><span class="n">xteve</span><span class="ss">:latest</span>
<span class="ss">volumes:
</span><span class="o">-</span> <span class="s2">"/opt/xteve_stream/config:/config"</span>
<span class="o">-</span> <span class="s2">"/opt/xteve_stream/tmp_xteve:/tmp/xteve"</span>
<span class="ss">restart: </span><span class="n">always</span>
<span class="ss">user: </span><span class="s2">"root:root"</span>
<span class="ss">ports:
</span><span class="o">-</span> <span class="s2">"34400:34400"</span>
<span class="n">docker</span><span class="o">-</span><span class="n">compose</span> <span class="n">up</span> <span class="o">-</span><span class="n">d</span>
</code></pre></div></div>
<figure class="">
<img src="https://user-images.githubusercontent.com/24189833/93688833-3a32ce00-fac9-11ea-8467-c523f42deee7.png" alt="this is a placeholder image" />
<figcaption>
</figcaption></figure>
<h3 id="0-запуск-zmp-linux-amd64для-локального-сервера-nas">0. Запуск zmp-linux-amd64(для локального сервера nas):</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">docker</span> <span class="n">run</span> <span class="o">-</span><span class="n">d</span> <span class="o">--</span><span class="n">net</span><span class="o">=</span><span class="n">host</span> <span class="o">--</span><span class="nb">name</span> <span class="mi">2224</span> <span class="o">--</span><span class="n">restart</span><span class="o">=</span><span class="n">always</span> <span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:ss2224</span> <span class="n">sh</span> <span class="o">-</span><span class="n">c</span> <span class="s2">"/opt/start.sh 192.168.0.22 7777"</span>
</code></pre></div></div>
<h3 id="1-запуск-zmp-v1010">1. Запуск zmp-v1.0.10:</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">docker</span> <span class="n">run</span> <span class="o">-</span><span class="n">d</span> <span class="o">-</span><span class="nb">p</span> <span class="mi">2020</span><span class="p">:</span><span class="mi">2020</span> <span class="o">--</span><span class="nb">name</span> <span class="n">zproxy</span> <span class="o">--</span><span class="n">restart</span><span class="o">=</span><span class="n">always</span> <span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:zproxy</span>
</code></pre></div></div>
<h3 id="2-запуск-zmp-v2122-x86zmp-v2123-x86для-локального-сервера-nas">2. Запуск zmp-v2.1.22-x86/zmp-v2.1.23-x86(для локального сервера nas):</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">docker</span> <span class="n">run</span> <span class="o">-</span><span class="n">d</span> <span class="o">--</span><span class="n">net</span><span class="o">=</span><span class="n">host</span> <span class="o">--</span><span class="nb">name</span> <span class="n">zmp2122</span> <span class="o">--</span><span class="n">restart</span><span class="o">=</span><span class="n">always</span> <span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:ss2122r</span> <span class="n">sh</span> <span class="o">-</span><span class="n">c</span> <span class="s2">"/opt/start.sh 192.168.0.22 7272"</span>
<span class="n">docker</span> <span class="n">run</span> <span class="o">-</span><span class="n">d</span> <span class="o">--</span><span class="n">net</span><span class="o">=</span><span class="n">host</span> <span class="o">--</span><span class="nb">name</span> <span class="n">zmp2123</span> <span class="o">--</span><span class="n">restart</span><span class="o">=</span><span class="n">always</span> <span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:ss2123</span> <span class="n">sh</span> <span class="o">-</span><span class="n">c</span> <span class="s2">"/opt/start.sh 192.168.0.22 7272"</span>
</code></pre></div></div>
<h3 id="2a-запуск-zmp-v2122-x86zmp-v2123-x86для-сервера-vpsvds">2a. Запуск zmp-v2.1.22-x86/zmp-v2.1.23-x86(для сервера vps/vds):</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">docker</span> <span class="n">network</span> <span class="n">create</span> <span class="o">-</span><span class="n">d</span> <span class="n">bridge</span> <span class="o">--</span><span class="n">subnet</span><span class="o">=</span><span class="mf">172.18</span><span class="o">.</span><span class="mf">0.0</span><span class="o">/</span><span class="mi">16</span> <span class="n">znetwork</span>
<span class="n">docker</span> <span class="n">run</span> <span class="o">-</span><span class="n">d</span> <span class="o">--</span><span class="n">net</span> <span class="n">znetwork</span> <span class="o">--</span><span class="n">ip</span><span class="o">=</span><span class="s2">"172.18.0.6"</span> <span class="o">-</span><span class="nb">p</span> <span class="mi">7676</span><span class="p">:</span><span class="mi">7676</span> <span class="o">--</span><span class="nb">name</span> <span class="n">zmp2122</span> <span class="o">--</span><span class="n">restart</span><span class="o">=</span><span class="n">always</span> <span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:ss2122r</span> <span class="n">sh</span> <span class="o">-</span><span class="n">c</span> <span class="s2">"/opt/start.sh 172.18.0.6 7676"</span>
<span class="n">docker</span> <span class="n">run</span> <span class="o">-</span><span class="n">d</span> <span class="o">--</span><span class="n">net</span> <span class="n">znetwork</span> <span class="o">--</span><span class="n">ip</span><span class="o">=</span><span class="s2">"172.18.0.7"</span> <span class="o">-</span><span class="nb">p</span> <span class="mi">7777</span><span class="p">:</span><span class="mi">7777</span> <span class="o">--</span><span class="nb">name</span> <span class="n">zmp2123</span> <span class="o">--</span><span class="n">restart</span><span class="o">=</span><span class="n">always</span> <span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:ss2123</span> <span class="n">sh</span> <span class="o">-</span><span class="n">c</span> <span class="s2">"/opt/start.sh 172.18.0.7 7777"</span>
</code></pre></div></div>
<h3 id="2b-запуск-zmp-linux-amd64--hls-proxy-for-iptv-707для-сервера-vpsvds">2b. Запуск zmp-linux-amd64 + HLS Proxy for IPTV 7.0.7(для сервера vps/vds):</h3>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">mkdir</span> <span class="o">-</span><span class="nb">p</span> <span class="sr">/opt/</span><span class="n">hlsp</span> <span class="o">&&</span> <span class="n">cd</span> <span class="sr">/opt/</span><span class="n">hlsp</span>
<span class="n">docker</span> <span class="n">network</span> <span class="n">create</span> <span class="o">-</span><span class="n">d</span> <span class="n">bridge</span> <span class="o">--</span><span class="n">subnet</span><span class="o">=</span><span class="mf">172.21</span><span class="o">.</span><span class="mf">0.0</span><span class="o">/</span><span class="mi">16</span> <span class="n">hlsp_default</span>
<span class="n">nano</span> <span class="n">docker</span><span class="o">-</span><span class="n">compose</span><span class="p">.</span><span class="nf">yml</span>
<span class="ss">version: </span><span class="s2">"2"</span>
<span class="ss">services:
zmp:
container_name: </span><span class="n">zmp01</span>
<span class="ss">image: </span><span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:ss2224</span>
<span class="ss">command: </span><span class="sr">/opt/s</span><span class="n">tart</span><span class="p">.</span><span class="nf">sh</span> <span class="mf">172.21</span><span class="o">.</span><span class="mf">0.2</span> <span class="mi">7272</span>
<span class="ss">restart: </span><span class="n">always</span>
<span class="ss">tty: </span><span class="kp">true</span>
<span class="ss">hlsproxy:
container_name: </span><span class="n">hlsp</span>
<span class="ss">image: </span><span class="n">sybdata</span><span class="o">/</span><span class="n">ace86a37</span><span class="ss">:hlsproxy</span>
<span class="ss">restart: </span><span class="n">always</span>
<span class="ss">ports:
</span><span class="o">-</span> <span class="s2">"8040:8040"</span>
<span class="n">docker</span><span class="o">-</span><span class="n">compose</span> <span class="n">up</span> <span class="o">-</span><span class="n">d</span>
<span class="n">docker</span> <span class="nb">exec</span> <span class="o">-</span><span class="n">w</span> <span class="sr">/opt/</span> <span class="n">hlsp</span> <span class="p">.</span><span class="nf">/</span><span class="n">hls</span><span class="o">-</span><span class="n">proxy</span> <span class="o">-</span><span class="n">port</span> <span class="mi">8040</span> <span class="o">-</span><span class="n">address</span> <span class="mf">0.0</span><span class="o">.</span><span class="mf">0.0</span> <span class="o">-</span><span class="n">save</span>
</code></pre></div></div>
<figure class="">
<img src="https://user-images.githubusercontent.com/24189833/93003432-ec551d80-f53e-11ea-9f1c-70588a303ad9.png" alt="this is a placeholder image" />
<figcaption>
</figcaption></figure>
<p>идём в конфиг</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">http</span><span class="ss">:/</span><span class="o">/</span><span class="n">hls_proxy_ip</span><span class="p">:</span><span class="mi">8040</span><span class="o">/</span><span class="n">config</span>
</code></pre></div></div>
<p>в “Источники плейлистов” и прописываем ссылку ZMP</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">http</span><span class="ss">:/</span><span class="o">/</span><span class="mf">172.21</span><span class="o">.</span><span class="mf">0.2</span><span class="p">:</span><span class="mi">7272</span><span class="o">/</span><span class="n">playlist</span><span class="p">.</span><span class="nf">m3u8</span>
</code></pre></div></div>
<p>жмём “Сохранить”, после “Сохранить”, нажать “Статус”, и на странице статуса нажать “Перезагрузить плейлист”.</p>
<h3 id="4-логотипы-для-тв-каналов">4. <a href="https://sybdata.github.io/icon.html">Логотипы для ТВ каналов</a></h3>
<h3 id="5-список-серверов-epg-для-тв-каналов">5. <a href="http://epg.ott-play.com/">Список серверов EPG для ТВ каналов</a></h3>
<h4 id="пример-с-ottgepg-для-министры-портала-в-xml">пример с ottgepg для министры портала в .xml</h4>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">#!/bin/bash</span>
<span class="n">cd</span> <span class="sr">/patch to/o</span><span class="n">ttgepg</span>
<span class="n">rm</span> <span class="o">-</span><span class="n">fv</span> <span class="sr">/patch to/o</span><span class="n">ttgepg</span><span class="o">/*</span>
<span class="n">wget</span> <span class="n">http</span><span class="ss">:/</span><span class="o">/</span><span class="n">ottg</span><span class="p">.</span><span class="nf">tv</span><span class="o">/</span><span class="n">epg</span><span class="p">.</span><span class="nf">xml</span><span class="p">.</span><span class="nf">gz</span> <span class="o">&&</span> <span class="mi">7</span><span class="n">z</span> <span class="n">x</span> <span class="n">epg</span><span class="p">.</span><span class="nf">xml</span><span class="p">.</span><span class="nf">gz</span>
<span class="n">rm</span> <span class="o">*</span><span class="p">.</span><span class="nf">gz</span>
</code></pre></div></div>
<h4 id="epgxml"><a href="http://live.dedyn.io:2015/ottgepg/epg.xml">epg.xml</a></h4>SybDataCeph - turns out to be a giant PITA(Pain in the ass)2019-07-05T19:34:30+00:002019-07-05T19:34:30+00:00https://sybdata.github.io/blog/storage/Ceph%20-%20turns-out-to-be-a-giant-PITA(Pain%20in%20the%20ass)<figure class="">
<img src="https://sybdata.de/sphinx/_images/ditaa-409784e9076840f895f8cbd328a523961cda0d87.png" alt="this is a placeholder image" />
<figcaption>
</figcaption></figure>
<ul>
<li>Monitors: A Ceph Monitor (ceph-mon) maintains maps of the cluster state, including the monitor map, manager map, the OSD map, and the CRUSH map. These maps are critical cluster state required for Ceph daemons to coordinate with each other. Monitors are also responsible for managing authentication between daemons and clients. At least three monitors are normally required for redundancy and high availability.</li>
<li>Managers: A Ceph Manager daemon (ceph-mgr) is responsible for keeping track of runtime metrics and the current state of the Ceph cluster, including storage utilization, current performance metrics, and system load. The Ceph Manager daemons also host python-based modules to manage and expose Ceph cluster information, including a web-based Ceph Dashboard and REST API. At least two managers are normally required for high availability.</li>
<li>Ceph OSDs: A Ceph OSD (object storage daemon, ceph-osd) stores data, handles data replication, recovery, rebalancing, and provides some monitoring information to Ceph Monitors and Managers by checking other Ceph OSD Daemons for a heartbeat. At least 3 Ceph OSDs are normally required for redundancy and high availability.</li>
<li>MDSs: A Ceph Metadata Server (MDS, ceph-mds) stores metadata on behalf of the Ceph Filesystem (i.e., Ceph Block Devices and Ceph Object Storage do not use MDS). Ceph Metadata Servers allow POSIX file system users to execute basic commands (like ls, find, etc.) without placing an enormous burden on the Ceph Storage Cluster.</li>
</ul>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">[</span><span class="n">root</span><span class="vi">@ds1</span> <span class="o">/</span><span class="p">]</span><span class="c1"># ceph -s</span>
<span class="ss">cluster:
id: </span><span class="mi">4</span><span class="n">bf42ffc</span><span class="o">-</span><span class="n">eccb</span><span class="o">-</span><span class="mi">48</span><span class="n">c2</span><span class="o">-</span><span class="n">aa74</span><span class="o">-</span><span class="mi">7</span><span class="n">d82aa72196c</span>
<span class="ss">health: </span><span class="no">HEALTH_WARN</span>
<span class="n">mons</span> <span class="n">ds1</span><span class="p">,</span><span class="n">ds2</span><span class="p">,</span><span class="n">ds3</span> <span class="n">are</span> <span class="n">low</span> <span class="n">on</span> <span class="n">available</span> <span class="n">space</span>
<span class="ss">services:
mon: </span><span class="mi">3</span> <span class="n">daemons</span><span class="p">,</span> <span class="n">quorum</span> <span class="n">ds1</span><span class="p">,</span><span class="n">ds2</span><span class="p">,</span><span class="n">ds3</span>
<span class="ss">mgr: </span><span class="n">ds1</span><span class="p">(</span><span class="n">active</span><span class="p">),</span> <span class="ss">standbys: </span><span class="n">ds2</span><span class="p">,</span> <span class="n">ds3</span>
<span class="ss">mds: </span><span class="n">cephfs</span><span class="o">-</span><span class="mi">1</span><span class="o">/</span><span class="mi">1</span><span class="o">/</span><span class="mi">1</span> <span class="n">up</span> <span class="p">{</span><span class="mi">0</span><span class="o">=</span><span class="n">ds1</span><span class="o">=</span><span class="n">up</span><span class="ss">:active</span><span class="p">},</span> <span class="mi">2</span> <span class="n">up</span><span class="ss">:standby</span>
<span class="ss">osd: </span><span class="mi">3</span> <span class="ss">osds: </span><span class="mi">3</span> <span class="n">up</span><span class="p">,</span> <span class="mi">3</span> <span class="k">in</span>
<span class="ss">data:
pools: </span><span class="mi">2</span> <span class="n">pools</span><span class="p">,</span> <span class="mi">251</span> <span class="n">pgs</span>
<span class="ss">objects: </span><span class="mi">21</span> <span class="n">objects</span><span class="p">,</span> <span class="mf">2.19</span><span class="no">KiB</span>
<span class="ss">usage: </span><span class="mf">3.01</span><span class="no">GiB</span> <span class="n">used</span><span class="p">,</span> <span class="mi">147</span><span class="no">GiB</span> <span class="o">/</span> <span class="mi">150</span><span class="no">GiB</span> <span class="n">avail</span>
<span class="ss">pgs: </span><span class="mi">251</span> <span class="n">active</span><span class="o">+</span><span class="n">clean</span>
</code></pre></div></div>
<p>This state diagram shows the possible state transitions for the MDS/rank. The legend is as follows:
Color</p>
<ul>
<li>Green: MDS is active.</li>
<li>Orange: MDS is in transient state trying to become active.</li>
<li>Red: MDS is indicating a state that causes the rank to be marked failed.</li>
<li>Purple: MDS and rank is stopping.</li>
<li>Red: MDS is indicating a state that causes the rank to be marked damaged.</li>
</ul>
<p>Shape</p>
<ul>
<li>Circle: an MDS holds this state.</li>
<li>Hexagon: no MDS holds this state (it is applied to the rank).</li>
</ul>
<p>Lines</p>
<ul>
<li>A double-lined shape indicates the rank is “in”.</li>
</ul>
<figure class="">
<img src="https://sybdata.de/sphinx/_images/mds-state-diagram.svg" alt="this is a placeholder image" />
<figcaption>
</figcaption></figure>SybDataTop 10 MMC(.msc) & Control Panel(.cpl)2019-06-20T19:34:30+00:002019-06-20T19:34:30+00:00https://sybdata.github.io/blog/windows%2010%20-%20server/MMC-Consoles-(msc)-and-Control-Panel-files-(cpl)<p>Öffnen Sie PowerShell und führen Sie den folgenden Befehl aus, um eine Liste aller mmc- und cpl-Dateien abzurufen:</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="no">Get</span><span class="o">-</span><span class="no">ChildItem</span> <span class="o">-</span><span class="no">Path</span> <span class="no">C</span><span class="p">:\</span><span class="no">Windows</span><span class="p">\</span><span class="n">system32</span><span class="p">\</span><span class="o">*</span> <span class="o">-</span><span class="no">Include</span> <span class="o">*</span><span class="p">.</span><span class="nf">msc</span><span class="p">,</span> <span class="o">*</span><span class="p">.</span><span class="nf">cpl</span> <span class="o">|</span> <span class="no">Sort</span><span class="o">-</span><span class="no">Object</span> <span class="o">-</span><span class="no">Property</span> <span class="no">Extension</span> <span class="o">|</span> <span class="no">Select</span><span class="o">-</span><span class="no">Object</span> <span class="o">-</span><span class="no">Property</span> <span class="no">Name</span> <span class="o">|</span> <span class="no">Format</span><span class="o">-</span><span class="no">Wide</span> <span class="o">-</span><span class="no">Column</span> <span class="mi">4</span>
</code></pre></div></div>
<figure class="">
<img src="/blog/assets/images/mmscpl.png" alt="this is a placeholder image" />
<figcaption>
</figcaption></figure>
<h2 id="1-compmgmtmsc">1. compmgmt.msc</h2>
<p>Um sich einen Überblick über Ihren Computer zu verschaffen und Ihr System zu verwalten, öffnen Sie die Suche oder drücken Sie ALT + R und geben Sie compmgmt.msc ein.</p>
<figure class="">
<img src="/blog/assets/images/mmscpl02.png" alt="this is a placeholder image" />
<figcaption>
</figcaption></figure>
<h2 id="2-eventvwrmsc">2. eventvwr.msc</h2>
<p>Führen Sie zum Öffnen der Windows-Ereignisanzeige eventvwr.msc aus.</p>
<figure class="">
<img src="/blog/assets/images/mmscpl03.png" alt="this is a placeholder image" />
<figcaption>
</figcaption></figure>
<h2 id="3-fsmgmtmsc">3. fsmgmt.msc</h2>
<p>Um Ihre Dateifreigaben zu verwalten, rufen Sie sie direkt über die MMC-Konsole für freigegebene Ordner auf.</p>
<figure class="">
<img src="/blog/assets/images/mmscpl04.png" alt="this is a placeholder image" />
<figcaption>
</figcaption></figure>
<h2 id="4-lusrmgrmsc">4. lusrmgr.msc</h2>
<p>Schwer zu finden, aber hiermit ist es direkt zugänglich. Lokale Benutzer und Gruppen mit lusrmgr.msc verwalten.</p>
<figure class="">
<img src="/blog/assets/images/mmscpl05.png" alt="this is a placeholder image" />
<figcaption>
</figcaption></figure>
<h2 id="5-servicesmsc">5. services.msc</h2>
<figure class="">
<img src="/blog/assets/images/mmscpl06.png" alt="this is a placeholder image" />
<figcaption>
</figcaption></figure>SybDataÖffnen Sie PowerShell und führen Sie den folgenden Befehl aus, um eine Liste aller mmc- und cpl-Dateien abzurufen: Get-ChildItem -Path C:\Windows\system32\* -Include *.msc, *.cpl | Sort-Object -Property Extension | Select-Object -Property Name | Format-Wide -Column 4Informationen zu WSL 22019-06-13T21:36:30+00:002019-06-13T21:36:30+00:00https://sybdata.github.io/blog/windows%20subsystem%20for%20linux/Informationen-zu-WSL2<p>WSL 2 ist eine neue Version der Architektur, die dem Windows-Subsystem für Linux zum Ausführen von ELF64 Linux-Binärdateien auf Windows zugrunde liegen. Die Hauptziele sind, um die Leistung des Dateisystems, ebenso wie das Hinzufügen Aufruf vollständige Kompatibilität zu erhöhen. Diese neue Architektur ändert, wie diese Linux-Binärdateien mit Windows und Hardware des Computers zu interagieren, jedoch bietet weiterhin die gleiche benutzerfreundlichkeit wie WSL 1 (die aktuelle allgemein verfügbare Version). Einzelne-Linux auf Distributionen können entweder als eine WSL-1-Distribution oder als eine WSL-2-Distribution ausgeführt werden, aktualisiert oder zu einem beliebigen Zeitpunkt herabgestuft werden kann, und Sie können die WSL-1 und 2 von WSL Distributionen parallel ausführen. WSL 2 wird verwendet, eine ganz neue Architektur, die einen echten Linux-Kernel verwendet wird.
Linux kernel in WSL 2</p>
<p>Der Linux-Kernel in WSL 2 wird intern von der neuesten stabilen Verzweigung auf Grundlage der Quelle unter kernel.org erstellt. Dieser Kernel wurde speziell für WSL 2 abgestimmt. Es für die Größe und Leistung bieten eine hervorragende Benutzeroberfläche für Linux auf Windows optimiert wurde und werden verarbeitet, über Windows-Updates, was bedeutet, dass Sie den neuesten Sicherheitskorrekturen und kernelverbesserungen erhalten werden, ohne es selbst zu verwalten.</p>
<p>Außerdem werden diese Kernel open-Source. Sie finden den vollständigen Quellcode für den Linux-Kernel <a href="https://thirdpartysource.microsoft.com/download/Windows%20Subsystem%20for%20Linux%20v2/May%202019/WSLv2-Linux-Kernel-master.zip">hier</a>. Wenn Sie, um weitere Informationen möchten zu diesen Kernel, Sie sich sehen <a href="https://devblogs.microsoft.com/commandline/shipping-a-linux-kernel-with-windows/">in diesem Blogbeitrag</a> geschrieben, von dem Team, das sie erstellt.
Eine kurze Übersicht über die WSL-2-Architektur</p>
<p>WSL 2 verwendet das neueste und beste in Virtualisierungstechnologie, die Linux-Kernel in einem einfachen Hilfsprogramm-Computer (VM) ausgeführt. WSL 2 werden jedoch nicht über eine herkömmliche VM-Umgebung. Eine herkömmliche VM-Umgebung kann langsam gestartet sein, isoliert ist, viele Ressourcen verbraucht und Ihre Zeit für die Verwaltung erfordert. Diese Attribute keine WSL 2. Sie erhalten weiterhin die bemerkenswerte Vorteile von WSL 1: Hohes Maß an Integration zwischen Windows und Linux, extrem schnelle Startzeiten, kleine Speicherbedarf und das beste ist keine VM-Konfiguration oder Verwaltung erforderlich. Während WSL 2 einer virtuellen Maschine verwendet, wird es verwaltet und hinter den Kulissen, sodass Sie die gleiche benutzerfreundlichkeit wie WSL 1 ausgeführt werden.
Erhöhte-Datei-e/a-Leistung</p>
<p>Datei rechenintensive Vorgänge wie das Git-Klon, Npm installieren, apt-Update, apt-Upgrade usw. alle deutlich schneller. Die Erhöhung der tatsächlichen Geschwindigkeit hängt in der app sind Sie ausgeführt wird und wie sie mit dem Dateisystem interagieren wird. Anfängliche WSL-2-Versionen ausgeführt, bis zu 20 Mal schneller WSL 1 verglichen wird, beim Entpacken einer ZIP-Tarball, und um 2 bis 5 X schneller ausgeführt, wenn Git-Klon “,” Npm Install “und” Cmake an verschiedenen Projekten verwenden.
Kompatibilität der vollständigen Aufruf</p>
<p>Linux-Binärdateien verwenden Systemaufrufe für viele Funktionen, z. B. den Zugriff auf Dateien, Arbeitsspeicher anfordern, das Erstellen von Prozessen und vieles mehr. Während WSL 1 eine Übersetzungsschicht, die vom Team WSL erstellt wurde verwendet, bietet WSL 2 einen eigenen Linux-Kernel Kompatibilität der vollständigen Aufruf. Dies führt zu einen komplett neuen Satz von apps, die Sie innerhalb von WSL, wie Docker und vieles mehr ausführen können. Darüber hinaus können keine Updates für den Linux-Kernel sofort auf Ihrem Computer hinzugefügt werden, anstatt die WSL-Team die Änderungen zu implementieren und dann warten, die sie hinzugefügt.</p>SybDataWSL 2 ist eine neue Version der Architektur, die dem Windows-Subsystem für Linux zum Ausführen von ELF64 Linux-Binärdateien auf Windows zugrunde liegen. Die Hauptziele sind, um die Leistung des Dateisystems, ebenso wie das Hinzufügen Aufruf vollständige Kompatibilität zu erhöhen. Diese neue Architektur ändert, wie diese Linux-Binärdateien mit Windows und Hardware des Computers zu interagieren, jedoch bietet weiterhin die gleiche benutzerfreundlichkeit wie WSL 1 (die aktuelle allgemein verfügbare Version). Einzelne-Linux auf Distributionen können entweder als eine WSL-1-Distribution oder als eine WSL-2-Distribution ausgeführt werden, aktualisiert oder zu einem beliebigen Zeitpunkt herabgestuft werden kann, und Sie können die WSL-1 und 2 von WSL Distributionen parallel ausführen. WSL 2 wird verwendet, eine ganz neue Architektur, die einen echten Linux-Kernel verwendet wird. Linux kernel in WSL 2Installieren von WSL 22019-06-13T19:37:30+00:002019-06-13T19:37:30+00:00https://sybdata.github.io/blog/windows%20subsystem%20for%20linux/Installationsanweisungen-f%C3%BCr-WSL2<p>Führen Sie zum Installieren und nutzen Sie WSL 2 die folgenden Schritte aus:</p>
<ul>
<li>Aktivieren Sie die “VM-Plattform” optionale Komponente</li>
<li>Legen Sie eine Distribution, die durch die WSL-2, die über die Befehlszeile unterstützt werden</li>
<li>Überprüfen Sie, welche Versionen von WSL Ihre Distributionen verwenden</li>
</ul>
<p>Aktivieren Sie die “VM-Plattform” optionale Komponente</p>
<p>Öffnen Sie PowerShell als Administrator, und führen Sie aus:</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="no">Enable</span><span class="o">-</span><span class="no">WindowsOptionalFeature</span> <span class="o">-</span><span class="no">Online</span> <span class="o">-</span><span class="no">FeatureName</span> <span class="no">VirtualMachinePlatform</span>
</code></pre></div></div>
<p>Nachdem diese Änderungen aktiviert sind, müssen Sie den Computer neu starten.
Legen Sie eine Distribution, die durch die WSL-2, die über die Befehlszeile unterstützt werden</p>
<p>In PowerShell ausführen:</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">wsl</span> <span class="o">--</span><span class="n">set</span><span class="o">-</span><span class="n">version</span> <span class="o"><</span><span class="no">Distro</span><span class="o">></span> <span class="mi">2</span>
</code></pre></div></div>
<p>und achten Sie darauf, ersetzen Sie dies <Distro> durch den tatsächlichen Namen von Ihrer Distribution. (Sie finden diese mit dem Befehl: wsl -l). Sie können an WSL 1 auf jederzeit ändern, indem den gleichen Befehl wie oben ausführen, aber ersetzen die "2" mit "1".</Distro></p>
<p>Darüber hinaus sollten Sie WSL 2 Stellen Sie die Standardarchitektur können Sie mit diesem Befehl dafür:</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">wsl</span> <span class="o">--</span><span class="n">set</span><span class="o">-</span><span class="n">default</span><span class="o">-</span><span class="n">version</span> <span class="mi">2</span>
</code></pre></div></div>
<p>Dies veranlasst alle neuen-Distribution, die Sie installieren, als eine Distribution WSL 2 initialisiert.
Beim Überprüfen, welche Versionen von WSL Ihre Distribution verwenden, sind abgeschlossen</p>
<p>So überprüfen, welche Versionen von WSL jede Distribution verwendet den folgenden Befehl verwenden:</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">wsl</span> <span class="o">--</span><span class="n">list</span> <span class="o">--</span><span class="n">verbose</span> <span class="n">oder</span> <span class="n">wsl</span> <span class="o">-</span><span class="n">l</span> <span class="o">-</span><span class="n">v</span>
</code></pre></div></div>
<p>Die Distribution, der Sie oben ausgewählt haben, sollte nun eine “2” in der Spalte “Version” anzeigen. Nun, da Sie danach können Sie beim Einstieg in Ihre WSL-2-Distribution!</p>SybDataFühren Sie zum Installieren und nutzen Sie WSL 2 die folgenden Schritte aus: