<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://tuna.am/blog/</id>
    <title>Tuna Документация Blog</title>
    <updated>2026-07-15T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://tuna.am/blog/"/>
    <subtitle>Tuna Документация Blog</subtitle>
    <icon>https://tuna.am/docs/img/favicon.ico</icon>
    <entry>
        <title type="html"><![CDATA[🔐 Ключи доступа (passkeys) — вход в Tuna без пароля]]></title>
        <id>https://tuna.am/blog/webauthn-passkeys/</id>
        <link href="https://tuna.am/blog/webauthn-passkeys/"/>
        <updated>2026-07-15T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Вход в аккаунт по биометрии или PIN — без пароля и одноразовых кодов. Работает с 1Password, Bitwarden, iCloud Keychain, Windows Hello и аппаратными ключами YubiKey.]]></summary>
        <content type="html"><![CDATA[<p>Пароли всем надоели: их придумывают, забывают, пересылают в чат «на пару минут», а потом меняют после очередной утечки. В Tuna появился способ забыть о них насовсем — вход по <strong>ключам доступа (passkeys)</strong>. Приложили палец, взглянули в камеру или ввели PIN — и вы уже в аккаунте. Ни пароля, ни кода из приложения-аутентификатора.</p>
<img src="https://tuna.am/blog/img/2026-07-15-webauthn/login.png" alt="Кнопка «Войти с ключом доступа» на странице входа Tuna">
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="что-такое-ключ-доступа">Что такое ключ доступа<a href="https://tuna.am/blog/webauthn-passkeys/#%D1%87%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%D0%BA%D0%BB%D1%8E%D1%87-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0" class="hash-link" aria-label="Прямая ссылка на Что такое ключ доступа" title="Прямая ссылка на Что такое ключ доступа" translate="no">​</a></h2>
<p>Ключ доступа (passkey) — это пара криптографических ключей, которая приходит на смену паролю. Приватная половина никогда не покидает ваше устройство, менеджер паролей или аппаратный брелок, а на серверах Tuna оседает только <strong>публичный</strong> ключ. Красть на нашей стороне попросту нечего: сам по себе публичный ключ для входа бесполезен, в отличие от базы паролей.</p>
<p>И ещё одна приятная деталь: каждый ключ намертво привязан к домену <code>tuna.am</code>. Подсунуть его на фишинговый сайт-двойник не выйдет — браузер даже не предложит ключ на чужом адресе. Пароль так не умеет: его можно выманить поддельной страницей или подобрать по утёкшей базе.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="чем-это-удобнее-пароля">Чем это удобнее пароля<a href="https://tuna.am/blog/webauthn-passkeys/#%D1%87%D0%B5%D0%BC-%D1%8D%D1%82%D0%BE-%D1%83%D0%B4%D0%BE%D0%B1%D0%BD%D0%B5%D0%B5-%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8F" class="hash-link" aria-label="Прямая ссылка на Чем это удобнее пароля" title="Прямая ссылка на Чем это удобнее пароля" translate="no">​</a></h2>
<ul>
<li class=""><strong>Нечего запоминать и вводить.</strong> Логин — это один клик и касание пальцем, а не строчка из 16 символов со спецзнаками.</li>
<li class=""><strong>Не выманить фишингом.</strong> Ключ срабатывает только на настоящем домене Tuna — фальшивая страница уйдёт ни с чем.</li>
<li class=""><strong>Один шаг вместо двух.</strong> Passkey сам по себе сочетает два фактора: владение устройством плюс подтверждение личности (биометрия или PIN). Поэтому при входе по ключу Tuna <strong>не спрашивает отдельный одноразовый код</strong> — двухфакторность уже соблюдена.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="где-может-жить-ваш-ключ">Где может жить ваш ключ<a href="https://tuna.am/blog/webauthn-passkeys/#%D0%B3%D0%B4%D0%B5-%D0%BC%D0%BE%D0%B6%D0%B5%D1%82-%D0%B6%D0%B8%D1%82%D1%8C-%D0%B2%D0%B0%D1%88-%D0%BA%D0%BB%D1%8E%D1%87" class="hash-link" aria-label="Прямая ссылка на Где может жить ваш ключ" title="Прямая ссылка на Где может жить ваш ключ" translate="no">​</a></h2>
<p>WebAuthn — это открытый стандарт (FIDO2), а не проприетарная фишка одного вендора. Поэтому Tuna дружит практически с любым современным хранилищем ключей. А их, по большому счёту, два семейства.</p>
<p><strong>Синхронизируемые passkeys</strong> — ключ живёт в вашем менеджере паролей или облачной связке и сам подтягивается на все ваши устройства. Сменили телефон — ключи уже там. Сюда относятся:</p>
<ul>
<li class=""><strong>менеджеры паролей</strong> — 1Password, Bitwarden, Dashlane, NordPass, Proton Pass, а для любителей держать всё локально — KeePassXC;</li>
<li class=""><strong>встроенные хранилища ОС</strong> — iCloud Keychain на Apple, Google Password Manager на Android и в Chrome, Windows Hello на Windows.</li>
</ul>
<p><strong>Аппаратные ключи (FIDO2)</strong> — отдельный физический брелок, из которого приватный ключ не извлекается в принципе. Максимальная защита для тех, кому важно, чтобы секрет не покидал железку:</p>
<ul>
<li class=""><strong>YubiKey</strong> от Yubico — де-факто отраслевой стандарт, версии под USB-A, USB-C и NFC (на скриншоте выше как раз добавлен такой — «Yubico 1»);</li>
<li class=""><strong>Google Titan</strong>, <strong>Feitian</strong>, <strong>Nitrokey</strong> (открытая прошивка), <strong>Token2</strong> и другие совместимые с FIDO2 ключи.</li>
</ul>
<p>Один брелок хранит десятки, а современные модели — и сотни ключей от разных сервисов, так что заводить отдельный «на Tuna» не нужно.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="как-добавить-ключ">Как добавить ключ<a href="https://tuna.am/blog/webauthn-passkeys/#%D0%BA%D0%B0%D0%BA-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BA%D0%BB%D1%8E%D1%87" class="hash-link" aria-label="Прямая ссылка на Как добавить ключ" title="Прямая ссылка на Как добавить ключ" translate="no">​</a></h2>
<p>Откройте <a href="https://my.tuna.am/profile" target="_blank" rel="noopener noreferrer" class="">Профиль</a> и найдите блок <strong>«Ключи доступа (passkeys)»</strong> рядом с настройками двухфакторной аутентификации. Нажмите <strong>«Добавить ключ»</strong>, а дальше всё сделает браузер: предложит сохранить passkey в менеджер, связку ключей или на аппаратный брелок и попросит подтвердить создание.</p>
<img src="https://tuna.am/blog/img/2026-07-15-webauthn/settings.png" alt="Раздел «Ключи доступа (passkeys)» в профиле Tuna со списком ключей">
<p>К одному аккаунту можно привязать до <strong>10 ключей</strong> — например, по одному на рабочий ноутбук, телефон и физический YubiKey в связке. Каждый ключ виден в списке с датой добавления и временем последнего входа, его легко переименовать или удалить.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="как-войти-по-ключу">Как войти по ключу<a href="https://tuna.am/blog/webauthn-passkeys/#%D0%BA%D0%B0%D0%BA-%D0%B2%D0%BE%D0%B9%D1%82%D0%B8-%D0%BF%D0%BE-%D0%BA%D0%BB%D1%8E%D1%87%D1%83" class="hash-link" aria-label="Прямая ссылка на Как войти по ключу" title="Прямая ссылка на Как войти по ключу" translate="no">​</a></h2>
<p>На странице входа под основной кнопкой появилась кнопка <strong>«Войти с ключом доступа»</strong>. Нажимаете её, выбираете ключ, подтверждаете биометрией или PIN — и вы внутри. Никаких почты, пароля и кода из приложения.</p>
<p>А если в прошлый раз вы заходили именно так, рядом с кнопкой подсветится бейдж <strong>«Последний вход»</strong> — маленькая подсказка, чтобы не гадать, каким способом вы обычно пользуетесь.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="безопасность">Безопасность<a href="https://tuna.am/blog/webauthn-passkeys/#%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="hash-link" aria-label="Прямая ссылка на Безопасность" title="Прямая ссылка на Безопасность" translate="no">​</a></h2>
<ul>
<li class="">На серверах Tuna хранится только публичный ключ — приватная часть остаётся у вас.</li>
<li class="">Привязка к домену <code>tuna.am</code> защищает от фишинга.</li>
<li class="">Каждый вход требует подтверждения пользователя — биометрии или PIN.</li>
<li class="">Счётчик использований помогает выявить попытку клонирования ключа.</li>
</ul>
<p>При этом никто не заставляет бросать привычное: пароль и вход через Google, Yandex или Mail.ru работают как раньше. Ключи доступа их не отменяют, а дополняют — а каким способом входить, решаете вы.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="попробуйте-прямо-сейчас">Попробуйте прямо сейчас<a href="https://tuna.am/blog/webauthn-passkeys/#%D0%BF%D0%BE%D0%BF%D1%80%D0%BE%D0%B1%D1%83%D0%B9%D1%82%D0%B5-%D0%BF%D1%80%D1%8F%D0%BC%D0%BE-%D1%81%D0%B5%D0%B9%D1%87%D0%B0%D1%81" class="hash-link" aria-label="Прямая ссылка на Попробуйте прямо сейчас" title="Прямая ссылка на Попробуйте прямо сейчас" translate="no">​</a></h2>
<p>Загляните в <a href="https://my.tuna.am/profile" target="_blank" rel="noopener noreferrer" class="">Профиль</a>, откройте блок <strong>«Ключи доступа (passkeys)»</strong> и нажмите <strong>«Добавить ключ»</strong> — следующий вход в Tuna займёт одно касание.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/webauthn-passkeys/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отзыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/webauthn-passkeys/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="release" term="release"/>
        <category label="security" term="security"/>
        <category label="tuna" term="tuna"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Кто может зайти в ваш внутренний сервис? 5 способов закрыться авторизацией]]></title>
        <id>https://tuna.am/blog/apps-access-methods/</id>
        <link href="https://tuna.am/blog/apps-access-methods/"/>
        <updated>2026-07-02T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Как ограничить доступ к внутренним веб-сервисам: VPN, Basic auth, IP-фильтры, прокси с авторизацией и Tuna Apps]]></summary>
        <content type="html"><![CDATA[<p>Внутренние сервисы иногда нужно открывать — сотруднику, подрядчику или заказчику. Например, открыть staging, служебную панель, внутреннюю админку или API для интеграций. Или HTTP-сервис без собственной авторизации, вроде Prometheus или Alertmanager.</p>
<p>Возникает задача: не встраивать логин в каждый сервис отдельно, а поставить перед ним слой доступа и решить, кого пускать, каким способом и к каким путям.</p>
<p>Способов решить эту задачу несколько, и каждый хорош для своей ситуации. Разберём от самых простых к более гибким по контролю. В конце — сравнительная таблица.</p>
<p><a class="" href="https://tuna.am/docs/apps/">Перейти к разделу Приложения в документации</a></p>
<img src="https://tuna.am/docs/img/apps/policies_list.png" alt="Главная страница приложений">
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="способ-1-vpn-не-выставлять-сервис-наружу-вообще">Способ 1. VPN: не выставлять сервис наружу вообще<a href="https://tuna.am/blog/apps-access-methods/#%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1-1-vpn-%D0%BD%D0%B5-%D0%B2%D1%8B%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81-%D0%BD%D0%B0%D1%80%D1%83%D0%B6%D1%83-%D0%B2%D0%BE%D0%BE%D0%B1%D1%89%D0%B5" class="hash-link" aria-label="Прямая ссылка на Способ 1. VPN: не выставлять сервис наружу вообще" title="Прямая ссылка на Способ 1. VPN: не выставлять сервис наружу вообще" translate="no">​</a></h2>
<p>Классика: сервис живёт в приватной сети, доступ — только через VPN.</p>
<img src="https://tuna.am/blog/img/2026-07-02-apps-access-methods/VPN.webp" alt="VPN">
<p><strong>Когда работает.</strong> В компании уже есть поднятый и поддерживаемый VPN, все пользователи — штатные сотрудники с настроенными клиентами, и никого извне пускать не нужно.</p>
<p><strong>Ограничения:</strong></p>
<ul>
<li class="">Контроль на уровне сети, а не на уровне пользователя и пути. Настроить так, чтобы разработчики имели полный доступ, а дизайнеры — только к /dashboards, не получится.</li>
<li class="">VPN кто-то должен поднимать и поддерживать.</li>
</ul>
<p>Избыточен для небольших проектов. Разворачивать всё это ради одной Grafana и пяти человек — стрельба из пушки по воробьям.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="способ-2-basic-auth-логин-пароль-на-прокси">Способ 2. Basic auth: логин-пароль на прокси<a href="https://tuna.am/blog/apps-access-methods/#%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1-2-basic-auth-%D0%BB%D0%BE%D0%B3%D0%B8%D0%BD-%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C-%D0%BD%D0%B0-%D0%BF%D1%80%D0%BE%D0%BA%D1%81%D0%B8" class="hash-link" aria-label="Прямая ссылка на Способ 2. Basic auth: логин-пароль на прокси" title="Прямая ссылка на Способ 2. Basic auth: логин-пароль на прокси" translate="no">​</a></h2>
<p>Самый быстрый вариант: повесить HTTP basic auth на nginx или прямо на туннель — в Tuna это делается флагом при запуске:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna http </span><span class="token number" style="color:#36acaa">3000</span><span class="token plain"> --basic-auth</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"user:password"</span><br></div></code></pre></div></div>
<img src="https://tuna.am/blog/img/2026-07-02-apps-access-methods/basic_auth.png" alt="Basic auth">
<p><strong>Когда работает.</strong> Нужно на день-два показать демо заказчику или прикрыть тестовый стенд от случайных глаз и ботов. Одна пара логин-пароль, ноль настройки.</p>
<p><strong>Ограничения.</strong></p>
<ul>
<li class="">Не видно, кто заходил. Пароль один на всех, его пересылают в чатах — персональной привязки нет, и вы не узнаете, кто именно был внутри.</li>
<li class="">Доступ нельзя отозвать у одного человека — только сменить пароль сразу всем.</li>
<li class="">Нет ролей, второго фактора и журнала. Basic auth просто спрашивает пароль, но не дает разграничить права или посмотреть историю входов.</li>
</ul>
<p>По сути это замок для честных людей: подходит для демо на пару дней, но не для постоянного доступа к админке.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="способ-3-ip-фильтры-пускать-только-со-своих-адресов">Способ 3. IP-фильтры: пускать только со своих адресов<a href="https://tuna.am/blog/apps-access-methods/#%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1-3-ip-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D1%8B-%D0%BF%D1%83%D1%81%D0%BA%D0%B0%D1%82%D1%8C-%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D1%81%D0%BE-%D1%81%D0%B2%D0%BE%D0%B8%D1%85-%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%BE%D0%B2" class="hash-link" aria-label="Прямая ссылка на Способ 3. IP-фильтры: пускать только со своих адресов" title="Прямая ссылка на Способ 3. IP-фильтры: пускать только со своих адресов" translate="no">​</a></h2>
<p>Дать доступ списку IP или подсетей на файрволе, в nginx или на туннеле.</p>
<img src="https://tuna.am/blog/img/2026-07-02-apps-access-methods/ip_filter.png" alt="IP filters">
<p><strong>Когда работает.</strong> Доступ нужен из офиса со статическим адресом или с конкретных серверов (мониторинг, CI). Для машинного трафика с известных адресов — нормальное решение.</p>
<p><strong>Ограничения:</strong></p>
<ul>
<li class="">Когда люди работают из дома, с мобильного интернета и из поездок, и их адреса меняются.</li>
<li class="">Нет персональной привязки. Фильтр отвечает на вопрос, откуда пришли, но не кто пришёл.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="способ-4-собрать-самому-nginx--oauth2-proxy">Способ 4. Собрать самому: nginx + oauth2-proxy<a href="https://tuna.am/blog/apps-access-methods/#%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1-4-%D1%81%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D1%8C-%D1%81%D0%B0%D0%BC%D0%BE%D0%BC%D1%83-nginx--oauth2-proxy" class="hash-link" aria-label="Прямая ссылка на Способ 4. Собрать самому: nginx + oauth2-proxy" title="Прямая ссылка на Способ 4. Собрать самому: nginx + oauth2-proxy" translate="no">​</a></h2>
<p>Полноценная авторизация перед сервисом без правок его кода: реверс-прокси, перед ним oauth2-proxy, OIDC-провайдер, сертификаты.</p>
<img src="https://tuna.am/blog/img/2026-07-02-apps-access-methods/OAuth2_Proxy_horizontal.svg" alt="Nginx + oauth2-proxy">
<p><strong>Когда работает.</strong> У вас есть DevOps-ресурс, нестандартные требования и желание полностью контролировать каждый слой. Так работают многие инфраструктурные команды.</p>
<p><strong>Ограничения:</strong></p>
<ul>
<li class="">Выше порог входа. До запуска нужно связать прокси с провайдером, разобраться с cookie-доменами и редиректами, настроить обновление сертификатов.</li>
<li class="">Нужна поддержка. Связку нужно обслуживать и переделывать при каждой смене требований.</li>
<li class="">Тонкие правила собираются вручную. Чтобы открыть путь только одной группе пользователей и только с MFA, нужно использовать несколько инструментов.</li>
</ul>
<p>Для одного-двух внутренних сервисов такие трудозатраты редко окупаются.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="способ-5-zero-trust-реверс-прокси-готовый-слой-авторизации">Способ 5. Zero Trust реверс-прокси: готовый слой авторизации<a href="https://tuna.am/blog/apps-access-methods/#%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1-5-zero-trust-%D1%80%D0%B5%D0%B2%D0%B5%D1%80%D1%81-%D0%BF%D1%80%D0%BE%D0%BA%D1%81%D0%B8-%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D1%8B%D0%B9-%D1%81%D0%BB%D0%BE%D0%B9-%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8" class="hash-link" aria-label="Прямая ссылка на Способ 5. Zero Trust реверс-прокси: готовый слой авторизации" title="Прямая ссылка на Способ 5. Zero Trust реверс-прокси: готовый слой авторизации" translate="no">​</a></h2>
<p>Идея та же, что в способе 4 — проверять каждый запрос до того, как он дойдёт до приложения, — но всю инфраструктуру авторизации берёт на себя готовая платформа. Этот подход называют <a href="https://en.wikipedia.org/wiki/Zero_trust_architecture" target="_blank" rel="noopener noreferrer" class="">Zero Trust</a>. По нему работают корпоративные продукты вроде Cloudflare Access, а в <strong>Tuna</strong> это сервис <a href="https://tuna.am/docs/apps/" target="_blank" rel="noopener noreferrer" class="">Приложения</a>.</p>
<img src="https://tuna.am/docs/img/apps/auth_page.png" alt="Zero Trust">
<p>Как это выглядит на практике. Вы создаёте приложение в веб-интерфейсе и описываете правила доступа: какие пути кому открыты, где требовать второй фактор, кого не пускать вовсе. Проверка происходит на стороне Tuna — до вашего сервиса доходят только запросы, прошедшие все правила. В коде приложения ничего менять не нужно.</p>
<p>Несколько вещей, которые в самосборном варианте потребовали бы отдельных инструментов, здесь есть из коробки:</p>
<ul>
<li class=""><strong>разные способы входа под разных людей</strong> — корпоративный SSO для команды (Google, Yandex, GitHub, GitLab, VK или любой OIDC-провайдер) и одноразовый код на email для внешнего подрядчика, которому не нужно заводить аккаунт;</li>
<li class=""><strong>правила на уровне путей</strong> — например, служебный <code>/api/health</code> оставить открытым для проверок, а всё остальное закрыть; правила комбинируются по email, команде, стране, IP и способу входа;</li>
<li class=""><strong>управление доступом</strong> — режим запроса доступа с ручным одобрением (человек объясняет, зачем ему вход, а вы решаете, пускать ли), видимость активных сессий и отзыв доступа в любой момент: в разделе сессий видно, кто сейчас внутри, и любую сессию можно закрыть точечно или все разом;</li>
<li class=""><strong>сервисные токены</strong> для CI/CD и мониторинга — машинный трафик ходит отдельно от человеческого и так же подчиняется правилам;</li>
<li class=""><strong>журнал и сессии</strong> — в аудит-лог пишется, кто и откуда заходил, кто менял правила и выдавал доступ; видно историю входов и действий администраторов.</li>
</ul>
<p>Если у сервиса нет публичного IP — он на ноутбуке, за NAT, в закрытом контуре — его можно опубликовать через туннель одной командой:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna app my-service </span><span class="token parameter variable" style="color:#36acaa">--url</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">http://127.0.0.1:8080</span><br></div></code></pre></div></div>
<p>Подробный разбор настройки — в <a href="https://tuna.am/docs/apps/" target="_blank" rel="noopener noreferrer" class="">документации</a>, анонс с обзором возможностей — <a href="https://tuna.am/blog/apps/" target="_blank" rel="noopener noreferrer" class="">в блоге</a>.</p>
<p><strong>Ограничения:</strong></p>
<ul>
<li class="">Это решение для веб-сервисов и HTTP API. Доступ к базе данных или SSH-доступ к серверам — отдельные задачи, для них есть <a href="https://tuna.am/docs/tunnels/tcp/" target="_blank" rel="noopener noreferrer" class="">TCP-туннели с IP-фильтрами</a> и <a href="https://tuna.am/docs/bastion/" target="_blank" rel="noopener noreferrer" class="">Бастион</a>.</li>
<li class="">Как любой SaaS, платформа — это внешняя зависимость: если политика компании требует держать контроль доступа строго внутри контура, ваш путь — способ 4.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="сравнение">Сравнение<a href="https://tuna.am/blog/apps-access-methods/#%D1%81%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5" class="hash-link" aria-label="Прямая ссылка на Сравнение" title="Прямая ссылка на Сравнение" translate="no">​</a></h2>
<table><thead><tr><th style="text-align:left"></th><th style="text-align:left">Известен пользователь</th><th style="text-align:left">Правила доступа</th><th style="text-align:left">MFA</th><th style="text-align:left">Отзыв доступа</th><th style="text-align:left">Сложность запуска</th><th style="text-align:left">Поддержка</th></tr></thead><tbody><tr><td style="text-align:left">VPN</td><td style="text-align:left">частично (на уровне сети)</td><td style="text-align:left">нет</td><td style="text-align:left">зависит от VPN</td><td style="text-align:left">вручную, профиль</td><td style="text-align:left">средняя–высокая</td><td style="text-align:left">постоянная</td></tr><tr><td style="text-align:left">Basic auth</td><td style="text-align:left">нет</td><td style="text-align:left">нет</td><td style="text-align:left">нет</td><td style="text-align:left">нельзя точечно</td><td style="text-align:left">минуты</td><td style="text-align:left">нулевая</td></tr><tr><td style="text-align:left">IP-фильтры</td><td style="text-align:left">нет (только откуда)</td><td style="text-align:left">нет</td><td style="text-align:left">нет</td><td style="text-align:left">правкой списка</td><td style="text-align:left">минуты</td><td style="text-align:left">рутина со списками</td></tr><tr><td style="text-align:left">nginx + oauth2-proxy</td><td style="text-align:left">да</td><td style="text-align:left">да, собирается вручную</td><td style="text-align:left">да</td><td style="text-align:left">вручную</td><td style="text-align:left">дни</td><td style="text-align:left">на вашей стороне</td></tr><tr><td style="text-align:left">Zero Trust proxy (Tuna Apps)</td><td style="text-align:left">да</td><td style="text-align:left">да, из интерфейса</td><td style="text-align:left">да</td><td style="text-align:left">в один шаг из интерфейса</td><td style="text-align:left">минуты</td><td style="text-align:left">на стороне платформы</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="итог-как-выбрать">Итог: как выбрать<a href="https://tuna.am/blog/apps-access-methods/#%D0%B8%D1%82%D0%BE%D0%B3-%D0%BA%D0%B0%D0%BA-%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D1%82%D1%8C" class="hash-link" aria-label="Прямая ссылка на Итог: как выбрать" title="Прямая ссылка на Итог: как выбрать" translate="no">​</a></h2>
<p>Показываете демо на пару дней → хватит basic auth на туннеле.</p>
<p>Пускаете только серверы и офис со статическим IP → достаточно IP-фильтров.</p>
<p>Вся команда штатная, VPN уже работает и есть кому его обслуживать → оставайтесь на VPN.</p>
<p>Нужен контроль на уровне пользователей и путей, видно, кто заходил, и доступ нужно забирать точечно — но нет ресурса собирать и поддерживать связку прокси с OIDC — берите Zero Trust proxy.</p>
<p>А если требования запрещают выносить авторизацию из своего контура → собирайте способ 4 и закладывайте время на поддержку.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="попробуйте-прямо-сейчас">Попробуйте прямо сейчас<a href="https://tuna.am/blog/apps-access-methods/#%D0%BF%D0%BE%D0%BF%D1%80%D0%BE%D0%B1%D1%83%D0%B9%D1%82%D0%B5-%D0%BF%D1%80%D1%8F%D0%BC%D0%BE-%D1%81%D0%B5%D0%B9%D1%87%D0%B0%D1%81" class="hash-link" aria-label="Прямая ссылка на Попробуйте прямо сейчас" title="Прямая ссылка на Попробуйте прямо сейчас" translate="no">​</a></h2>
<p>Перейдите в раздел <a href="https://my.tuna.am/team_apps" target="_blank" rel="noopener noreferrer" class="">Приложения</a>, нажмите <strong>+ Добавить приложение</strong> — и закройте свой первый сервис авторизацией за пару минут.</p>
<p>Подробное описание всех возможностей — в <a class="" href="https://tuna.am/docs/apps/">документации</a>:</p>
<ul>
<li class=""><a class="" href="https://tuna.am/docs/apps/policies/">Политики доступа</a></li>
<li class=""><a class="" href="https://tuna.am/docs/apps/access_requests/">Запросы доступа</a></li>
<li class=""><a class="" href="https://tuna.am/docs/apps/service_tokens/">Сервисные токены</a></li>
<li class=""><a class="" href="https://tuna.am/docs/apps/sessions/">Сессии</a></li>
<li class=""><a class="" href="https://tuna.am/docs/apps/settings/">Настройки приложения</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/apps-access-methods/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отзыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/apps-access-methods/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="apps" term="apps"/>
        <category label="security" term="security"/>
        <category label="vpn" term="vpn"/>
        <category label="reverse-proxy" term="reverse-proxy"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🔐 Безопасность Секретов и отличие от Паролей - мастер-ключ, шифрование и общая архитектура.]]></title>
        <id>https://tuna.am/blog/secrets-security/</id>
        <link href="https://tuna.am/blog/secrets-security/"/>
        <updated>2026-06-03T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Технический разбор - где живёт мастер-ключ, как шифруются секреты и что произойдёт, если утечёт база данных]]></summary>
        <content type="html"><![CDATA[<p>Когда вы отдаёте свои пароли, токены и ключи доступа во внешний сервис, главный вопрос — можно ли ему доверять.
Поэтому мы решили показать, как устроена безопасность <a class="" href="https://tuna.am/docs/secrets/">Tuna Секретов</a> изнутри: где хранится мастер-ключ, каким алгоритмом шифруются данные и — самое важное — что произойдёт, если нашу инфраструктуру взломают и утечёт вся база данных.</p>
<!-- -->
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>Коротко</div><div class="admonitionContent_BuS1"><p>Значения секретов шифруются <strong>до</strong> записи в базу алгоритмом <strong>AES-256-GCM</strong>. Ключ, которым их можно расшифровать, в базе <strong>не лежит</strong>. Утёкший дамп БД без мастер-ключа — это бесполезный набор зашифрованных данных.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="пароли-и-секреты-две-разные-модели-безопасности">Пароли и секреты: две разные модели безопасности<a href="https://tuna.am/blog/secrets-security/#%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D0%B8-%D0%B8-%D1%81%D0%B5%D0%BA%D1%80%D0%B5%D1%82%D1%8B-%D0%B4%D0%B2%D0%B5-%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D0%B5-%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8-%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D0%B8" class="hash-link" aria-label="Прямая ссылка на Пароли и секреты: две разные модели безопасности" title="Прямая ссылка на Пароли и секреты: две разные модели безопасности" translate="no">​</a></h2>
<p>В Tuna есть два хранилища для чувствительных данных — <a class="" href="https://tuna.am/docs/passwords/">Менеджер паролей</a> и <a class="" href="https://tuna.am/docs/secrets/">Секреты</a>. Они намеренно построены по-разному, потому что решают разные задачи.</p>
<img src="https://tuna.am/blog/img/2026-06-03-secrets-security/00-pwd-vs-secrets.png" alt="Сравнение моделей: пароли шифруются на клиенте, секреты — на сервере" style="width:100%;height:auto">
<p><strong>Менеджер паролей — модель нулевого знания (zero-knowledge).</strong> Ключи шифрования создаются на вашем устройстве и никогда не покидают клиент — браузер или приложение. Шифрование и расшифровка происходят только на вашей стороне, а на сервер уходит уже зашифрованный текст. Принцип, заложенный в основу: <em>компрометация нашей инфраструктуры не должна приводить к компрометации ваших паролей</em> — расшифровать их можно лишь там, где есть мастер-ключ, а он есть только у вас. Обратная сторона — данные доступны только владельцу мастер-ключа: автоматически выдать пароль скрипту или пайплайну, не раскрывая его, в такой модели невозможно.</p>
<p><strong>Секреты — серверное шифрование.</strong> Здесь мастер-ключ находится на стороне платформы, и шифрование выполняет сервер. Это <strong>осознанный компромисс</strong>, и сделан он ради главного сценария секретов — автоматизации. Секрет должен сам, без участия человека, попадать в приложение при запуске, в CI/CD-пайплайн, в скрипт развёртывания. Запуск приложения с подгрузкой переменных, сервисные ключи для CI, автоматический перезапуск при изменении значения — всё это работает именно потому, что сервер способен выдать секрет по запросу авторизованного клиента, не требуя мастер-пароль каждый раз.</p>
<p>Платой за удобство становится доверие к инфраструктуре платформы — технически сервер может расшифровать секрет. Поэтому всё, что описано дальше, — про то, как мы это доверие оправдываем.</p>
<table><thead><tr><th></th><th>Пароли</th><th>Секреты</th></tr></thead><tbody><tr><td>Модель</td><td>Нулевое знание</td><td>Серверное шифрование</td></tr><tr><td>Где находится ключ</td><td>Только у клиента</td><td>На стороне платформы</td></tr><tr><td>Где идёт шифрование</td><td>На клиенте</td><td>На сервере</td></tr><tr><td>Может ли Tuna прочитать данные</td><td>Нет</td><td>Да, для авторизованных операций</td></tr><tr><td>Автоматизация (CI/CD, скрипты)</td><td>Ограничена</td><td>Полноценная</td></tr><tr><td>Главный сценарий</td><td>Хранение и обмен паролями</td><td>Доставка конфигурации приложениям</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="модель-доверия-секретов">Модель доверия секретов<a href="https://tuna.am/blog/secrets-security/#%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C-%D0%B4%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D1%8F-%D1%81%D0%B5%D0%BA%D1%80%D0%B5%D1%82%D0%BE%D0%B2" class="hash-link" aria-label="Прямая ссылка на Модель доверия секретов" title="Прямая ссылка на Модель доверия секретов" translate="no">​</a></h2>
<p>Раз сервер умеет расшифровывать секреты, главный принцип звучит так: <strong>база данных не должна содержать ничего, чем можно расшифровать секреты</strong>. Даже если у злоумышленника окажется полный дамп таблиц, в нём не должно быть достаточно материала, чтобы получить исходные значения.</p>
<p>Достигается это классической схемой <strong>конвертного шифрования</strong> (envelope encryption) — двухуровневой иерархией ключей.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="конвертное-шифрование-два-уровня-ключей">Конвертное шифрование: два уровня ключей<a href="https://tuna.am/blog/secrets-security/#%D0%BA%D0%BE%D0%BD%D0%B2%D0%B5%D1%80%D1%82%D0%BD%D0%BE%D0%B5-%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B2%D0%B0-%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D1%8F-%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%B9" class="hash-link" aria-label="Прямая ссылка на Конвертное шифрование: два уровня ключей" title="Прямая ссылка на Конвертное шифрование: два уровня ключей" translate="no">​</a></h2>
<img src="https://tuna.am/blog/img/2026-06-03-secrets-security/01-key-hierarchy.png" alt="Иерархия ключей: мастер-ключ оборачивает ключ команды, ключ команды шифрует значения секретов" style="width:100%;height:auto">
<p>В системе два уровня ключей:</p>
<ol>
<li class="">
<p><strong>Мастер-ключ платформы (KEK, Key Encryption Key).</strong> Хранится на стороне Tuna и в базу данных не попадает. Сам по себе он ничего пользовательского не шифрует — его единственная задача «оборачивать» (защищать) ключи команд.</p>
</li>
<li class="">
<p><strong>Ключ команды (DEK, Data Encryption Key).</strong> Для каждой команды генерируется свой случайный ключ — криптографическим генератором случайных чисел. Именно им шифруются значения секретов этой команды.</p>
</li>
</ol>
<p>Ключ команды не хранится в открытом виде: он зашифрован мастер-ключом и в таком «обёрнутом» виде лежит в базе. Чтобы им воспользоваться, сервер сначала разворачивает его мастер-ключом в памяти.</p>
<p>Получается цепочка зависимостей: <strong>значение секрета</strong> защищено <strong>ключом команды</strong>, а <strong>ключ команды</strong> защищён <strong>мастер-ключом</strong>. Разорвав любое звено, дальше пройти нельзя.</p>
<p>Любопытно, что <a class="" href="https://tuna.am/blog/password-manager/">менеджер паролей</a> построен на той же идее конвертного шифрования — с двумя принципиальными отличиями: «конверт» там запечатывается асимметрично, на паре открытого и закрытого ключей, а корневой ключ остаётся на стороне клиента, а не сервера. Схема одна и та же, по-разному распределено лишь доверие: секреты настроены на автоматизацию, пароли — на нулевое знание.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="где-и-как-хранится-мастер-ключ">Где и как хранится мастер-ключ<a href="https://tuna.am/blog/secrets-security/#%D0%B3%D0%B4%D0%B5-%D0%B8-%D0%BA%D0%B0%D0%BA-%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%81%D1%8F-%D0%BC%D0%B0%D1%81%D1%82%D0%B5%D1%80-%D0%BA%D0%BB%D1%8E%D1%87" class="hash-link" aria-label="Прямая ссылка на Где и как хранится мастер-ключ" title="Прямая ссылка на Где и как хранится мастер-ключ" translate="no">​</a></h2>
<p>Это основной для всей схемы вопрос, поэтому разберем каждое место хранения:</p>
<ul>
<li class=""><strong>Не в базе данных.</strong> Мастер-ключ принципиально отделён от данных, которые он защищает. В дампе базы его нет.</li>
<li class=""><strong>Не в коде и не в репозитории.</strong> Он не зашит в исходники, а передаётся сервису извне — из защищённого хранилища конфигурации платформы.</li>
<li class=""><strong>Только в памяти процесса.</strong> Сервер держит ключ в оперативной памяти на время работы и не пишет его на диск в открытом виде.</li>
<li class=""><strong>Полноценный 256-битный ключ.</strong> Этого достаточно, чтобы перебор был вычислительно невозможен.</li>
</ul>
<p>Главный вывод: <strong>доступ к базе данных и доступ к мастер-ключу — это два разных уровня доступа</strong> с разными правами. Компрометация одного из них не означает автоматически компрометацию второго.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="жизненный-цикл-секрета-запись-и-чтение">Жизненный цикл секрета: запись и чтение<a href="https://tuna.am/blog/secrets-security/#%D0%B6%D0%B8%D0%B7%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D1%86%D0%B8%D0%BA%D0%BB-%D1%81%D0%B5%D0%BA%D1%80%D0%B5%D1%82%D0%B0-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C-%D0%B8-%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D0%B5" class="hash-link" aria-label="Прямая ссылка на Жизненный цикл секрета: запись и чтение" title="Прямая ссылка на Жизненный цикл секрета: запись и чтение" translate="no">​</a></h2>
<p>Шифрование и расшифровка встроены в слой работы с данными и происходят прозрачно — приложение никогда не пишет открытое значение в базу и никогда не читает его оттуда напрямую.</p>
<img src="https://tuna.am/blog/img/2026-06-03-secrets-security/02-lifecycle.png" alt="Последовательность сохранения и чтения секрета: шифрование перед записью, расшифровка после чтения" style="width:100%;height:auto">
<p><strong>При сохранении</strong> значение шифруется ключом команды ещё до записи. Для каждого значения берётся свой случайный одноразовый вектор (nonce) — поэтому даже два одинаковых секрета выглядят в базе по-разному. В хранилище попадает только зашифрованный текст.</p>
<p><strong>При чтении</strong> происходит обратный процесс: сервер достаёт шифр, разворачивает ключ команды и расшифровывает данные. Открытое значение существует только в памяти процесса ровно столько, сколько нужно, чтобы отдать его авторизованному клиенту.</p>
<p>Мы используем режим <strong>GCM</strong> (Galois/Counter Mode) — это <em>аутентифицированное</em> шифрование. Помимо конфиденциальности оно гарантирует целостность: если кто-то изменит хотя бы один байт зашифрованных данных в базе, расшифровка не вернёт «мусор», а честно провалится с ошибкой проверки. Подделать или незаметно подменить значение в обход сервера не получится.</p>
<p>В транзите всё дополнительно защищено TLS — между вашим клиентом и API данные идут по зашифрованному каналу.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="что-лежит-в-базе-зашифровано-а-что-открыто">Что лежит в базе зашифровано, а что открыто<a href="https://tuna.am/blog/secrets-security/#%D1%87%D1%82%D0%BE-%D0%BB%D0%B5%D0%B6%D0%B8%D1%82-%D0%B2-%D0%B1%D0%B0%D0%B7%D0%B5-%D0%B7%D0%B0%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BE-%D0%B0-%D1%87%D1%82%D0%BE-%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D0%BE" class="hash-link" aria-label="Прямая ссылка на Что лежит в базе зашифровано, а что открыто" title="Прямая ссылка на Что лежит в базе зашифровано, а что открыто" translate="no">​</a></h2>
<p>Разбор того, какие данные и в каком виде реально хранятся в базе:</p>
<table><thead><tr><th>Зашифровано (AES-256-GCM)</th><th>В открытом виде</th></tr></thead><tbody><tr><td>Значения секретов</td><td>Имена переменных</td></tr><tr><td>Заметки к секретам</td><td>Типы значений</td></tr><tr><td>Ключ команды (в обёрнутом виде)</td><td>Уровень видимости</td></tr><tr><td></td><td>Структура: проекты, окружения, конфигурации</td></tr><tr><td></td><td>Метки времени создания и изменения</td></tr></tbody></table>
<p>Да, <strong>метаданные — это тоже информация</strong>. Даже не видя значений, по именам переменных можно судить о том, какими сервисами и технологиями вы пользуетесь. Сами секреты при этом остаются зашифрованными. Но это снова небольшой компромисс в угоду удобству и быстроте работы.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="что-будет-если-утечёт-база-данных">Что будет, если утечёт база данных<a href="https://tuna.am/blog/secrets-security/#%D1%87%D1%82%D0%BE-%D0%B1%D1%83%D0%B4%D0%B5%D1%82-%D0%B5%D1%81%D0%BB%D0%B8-%D1%83%D1%82%D0%B5%D1%87%D1%91%D1%82-%D0%B1%D0%B0%D0%B7%D0%B0-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85" class="hash-link" aria-label="Прямая ссылка на Что будет, если утечёт база данных" title="Прямая ссылка на Что будет, если утечёт база данных" translate="no">​</a></h2>
<p>Это сценарий, ради предотвращения которого вся схема и строилась. Представим худшее: злоумышленник получил полный дамп нашей базы.</p>
<img src="https://tuna.am/blog/img/2026-06-03-secrets-security/03-db-leak.png" alt="Модель угроз при утечке базы: без мастер-ключа расшифровать значения невозможно" style="width:100%;height:auto">
<p><strong>Что у него на руках:</strong></p>
<ul>
<li class="">Зашифрованные значения секретов — шифр AES-256-GCM, статистически неотличимый от случайного шума.</li>
<li class="">Ключ команды — но он сам зашифрован мастер-ключом.</li>
<li class="">Метаданные — имена, типы, структура проектов.</li>
</ul>
<p><strong>Чего у него нет:</strong></p>
<ul>
<li class=""><strong>Мастер-ключа.</strong> Его нет в базе — он на стороне сервера, куда дамп базы доступа не даёт.</li>
</ul>
<p>Цепочка обрывается на первом же шаге. Чтобы расшифровать значение, нужен ключ команды. Чтобы развернуть ключ команды — нужен мастер-ключ. Мастер-ключа в дампе нет, а взломать AES-256 перебором невозможно. <strong>Значения секретов остаются защищены.</strong> Злоумышленник видит лишь каркас: имена и структуру, но не содержимое.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="границы-защиты">Границы защиты<a href="https://tuna.am/blog/secrets-security/#%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B-%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D1%8B" class="hash-link" aria-label="Прямая ссылка на Границы защиты" title="Прямая ссылка на Границы защиты" translate="no">​</a></h3>
<p>Никакая схема не защищает от всего, и важно понимать её рамки:</p>
<ul>
<li class=""><strong>Если утечёт И база, И мастер-ключ одновременно</strong> — защита падает. Именно поэтому они хранятся раздельно, с разными правами доступа: чтобы одна уязвимость не вскрывала сразу оба уровня.</li>
<li class=""><strong>Метаданные видны</strong> при утечке базы — об этом сказано выше.</li>
<li class=""><strong>Реакция на инцидент.</strong> При подозрении на компрометацию правильный шаг — ротация: смена мастер-ключа, перевыпуск <a class="" href="https://tuna.am/docs/secrets/">сервисных ключей</a> и обновление самих секретов в их первоисточниках. Сервисные ключи можно выпускать с ограниченным сроком жизни именно на такой случай.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="дополнительные-уровни-защиты">Дополнительные уровни защиты<a href="https://tuna.am/blog/secrets-security/#%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B8-%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D1%8B" class="hash-link" aria-label="Прямая ссылка на Дополнительные уровни защиты" title="Прямая ссылка на Дополнительные уровни защиты" translate="no">​</a></h2>
<p>Шифрование — это фундамент, но не единственный слой. Доступ к секретам ограничен ещё на нескольких уровнях:</p>
<ul>
<li class=""><strong>Скрытые значения (Restricted).</strong> Секрет с такой видимостью не отдаётся через API и не попадает в выгрузки — даже авторизованному пользователю показывается только факт его существования.</li>
<li class=""><strong>Сервисные ключи с узким доступом.</strong> Для CI/CD выпускаются ключи, привязанные к конкретной конфигурации, с правами только на чтение или на чтение и запись, и с опциональным сроком действия. Утечка такого ключа не открывает доступ ко всем секретам команды.</li>
<li class=""><strong>Ограничение по IP (Trusted IP).</strong> Доступ к конфигурации можно ограничить списком разрешённых адресов и подсетей в формате CIDR.</li>
<li class=""><strong>Полный аудит.</strong> Все изменения внутри конфигураций журналируются — видно, кто и когда менял каждый секрет.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="что-в-планах">Что в планах<a href="https://tuna.am/blog/secrets-security/#%D1%87%D1%82%D0%BE-%D0%B2-%D0%BF%D0%BB%D0%B0%D0%BD%D0%B0%D1%85" class="hash-link" aria-label="Прямая ссылка на Что в планах" title="Прямая ссылка на Что в планах" translate="no">​</a></h2>
<p>Сейчас Tuna Секреты — это централизованное и зашифрованное хранилище. Логичный следующий шаг — сделать его <strong>источником истины</strong>, из которого секреты автоматически синхронизируются туда, где они нужны.</p>
<img src="https://tuna.am/blog/img/2026-06-03-secrets-security/04-future-sync.png" alt="Планы: синхронизация секретов из Tuna в Vault, Kubernetes Secrets, GitHub и GitLab CI/CD" style="width:100%;height:auto">
<p>В планах — интеграции для односторонней синхронизации:</p>
<ul>
<li class=""><strong>HashiCorp Vault</strong> — отправка секретов в Vault, чтобы Tuna стала удобным интерфейсом управления, а приложения продолжали читать их привычным способом.</li>
<li class=""><strong>Kubernetes Secrets</strong> — синхронизация конфигурации напрямую в секреты нужного namespace кластера.</li>
<li class=""><strong>GitHub Actions</strong> — публикация в encrypted secrets репозитория или организации для использования в пайплайнах.</li>
<li class=""><strong>GitLab CI/CD</strong> — синхронизация в CI/CD variables проектов и групп.</li>
</ul>
<p>Идея в том, чтобы вы редактировали секрет в одном месте, а он автоматически и безопасно доходил до всех ваших окружений — без копирования значений между десятком панелей.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="итог">Итог<a href="https://tuna.am/blog/secrets-security/#%D0%B8%D1%82%D0%BE%D0%B3" class="hash-link" aria-label="Прямая ссылка на Итог" title="Прямая ссылка на Итог" translate="no">​</a></h2>
<p>Безопасность Tuna Секретов держится на нескольких простых и проверенных принципах:</p>
<ul>
<li class=""><strong>Две модели под две задачи</strong> — пароли шифруются на клиенте (мы их не видим), секреты — на сервере, ради автоматизации.</li>
<li class=""><strong>AES-256-GCM</strong> — аутентифицированное шифрование значений до записи в базу.</li>
<li class=""><strong>Конвертное шифрование</strong> — мастер-ключ защищает ключи команд, ключи команд защищают данные.</li>
<li class=""><strong>Мастер-ключ отделён от данных</strong> — его нет ни в базе, ни в коде, и утёкший дамп БД бесполезен.</li>
<li class=""><strong>Слои доступа сверху</strong> — видимость, сервисные ключи, ограничение по IP и аудит.</li>
</ul>
<p>Мы не делаем вид, что защита абсолютна, и открыто показываем её границы — потому что доверие строится на прозрачности, а не на маркетинговых обещаниях.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/secrets-security/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отзыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/secrets-security/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="security" term="security"/>
        <category label="secrets" term="secrets"/>
        <category label="tuna" term="tuna"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🆕 Приложения — Zero Trust доступ к вашим сервисам]]></title>
        <id>https://tuna.am/blog/apps/</id>
        <link href="https://tuna.am/blog/apps/"/>
        <updated>2026-05-29T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Защищённый reverse proxy с авторизацией, политиками доступа и SSO]]></summary>
        <content type="html"><![CDATA[<p>Мы рады представить новый компонент платформы Tuna — <strong>Приложения</strong>. Это защищённый reverse proxy, который закрывает любой ваш веб-сервис авторизацией, SSO и гранулярным контролем доступа — без единой строчки изменений в самом сервисе.</p>
<p><a class="" href="https://tuna.am/docs/apps/">Перейти к разделу Приложения в документации</a></p>
<img src="https://tuna.am/docs/img/apps/main.png" alt="Главная страница приложений">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="зачем-это-нужно">Зачем это нужно?<a href="https://tuna.am/blog/apps/#%D0%B7%D0%B0%D1%87%D0%B5%D0%BC-%D1%8D%D1%82%D0%BE-%D0%BD%D1%83%D0%B6%D0%BD%D0%BE" class="hash-link" aria-label="Прямая ссылка на Зачем это нужно?" title="Прямая ссылка на Зачем это нужно?" translate="no">​</a></h2>
<p>Представьте: у вас есть внутренний сервис — админка, staging-окружение, Grafana, внутренний API. Вы хотите дать к нему доступ только нужным людям, из нужных стран, с подтверждением через корпоративный SSO. Раньше это означало возню с nginx, oauth2-proxy, сертификатами и списками доступа.</p>
<p>С <strong>Приложениями</strong> Tuna проверяет каждый входящий запрос: кто пользователь, как он аутентифицировался, откуда пришёл и имеет ли право видеть запрашиваемый путь. Всё это настраивается через веб-интерфейс за пару минут.</p>
<p>Что можно сделать:</p>
<ul>
<li class="">закрыть любой веб-сервис авторизацией без изменений в коде;</li>
<li class="">гранулярно разграничить доступ — например, <code>/admin/*</code> только для администраторов из России, а <code>/api/health</code> открыть без аутентификации;</li>
<li class="">подключить корпоративный SSO (Google, Yandex, GitHub, GitLab, VK, любой OIDC-совместимый провайдер);</li>
<li class="">требовать MFA или ручное одобрение администратора для чувствительных операций;</li>
<li class="">опубликовать сервис без публичного IP через туннель — достаточно одной команды;</li>
<li class="">выдать машинный доступ через сервисные токены для CI/CD, мониторинга и автоматизации.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="два-режима-доставки-трафика">Два режима доставки трафика<a href="https://tuna.am/blog/apps/#%D0%B4%D0%B2%D0%B0-%D1%80%D0%B5%D0%B6%D0%B8%D0%BC%D0%B0-%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B8-%D1%82%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0" class="hash-link" aria-label="Прямая ссылка на Два режима доставки трафика" title="Прямая ссылка на Два режима доставки трафика" translate="no">​</a></h2>
<p>При создании приложения вы выбираете, как Tuna будет доходить до вашего сервиса.</p>
<table><thead><tr><th>Режим</th><th>Когда использовать</th></tr></thead><tbody><tr><td><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="margin-right:6px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><circle cx="6" cy="19" r="3"></circle><path d="M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15"></path><circle cx="18" cy="5" r="3"></circle></svg> <strong>Прокси</strong></td><td>Сервис уже доступен по сети — в Kubernetes, облачной VM или той же сети, что и нода. Можно указать несколько upstream с балансировкой по весам</td></tr><tr><td><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="margin-right:6px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg> <strong>Туннель</strong></td><td>Сервис без публичного IP — за NAT, на dev-машине или в корпоративной сети. Бэкенд сам подключается к Tuna через клиент-агент</td></tr></tbody></table>
<p>В режиме туннеля после создания приложения вы получаете готовую команду:</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna app </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">имя</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">--url</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">http://127.0.0.1:8080</span><br></div></code></pre></div></div>
<p>Запустите её на машине с сервисом — и приложение станет доступно через защищённый домен.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="�политики-доступа--сердце-системы">Политики доступа — сердце системы<a href="https://tuna.am/blog/apps/#%D0%BF%D0%BE%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B8-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0--%D1%81%D0%B5%D1%80%D0%B4%D1%86%D0%B5-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="hash-link" aria-label="Прямая ссылка на Политики доступа — сердце системы" title="Прямая ссылка на Политики доступа — сердце системы" translate="no">​</a></h2>
<p>Каждый запрос проходит через цепочку <strong>политик</strong>. Первая политика, чей шаблон пути совпал, определяет судьбу запроса: пропустить, потребовать MFA, запросить одобрение или отказать. По умолчанию доступ запрещён.</p>
<img src="https://tuna.am/docs/img/apps/policies_list.png" alt="Список политик приложения">
<p>Каждая политика — это <strong>паттерн пути</strong> (glob-шаблон вроде <code>/admin/*</code>) и <strong>действие</strong>:</p>
<ul>
<li class=""><strong>Разрешить</strong> — доступ при прохождении правил;</li>
<li class=""><strong>Требовать MFA</strong> — то же плюс второй фактор (TOTP или код на email);</li>
<li class=""><strong>Запретить</strong> — безусловная блокировка;</li>
<li class=""><strong>Пропустить</strong> — путь без аутентификации (health check, webhook-эндпоинты).</li>
</ul>
<p>Внутри политики настраиваются <strong>правила</strong> — <em>кто именно</em> получит доступ. Их можно комбинировать по режимам OR / AND / NOT и собирать из разных типов:</p>
<table><thead><tr><th>Тип правила</th><th>Пример</th></tr></thead><tbody><tr><td>Команда / Email / Email RegExp</td><td><code>.*@company\.com$</code></td></tr><tr><td>IP / CIDR</td><td><code>10.0.0.0/8</code></td></tr><tr><td>Страна (GeoIP)</td><td><code>RU</code>, <code>US</code>, <code>DE</code></td></tr><tr><td>Способ входа</td><td><code>oidc</code>, <code>otp</code>, <code>mfa</code></td></tr><tr><td>Провайдер</td><td><code>google</code></td></tr><tr><td>Service Token</td><td>машинная аутентификация</td></tr></tbody></table>
<p>Например, чтобы открыть <code>/admin/*</code> только участникам команды и только из России, достаточно одной политики с правилами «Команда» (or) и «Страна: RU» (and).</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="тестирование-без-риска">Тестирование без риска<a href="https://tuna.am/blog/apps/#%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B1%D0%B5%D0%B7-%D1%80%D0%B8%D1%81%D0%BA%D0%B0" class="hash-link" aria-label="Прямая ссылка на Тестирование без риска" title="Прямая ссылка на Тестирование без риска" translate="no">​</a></h3>
<p>Прежде чем применять конфигурацию, её можно проверить инструментом <strong>Тест политик</strong> — смоделировать запрос с любыми параметрами и увидеть, какое решение примет система. Без создания реальных сессий.</p>
<img src="https://tuna.am/docs/img/apps/policy_test.png" alt="Тестирование политик">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="вход-через-корпоративный-sso">Вход через корпоративный SSO<a href="https://tuna.am/blog/apps/#%D0%B2%D1%85%D0%BE%D0%B4-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-%D0%BA%D0%BE%D1%80%D0%BF%D0%BE%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9-sso" class="hash-link" aria-label="Прямая ссылка на Вход через корпоративный SSO" title="Прямая ссылка на Вход через корпоративный SSO" translate="no">​</a></h2>
<p>Способы входа комбинируются — пользователь увидит их все на странице входа:</p>
<ul>
<li class=""><strong>Email OTP</strong> — одноразовый код на email, удобно для внешних подрядчиков;</li>
<li class=""><strong>Аккаунты tuna.am</strong> — вход через личный аккаунт;</li>
<li class=""><strong>Провайдеры команды</strong> — внешние Identity Provider (Google, Yandex, GitHub, GitLab, VK, любой OIDC).</li>
</ul>
<img src="https://tuna.am/docs/img/apps/auth_page_providers.png" alt="Страница входа с провайдерами" style="width:40%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="ещё-больше-контроля">Ещё больше контроля<a href="https://tuna.am/blog/apps/#%D0%B5%D1%89%D1%91-%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%B5-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8F" class="hash-link" aria-label="Прямая ссылка на Ещё больше контроля" title="Прямая ссылка на Ещё больше контроля" translate="no">​</a></h2>
<p><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="margin-right:6px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path><path d="m9 14 2 2 4-4"></path></svg> <strong>Запросы доступа</strong> — для чувствительных ресурсов включите ручное одобрение. Пользователь объяснит причину, администратор одобрит доступ на нужный срок (от 15 минут до бессрочного).</p>
<p><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="margin-right:6px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg> <strong>Сервисные токены</strong> — машинная аутентификация для CI/CD, мониторинга и скриптов. Пара Client ID + Client Secret, передаётся в заголовках. Поддерживается ротация с grace-периодом — обновляйте секрет без простоя.</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-H</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'Tuna-Access-Client-Id: sat_...'</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">\</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">     </span><span class="token parameter variable" style="color:#36acaa">-H</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'Tuna-Access-Client-Secret: ...'</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">\</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">     https://your-app.example.com/</span><br></div></code></pre></div></div>
<p><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="margin-right:6px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg> <strong>Сессии</strong> — пользователи видят свои активные сессии, администраторы — сессии всей команды с полной информацией (IP, страна, User-Agent, последняя активность). Любую сессию можно отозвать, а кнопка «Закрыть все сессии» завершает их разом.</p>
<p><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="margin-right:6px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z"></path><circle cx="16.5" cy="7.5" r=".5" fill="currentColor"></circle></svg> <strong>Гибкие настройки прокси</strong> — заголовки запроса и ответа, переписывание путей, CORS, лимит размера тела, TLS до upstream и клиентский сертификат (mTLS).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="полный-аудит">Полный аудит<a href="https://tuna.am/blog/apps/#%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%B9-%D0%B0%D1%83%D0%B4%D0%B8%D1%82" class="hash-link" aria-label="Прямая ссылка на Полный аудит" title="Прямая ссылка на Полный аудит" translate="no">​</a></h2>
<p>Все действия с приложениями записываются в <a href="https://my.tuna.am/team_audit_events" target="_blank" rel="noopener noreferrer" class="">аудит-лог</a>: создание и изменение приложений, входы пользователей, одобрения и отклонения запросов доступа, отзыв сессий. Каждое событие содержит детали — кто, когда, откуда и что именно произошло.</p>
<img src="https://tuna.am/docs/img/apps/audit_events.png" alt="Аудит-лог событий приложений">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="попробуйте-прямо-сейчас">Попробуйте прямо сейчас<a href="https://tuna.am/blog/apps/#%D0%BF%D0%BE%D0%BF%D1%80%D0%BE%D0%B1%D1%83%D0%B9%D1%82%D0%B5-%D0%BF%D1%80%D1%8F%D0%BC%D0%BE-%D1%81%D0%B5%D0%B9%D1%87%D0%B0%D1%81" class="hash-link" aria-label="Прямая ссылка на Попробуйте прямо сейчас" title="Прямая ссылка на Попробуйте прямо сейчас" translate="no">​</a></h2>
<p>Перейдите в раздел <a href="https://my.tuna.am/team_apps" target="_blank" rel="noopener noreferrer" class="">Приложения</a>, нажмите <strong>+ Добавить приложение</strong> — и закройте свой первый сервис авторизацией за пару минут.</p>
<p>Подробное описание всех возможностей — в <a class="" href="https://tuna.am/docs/apps/">документации</a>:</p>
<ul>
<li class=""><a class="" href="https://tuna.am/docs/apps/policies/">Политики доступа</a></li>
<li class=""><a class="" href="https://tuna.am/docs/apps/access_requests/">Запросы доступа</a></li>
<li class=""><a class="" href="https://tuna.am/docs/apps/service_tokens/">Сервисные токены</a></li>
<li class=""><a class="" href="https://tuna.am/docs/apps/sessions/">Сессии</a></li>
<li class=""><a class="" href="https://tuna.am/docs/apps/settings/">Настройки приложения</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/apps/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отзыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/apps/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="release" term="release"/>
        <category label="tuna" term="tuna"/>
        <category label="cli" term="cli"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Не приходят webhooks от api.telegram.org в туннель в RU зоне]]></title>
        <id>https://tuna.am/blog/tunnel-location/</id>
        <link href="https://tuna.am/blog/tunnel-location/"/>
        <updated>2026-05-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Устранение проблем в работе с telegram ботами]]></summary>
        <content type="html"><![CDATA[<p>В последнее время многие пользователи сообщают об одной и той же проблеме: webhooks от <code>api.telegram.org</code> перестали приходить в туннели в регионе RU. В этом посте — как быстро обойти проблему, переключив туннель в другой регион.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="проблема">Проблема<a href="https://tuna.am/blog/tunnel-location/#%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0" class="hash-link" aria-label="Прямая ссылка на Проблема" title="Прямая ссылка на Проблема" translate="no">​</a></h2>
<p>Симптомы следующие:</p>
<ul>
<li class="">бот, зарегистрированный через <code>setWebhook</code>, перестал получать обновления;</li>
<li class="">запросы от <code>api.telegram.org</code> не доходят до туннеля в регионе RU — их не видно ни в логах клиента, ни в <a href="https://my.tuna.am/tunnels" target="_blank" rel="noopener noreferrer" class="">инспекторе</a>;</li>
<li class="">при этом туннель работает: запросы из браузера и от других сервисов проходят штатно.</li>
</ul>
<p>Со стороны нашего сервиса и хостинг-провайдера в России никаких ограничений нет — туннель работает штатно, мы видим установленное соединение. Проблема где-то в магистрали между инфраструктурой Telegram и нашими RU-нодами; вероятнее всего, это ограничение со стороны РКН. Повлиять на это с нашей стороны мы не можем, но регион подключения у туннеля — это параметр клиента, и сменить его — дело пары секунд.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="решение--сменить-регион-туннеля">Решение — сменить регион туннеля<a href="https://tuna.am/blog/tunnel-location/#%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5--%D1%81%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-%D1%80%D0%B5%D0%B3%D0%B8%D0%BE%D0%BD-%D1%82%D1%83%D0%BD%D0%BD%D0%B5%D0%BB%D1%8F" class="hash-link" aria-label="Прямая ссылка на Решение — сменить регион туннеля" title="Прямая ссылка на Решение — сменить регион туннеля" translate="no">​</a></h2>
<p>Самый быстрый способ — поднять туннель в другом регионе, например <code>nl</code> (Нидерланды).
Полный список доступных регионов и все способы переопределения — в <a class="" href="https://tuna.am/docs/tunnels/guides/locations/">документации</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="tuna-desktop">Tuna Desktop<a href="https://tuna.am/blog/tunnel-location/#tuna-desktop" class="hash-link" aria-label="Прямая ссылка на Tuna Desktop" title="Прямая ссылка на Tuna Desktop" translate="no">​</a></h3>
<p>При создании туннеля выберите регион в выпадающем списке <strong>Регион</strong>:</p>
<p><img decoding="async" loading="lazy" alt="Выбор региона в Tuna Desktop" src="https://tuna.am/assets/images/td-0c10e1fdb48b465987307614651ad7fd.png" width="898" height="926" class="img_ev3q"></p>
<p>После сохранения туннель поднимется в выбранном регионе — webhooks от Telegram начнут приходить.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="командная-строка">Командная строка<a href="https://tuna.am/blog/tunnel-location/#%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%B0%D1%8F-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B0" class="hash-link" aria-label="Прямая ссылка на Командная строка" title="Прямая ссылка на Командная строка" translate="no">​</a></h3>
<p>Передайте регион аргументом <code>--location</code> (или коротким <code>-l</code>):</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna http </span><span class="token number" style="color:#36acaa">8080</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">--location</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">nl</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">tuna http </span><span class="token number" style="color:#36acaa">8080</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-l</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">nl</span><br></div></code></pre></div></div>
<p>Чтобы не указывать флаг каждый раз, регион можно задать по умолчанию одним из трёх способов.</p>
<p><strong>Команда <code>tuna config save-location</code></strong> — сохранит значение в <a class="" href="https://tuna.am/docs/guides/config-file/">конфигурационный файл</a>:</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna config save-location </span><span class="token function" style="color:#d73a49">nl</span><br></div></code></pre></div></div>
<p><strong>Параметр в <a class="" href="https://tuna.am/docs/guides/config-file/">конфигурационном файле</a></strong> напрямую:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">location</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> nl</span><br></div></code></pre></div></div>
<p><strong><a class="" href="https://tuna.am/docs/guides/environment-variables/">Переменная окружения</a></strong> <code>TUNA_LOCATION</code>:</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token assign-left variable" style="color:#36acaa">TUNA_LOCATION</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">nl</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="что-дальше">Что дальше<a href="https://tuna.am/blog/tunnel-location/#%D1%87%D1%82%D0%BE-%D0%B4%D0%B0%D0%BB%D1%8C%D1%88%D0%B5" class="hash-link" aria-label="Прямая ссылка на Что дальше" title="Прямая ссылка на Что дальше" translate="no">​</a></h2>
<p>После смены региона у туннеля изменится URL — не забудьте обновить адрес webhook'а в настройках вашего Telegram-бота (метод <a href="https://core.telegram.org/bots/api#setwebhook" target="_blank" rel="noopener noreferrer" class=""><code>setWebhook</code></a> с новым URL).</p>
<p>Если и после этого webhooks не приходят — напишите нам в <a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram-сообщество</a> или на <a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">info@tuna.am</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/tunnel-location/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отзыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/tunnel-location/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="guides" term="guides"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🆕 Доски, Встречи и другие обновления на платформе]]></title>
        <id>https://tuna.am/blog/boards-meets/</id>
        <link href="https://tuna.am/blog/boards-meets/"/>
        <updated>2026-03-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Новые сервисы - Доски и Встречи, интеграции с трекерами задач и улучшения в tuna-cli]]></summary>
        <content type="html"><![CDATA[<p>Это большой релиз! Мы добавили два новых, крупных сервиса - Доски и Встречи, новые функции в Мониторах и Отчётах, улучшили инспектор запросов и улучшения в sshd туннелях.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="доски">Доски<a href="https://tuna.am/blog/boards-meets/#%D0%B4%D0%BE%D1%81%D0%BA%D0%B8" class="hash-link" aria-label="Прямая ссылка на Доски" title="Прямая ссылка на Доски" translate="no">​</a></h2>
<p>Хедлайнер релиза!</p>
<a href="https://my.tuna.am/boards" target="_blank" rel="noopener noreferrer"><img src="https://tuna.am/blog/img/2026-03-24/boards.png" alt="Boards"></a>
<p>Как и многие наши инструменты, <a href="https://my.tuna.am/boards" target="_blank" rel="noopener noreferrer" class="">Tuna Доски</a> выросли из инструмента для внутреннего использования.
Первые его версии были крайне примитивные и простые, но для нас этого всегда было достаточно.</p>
<details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary>Вот так проект выглядел исторически ...</summary><div><div class="collapsibleContent_i85q"><div class="swiper"><div class="swiper-wrapper"><div class="swiper-slide"><img src="https://tuna.am/blog/img/2026-03-24/boards_history_1.png" alt="Plato история 1"></div><div class="swiper-slide"><img src="https://tuna.am/blog/img/2026-03-24/boards_history_2.png" alt="Plato история 2"></div><div class="swiper-slide"><img src="https://tuna.am/blog/img/2026-03-24/boards_history_3.png" alt="Plato история 3"></div></div><div class="swiper-button-prev"></div><div class="swiper-button-next"></div><div class="swiper-pagination"></div></div></div></div></details>
<p>Поэтому мы никогда не использовали другие аналоги вроде Miro и всегда старались использовать свой внутренний продукт. Если вы заметили, какие-либо схемы и фирменные рисунки сделаны именно в этом инструменте.</p>
<p>Сегодня мы рады представить <strong>Доски</strong> как часть нашей платформы для разработчиков.
Здесь вы можете зарисовать схему инфраструктуры, планировать новые функции, проектировать новый UX и UI, а также использовать встроенный голосовой чат, таймер и другие возможности.</p>
<div style="width:640px;height:360px"></div>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="встречи">Встречи<a href="https://tuna.am/blog/boards-meets/#%D0%B2%D1%81%D1%82%D1%80%D0%B5%D1%87%D0%B8" class="hash-link" aria-label="Прямая ссылка на Встречи" title="Прямая ссылка на Встречи" translate="no">​</a></h2>
<p>Видео звонки давно стали неотъемлемой частью любых онлайн-встреч, каждый уважающий себя разработчик, ненавидит эти проклятые созвоны, но теперь вы можете делать это на нашей платформе!</p>
<p>Встречайте, <a href="https://my.tuna.am/meet" target="_blank" rel="noopener noreferrer" class="">Tuna Встречи</a>.</p>
<a href="https://my.tuna.am/meet" target="_blank" rel="noopener noreferrer"><img src="https://tuna.am/blog/img/2026-03-24/meets.png" alt="Встречи"></a>
<p>Функционал достаточно стандартный, есть режим докладчика, презентации, размытие фона и так далее. Интерфейс полностью адаптирован под мобильные устройства, поэтому вы можете созваниваться как за компьютером, так и в дороге.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="интеграции-с-трекерами-задач">Интеграции с трекерами задач<a href="https://tuna.am/blog/boards-meets/#%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D0%B8-%D1%81-%D1%82%D1%80%D0%B5%D0%BA%D0%B5%D1%80%D0%B0%D0%BC%D0%B8-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87" class="hash-link" aria-label="Прямая ссылка на Интеграции с трекерами задач" title="Прямая ссылка на Интеграции с трекерами задач" translate="no">​</a></h2>
<p>После того, как у нас появились <a class="" href="https://tuna.am/docs/reports/">Отчеты</a> и <a class="" href="https://tuna.am/docs/monitors/">Мониторы</a>, нам стало сразу понятно, что было бы удобно по инциденту в мониторах либо по новому отчету иметь возможность одной кнопкой создать задачу в GitLab, Jira или Яндекс.Трекере. Поэтому мы сделали интеграцию с основными популярными трекерами задач для того, чтобы вы могли быстро создавать задачи в вашем любимом трекере.</p>
<div class="swiper"><div class="swiper-wrapper"><div class="swiper-slide"><img src="https://tuna.am/blog/img/2026-03-24/intagrations_1.png" alt="Интеграции 1"></div><div class="swiper-slide"><img src="https://tuna.am/blog/img/2026-03-24/intagrations_2.png" alt="Интеграции 2"></div><div class="swiper-slide"><img src="https://tuna.am/blog/img/2026-03-24/intagrations_3.png" alt="Интеграции 3"></div></div><div class="swiper-button-prev"></div><div class="swiper-button-next"></div><div class="swiper-pagination"></div></div>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="фильтр-в-инспекторе-запросов">Фильтр в инспекторе запросов<a href="https://tuna.am/blog/boards-meets/#%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80-%D0%B2-%D0%B8%D0%BD%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B5-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2" class="hash-link" aria-label="Прямая ссылка на Фильтр в инспекторе запросов" title="Прямая ссылка на Фильтр в инспекторе запросов" translate="no">​</a></h2>
<p>В инспекторе запросов добавилась строка фильтрации запросов по множеству параметров:  тип запроса, статуса ответа, заголовки, IP-адрес и многое другое. Чтобы начать использовать, обновитесь до последней версии <a class="" href="https://tuna.am/docs/guides/update/">tuna-cli</a>.</p>
<a href="https://tuna.am/docs/tunnels/http/inspect/" target="_blank" rel="noopener noreferrer"><img src="https://tuna.am/blog/img/2026-03-24/inspector_filter.png" alt="Фильтры в инспекторе запросов"></a>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="улучшения-в-sshd-туннелях">Улучшения в SSHd туннелях<a href="https://tuna.am/blog/boards-meets/#%D1%83%D0%BB%D1%83%D1%87%D1%88%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B2-sshd-%D1%82%D1%83%D0%BD%D0%BD%D0%B5%D0%BB%D1%8F%D1%85" class="hash-link" aria-label="Прямая ссылка на Улучшения в SSHd туннелях" title="Прямая ссылка на Улучшения в SSHd туннелях" translate="no">​</a></h2>
<p>Не забываем развивать и <a class="" href="https://tuna.am/docs/tunnels/ssh/">туннели</a>.</p>
<ol>
<li class="">Добавлена поддержка <strong>Windows 11+</strong>, пользователь получит терминал PWSH.</li>
<li class="">Авто обнаружение <em>$HOME</em>, <em>$SHELL</em> и настроек профиля пользователя из под которого запущен SSHd туннель.</li>
<li class="">Переход на asciinema формат в ssh-sessions. Так, что сессии теперь пишут всё, включая работу в тестовых редакторах, запуск TUI утилит и т.д. Записи можно смотреть в терминале, встроить на сайт стандартным плеером или конвертировать в GIF командой <code>tuna ssh-session export</code>.</li>
</ol>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Asciinema плеер</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">GIF</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div id="cast-/blog/img/2026-03-24/ssh_session_asciinema.cast" class="asciinema-player"></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><img src="https://tuna.am/blog/img/2026-03-24/ssh_session_asciinema.gif" alt="ssh_session_asciinema"></div></div></div>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/boards-meets/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отзыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/boards-meets/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="customer-portal" term="customer-portal"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Новые названия тарифов]]></title>
        <id>https://tuna.am/blog/tariff-rename/</id>
        <link href="https://tuna.am/blog/tariff-rename/"/>
        <updated>2026-02-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Переименовали тарифные планы — Хобби стал Новичком, Разработчик стал Профи, а Команда стала Легендой]]></summary>
        <content type="html"><![CDATA[<p>Мы обновили названия тарифных планов. Функциональность и стоимость остались прежними — изменились только названия.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="что-изменилось">Что изменилось?<a href="https://tuna.am/blog/tariff-rename/#%D1%87%D1%82%D0%BE-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D0%BB%D0%BE%D1%81%D1%8C" class="hash-link" aria-label="Прямая ссылка на Что изменилось?" title="Прямая ссылка на Что изменилось?" translate="no">​</a></h2>
<table><thead><tr><th>Было</th><th>Стало</th></tr></thead><tbody><tr><td>Хобби</td><td><strong>Новичок</strong></td></tr><tr><td>Разработчик</td><td><strong>Профи</strong></td></tr><tr><td>Команда</td><td><strong>Легенда</strong></td></tr></tbody></table>
<p>Новые названия лучше отражают уровень возможностей каждого тарифа и путь роста пользователя на платформе.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="почему-переименовали">Почему переименовали?<a href="https://tuna.am/blog/tariff-rename/#%D0%BF%D0%BE%D1%87%D0%B5%D0%BC%D1%83-%D0%BF%D0%B5%D1%80%D0%B5%D0%B8%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2%D0%B0%D0%BB%D0%B8" class="hash-link" aria-label="Прямая ссылка на Почему переименовали?" title="Прямая ссылка на Почему переименовали?" translate="no">​</a></h2>
<p>Старое название <strong>Команда</strong> вводило пользователей в заблуждение — многие думали, что тариф предназначен исключительно для командного использования. На самом деле никаких ограничений нет, и этим тарифом можно пользоваться в одиночку, получая расширенные лимиты и все возможности платформы. Новое название <strong>Легенда</strong> снимает это недоразумение.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="смена-тарифа-с-профи-на-легенду">Смена тарифа с Профи на Легенду<a href="https://tuna.am/blog/tariff-rename/#%D1%81%D0%BC%D0%B5%D0%BD%D0%B0-%D1%82%D0%B0%D1%80%D0%B8%D1%84%D0%B0-%D1%81-%D0%BF%D1%80%D0%BE%D1%84%D0%B8-%D0%BD%D0%B0-%D0%BB%D0%B5%D0%B3%D0%B5%D0%BD%D0%B4%D1%83" class="hash-link" aria-label="Прямая ссылка на Смена тарифа с Профи на Легенду" title="Прямая ссылка на Смена тарифа с Профи на Легенду" translate="no">​</a></h2>
<p>Раньше для перехода на тариф <strong>Легенда</strong> нужно было создавать отдельную <a class="" href="https://tuna.am/docs/team/">команду</a> — теперь это не требуется. Вы можете перейти с <strong>Профи</strong> на <strong>Легенду</strong> прямо из <a href="https://my.tuna.am/subscription" target="_blank" rel="noopener noreferrer" class="">личного кабинета</a> без дополнительных шагов, сохранив все свои ресурсы и настройки.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="что-остаётся-без-изменений">Что остаётся без изменений?<a href="https://tuna.am/blog/tariff-rename/#%D1%87%D1%82%D0%BE-%D0%BE%D1%81%D1%82%D0%B0%D1%91%D1%82%D1%81%D1%8F-%D0%B1%D0%B5%D0%B7-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9" class="hash-link" aria-label="Прямая ссылка на Что остаётся без изменений?" title="Прямая ссылка на Что остаётся без изменений?" translate="no">​</a></h2>
<ul>
<li class="">Стоимость подписок</li>
<li class="">Лимиты и функции каждого тарифа</li>
<li class="">Дополнительные лицензии</li>
<li class="">Все активные подписки продолжают работать</li>
</ul>
<p>Если у вас есть вопросы — <a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">свяжитесь с нами</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/tariff-rename/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отзыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/tariff-rename/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="customer-portal" term="customer-portal"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Поддержка PROXY Protocol в TCP туннелях]]></title>
        <id>https://tuna.am/blog/release-v0-30-0/</id>
        <link href="https://tuna.am/blog/release-v0-30-0/"/>
        <updated>2026-01-28T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[В консольном клиенте tuna появилась поддержка PROXY Protocol для TCP туннелей — передавайте оригинальный IP и порт клиента вашему приложению.]]></summary>
        <content type="html"><![CDATA[<p>В <a class="" href="https://tuna.am/docs/guides/install/install-cli/">консольном клиенте</a> <strong>tuna</strong> добавлена поддержка <a href="https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt" target="_blank" rel="noopener noreferrer" class="">PROXY Protocol</a> для TCP туннелей. Теперь вы можете передавать оригинальный IP-адрес и порт клиента напрямую вашему приложению.</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">$ tuna tcp </span><span class="token number" style="color:#36acaa">54321</span><span class="token plain"> --proxy-protocol</span><span class="token operator" style="color:#393A34">=</span><span class="token number" style="color:#36acaa">2</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">INFO</span><span class="token punctuation" style="color:#393A34">[</span><span class="token number" style="color:#36acaa">22</span><span class="token plain">:08:58</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"> Welcome to Tuna</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">INFO</span><span class="token punctuation" style="color:#393A34">[</span><span class="token number" style="color:#36acaa">22</span><span class="token plain">:09:00</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"> Forwarding tcp://ru.tuna.am:22347 -</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">127.0</span><span class="token plain">.0.1:54321</span><br></div></code></pre></div></div>
<p><a class="" href="https://tuna.am/docs/tunnels/tcp/#proxy-protocol">Перейти к документации</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="зачем-нужен-proxy-protocol">Зачем нужен PROXY Protocol?<a href="https://tuna.am/blog/release-v0-30-0/#%D0%B7%D0%B0%D1%87%D0%B5%D0%BC-%D0%BD%D1%83%D0%B6%D0%B5%D0%BD-proxy-protocol" class="hash-link" aria-label="Прямая ссылка на Зачем нужен PROXY Protocol?" title="Прямая ссылка на Зачем нужен PROXY Protocol?" translate="no">​</a></h2>
<p>При использовании туннелей ваше приложение видит подключения от туннельного сервера, а не от реального клиента. PROXY Protocol решает эту проблему — он передаёт оригинальный IP и порт клиента в заголовке соединения, что позволяет:</p>
<ul>
<li class="">Вести корректные логи подключений с реальными IP-адресами</li>
<li class="">Применять правила контроля доступа на уровне приложения</li>
<li class="">Собирать точную аналитику по географии пользователей</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="новый-флаг">Новый флаг<a href="https://tuna.am/blog/release-v0-30-0/#%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9-%D1%84%D0%BB%D0%B0%D0%B3" class="hash-link" aria-label="Прямая ссылка на Новый флаг" title="Прямая ссылка на Новый флаг" translate="no">​</a></h2>
<p>В команде <code>tuna tcp</code> появился новый флаг <code>--proxy-protocol</code>, принимающий версию протокола:</p>
<table><thead><tr><th>Значение</th><th>Формат</th><th>Описание</th></tr></thead><tbody><tr><td><code>1</code></td><td>Текстовый</td><td>Человекочитаемый формат, легко отлаживать</td></tr><tr><td><code>2</code></td><td>Бинарный</td><td>Более эффективный, рекомендуемый для продакшена</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="примеры-использования">Примеры использования<a href="https://tuna.am/blog/release-v0-30-0/#%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F" class="hash-link" aria-label="Прямая ссылка на Примеры использования" title="Прямая ссылка на Примеры использования" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="базовый-пример">Базовый пример<a href="https://tuna.am/blog/release-v0-30-0/#%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B9-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80" class="hash-link" aria-label="Прямая ссылка на Базовый пример" title="Прямая ссылка на Базовый пример" translate="no">​</a></h3>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna tcp </span><span class="token number" style="color:#36acaa">8443</span><span class="token plain"> --proxy-protocol</span><span class="token operator" style="color:#393A34">=</span><span class="token number" style="color:#36acaa">1</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># или с переменной окружения</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token assign-left variable" style="color:#36acaa">TUNA_PROXY_PROTOCOL</span><span class="token operator" style="color:#393A34">=</span><span class="token number" style="color:#36acaa">1</span><span class="token plain"> tuna tcp </span><span class="token number" style="color:#36acaa">8443</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="minecraft-сервер">Minecraft сервер<a href="https://tuna.am/blog/release-v0-30-0/#minecraft-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80" class="hash-link" aria-label="Прямая ссылка на Minecraft сервер" title="Прямая ссылка на Minecraft сервер" translate="no">​</a></h3>
<p>Некоторые сборки игровых серверов, например <a href="https://docs.papermc.io/velocity/configuration/#advanced-section" target="_blank" rel="noopener noreferrer" class="">Velocity</a>, поддерживают PROXY Protocol. Включите его в конфиге игры и в клиенте tuna:</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna tcp </span><span class="token number" style="color:#36acaa">45678</span><span class="token plain"> --proxy-protocol</span><span class="token operator" style="color:#393A34">=</span><span class="token number" style="color:#36acaa">2</span><br></div></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="совместимость">Совместимость<a href="https://tuna.am/blog/release-v0-30-0/#%D1%81%D0%BE%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C" class="hash-link" aria-label="Прямая ссылка на Совместимость" title="Прямая ссылка на Совместимость" translate="no">​</a></h2>
<p>PROXY Protocol широко поддерживается популярным серверным ПО:</p>
<ul>
<li class=""><strong>Haproxy</strong> — поддерживает обе версии, определяет автоматически</li>
<li class=""><strong>Nginx</strong> — поддерживает обе версии, определяет автоматически</li>
<li class=""><strong>Envoy</strong> — поддерживает обе версии</li>
<li class="">Многие базы данных и приложения через прокси-слой</li>
</ul>
<div class="theme-admonition theme-admonition-tip admonition_xJq3 alert alert--success"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>подсказка</div><div class="admonitionContent_BuS1"><p>Если вы не уверены какую версию выбрать — используйте версию <code>2</code>. Бинарный формат эффективнее и является рекомендуемым в большинстве случаев.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="обновление">Обновление<a href="https://tuna.am/blog/release-v0-30-0/#%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5" class="hash-link" aria-label="Прямая ссылка на Обновление" title="Прямая ссылка на Обновление" translate="no">​</a></h2>
<p>Для обновления следуйте <a class="" href="https://tuna.am/docs/guides/update/">инструкции</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/release-v0-30-0/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отз�ыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/release-v0-30-0/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="release" term="release"/>
        <category label="tuna" term="tuna"/>
        <category label="cli" term="cli"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🆕 Мониторы - новый функционал]]></title>
        <id>https://tuna.am/blog/monitors/</id>
        <link href="https://tuna.am/blog/monitors/"/>
        <updated>2026-01-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Сервис мониторинга работы задач и удаленных ресурсов]]></summary>
        <content type="html"><![CDATA[<p>Мы рады представить новый компонент платформы Tuna — <strong>Мониторы</strong>. Функционал для отслеживания работоспособности ваших сервисов, туннелей, задач и инфраструктуры с уведомлениями через различные каналы связи.</p>
<p><a class="" href="https://tuna.am/docs/monitors/">Перейти к разделу Мониторы в документации</a></p>
<img src="https://tuna.am/docs/img/monitors/main.png" alt="Главная страница мониторов">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="что-такое-tuna-мониторы">Что такое Tuna Мониторы?<a href="https://tuna.am/blog/monitors/#%D1%87%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-tuna-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D1%8B" class="hash-link" aria-label="Прямая ссылка на Что такое Tuna Мониторы?" title="Прямая ссылка на Что такое Tuna Мониторы?" translate="no">​</a></h2>
<p>Мониторы позволяют контролировать работу ваших cron-задач, сервисов и инфраструктуры. При возникновении проблем вы сразу получите уведомление через настроенные каналы связи — email, Telegram, Slack и другие.</p>
<p><strong>Мониторы</strong> — это:</p>
<ul>
<li class="">Отслеживание периодических задач (backup скриптов, cron задач)</li>
<li class="">Проверка доступности веб-сайтов и API, туннелей из нескольких регионов</li>
<li class="">Мониторинг сетевой инфраструктуры (TCP, DNS, ICMP)</li>
<li class="">Автоматические уведомления при сбоях и восстановлении</li>
<li class="">Интеграция с tuna CLI для удобной работы из терминала</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="для-кого">Для кого?<a href="https://tuna.am/blog/monitors/#%D0%B4%D0%BB%D1%8F-%D0%BA%D0%BE%D0%B3%D0%BE" class="hash-link" aria-label="Прямая ссылка на Для кого?" title="Прямая ссылка на Для кого?" translate="no">​</a></h2>
<ol>
<li class=""><strong>DevOps-инженерам</strong> — для мониторинга инфраструктуры и автоматизированных задач</li>
<li class=""><strong>Разработчикам</strong> — для отслеживания доступности API и сервисов</li>
<li class=""><strong>Системным администраторам</strong> — для контроля выполнения backup-скриптов и cron-задач</li>
<li class=""><strong>Командам</strong> — для централизованного мониторинга всех сервисов с общими уведомлениями</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-типов-мониторов">6 типов мониторов<a href="https://tuna.am/blog/monitors/#6-%D1%82%D0%B8%D0%BF%D0%BE%D0%B2-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%BE%D0%B2" class="hash-link" aria-label="Прямая ссылка на 6 типов мониторов" title="Прямая ссылка на 6 типов мониторов" translate="no">​</a></h2>
<p>Tuna поддерживает 6 типов мониторов, разделённых на две категории:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="пользовательские-мониторы">Пользовательские мониторы<a href="https://tuna.am/blog/monitors/#%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B5-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D1%8B" class="hash-link" aria-label="Прямая ссылка на Пользовательские мониторы" title="Прямая ссылка на Пользовательские мониторы" translate="no">​</a></h3>
<p>Эти мониторы ожидают сигналы от ваших приложений и скриптов:</p>
<table><thead><tr><th>Тип</th><th>Описание</th></tr></thead><tbody><tr><td><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="margin-right:6px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"></path><path d="M3 3v5h5"></path><path d="M12 7v5l4 2"></path></svg> <strong>Задача (Job)</strong></td><td>Мониторинг выполнения периодических задач по расписанию</td></tr><tr><td><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="margin-right:6px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"></path><path d="M3.22 12H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27"></path></svg> <strong>Heartbeat</strong></td><td>Мониторинг регулярных сигналов от сервисов в закрытых сетях</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="внешние-мониторы">Внешние мониторы<a href="https://tuna.am/blog/monitors/#%D0%B2%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B5-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D1%8B" class="hash-link" aria-label="Прямая ссылка на Внешние мониторы" title="Прямая ссылка на Внешние мониторы" translate="no">​</a></h3>
<p>Эти мониторы самостоятельно проверяют доступность ваших ресурсов из нескольких географических регионов:</p>
<table><thead><tr><th>Тип</th><th>Описание</th></tr></thead><tbody><tr><td><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="margin-right:6px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg> <strong>HTTP</strong></td><td>Проверка доступности веб-сайтов и API с валидацией ответа</td></tr><tr><td><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="margin-right:6px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M17 21v-2a1 1 0 0 1-1-1v-1a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1"></path><path d="M19 15V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V9"></path><path d="M21 21v-2h-4"></path><path d="M3 5h4V3"></path><path d="M7 5a1 1 0 0 1 1 1v1a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1V3"></path></svg> <strong>TCP</strong></td><td>Проверка доступности TCP-сервисов (базы данных, почта)</td></tr><tr><td><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="margin-right:6px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg> <strong>DNS</strong></td><td>Проверка DNS-записей и их корректности</td></tr><tr><td><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" style="margin-right:6px" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg> <strong>ICMP</strong></td><td>Проверка сетевой доступности (ping)</td></tr></tbody></table>
<p>HTTP и TCP мониторы интегрированы с Туннелями. Если у вас есть активные туннели или зарезервированные домены/порты, то при создании монитора нужный ресурс будет в меню справа от адреса.</p>
<img src="https://tuna.am/docs/img/monitors/http_tunnel.png" alt="Главная страница мониторов">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="ключевые-возможности">Ключевые возможности<a href="https://tuna.am/blog/monitors/#%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%B2%D1%8B%D0%B5-%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B8" class="hash-link" aria-label="Прямая ссылка на Ключевые возможности" title="Прямая ссылка на Ключевые возможности" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="мониторинг-cron-задач">Мониторинг cron-задач<a href="https://tuna.am/blog/monitors/#%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3-cron-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87" class="hash-link" aria-label="Прямая ссылка на Мониторинг cron-задач" title="Прямая ссылка на Мониторинг cron-задач" translate="no">​</a></h3>
<p>Отслеживайте выполнение backup-скриптов, синхронизаций и других периодических операций:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># Простой backup с мониторингом</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">tuna monitor </span><span class="token builtin class-name">exec</span><span class="token plain"> MONITOR_ID -- pg_dump </span><span class="token parameter variable" style="color:#36acaa">-U</span><span class="token plain"> postgres mydb </span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> /backups/dump.sql</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># В crontab</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token number" style="color:#36acaa">0</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">3</span><span class="token plain"> * * * tuna monitor </span><span class="token builtin class-name">exec</span><span class="token plain"> MONITOR_ID -- /scripts/backup.sh</span><br></div></code></pre></div></div>
<p>Система автоматически отправляет сигналы <code>start</code>, <code>finish</code> или <code>fail</code>, а также захватывает логи выполнения.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="heartbeat-мониторинг">Heartbeat мониторинг<a href="https://tuna.am/blog/monitors/#heartbeat-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3" class="hash-link" aria-label="Прямая ссылка на Heartbeat мониторинг" title="Прямая ссылка на Heartbeat мониторинг" translate="no">​</a></h3>
<p>Для сервисов в закрытых сетях, IoT устройств и фоновых процессов:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># Отправка heartbeat каждые 5 минут</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">*/5 * * * * tuna monitor </span><span class="token function" style="color:#d73a49">ping</span><span class="token plain"> MONITOR_ID </span><span class="token parameter variable" style="color:#36acaa">--host</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">my-server</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="проверка-из-нескольких-регионов">Проверка из нескольких регионов<a href="https://tuna.am/blog/monitors/#%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0-%D0%B8%D0%B7-%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D1%85-%D1%80%D0%B5%D0%B3%D0%B8%D0%BE%D0%BD%D0%BE%D0%B2" class="hash-link" aria-label="Прямая ссылка на Проверка из нескольких регионов" title="Прямая ссылка на Проверка из нескольких регионов" translate="no">​</a></h3>
<p>Внешние мониторы проверяют доступность ваших ресурсов из разных географических точек, что позволяет обнаружить проблемы с маршрутизацией или региональную недоступность.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="ssltls-и-whois-мониторинг">SSL/TLS и Whois мониторинг<a href="https://tuna.am/blog/monitors/#ssltls-%D0%B8-whois-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3" class="hash-link" aria-label="Прямая ссылка на SSL/TLS и Whois мониторинг" title="Прямая ссылка на SSL/TLS и Whois мониторинг" translate="no">​</a></h3>
<p>HTTP мониторы автоматически проверяют SSL-сертификаты и отслеживают срок действия домена, чтобы вы не пропустили момент продления.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="интеграция-с-уведомлениями">Интеграция с уведомлениями<a href="https://tuna.am/blog/monitors/#%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D1%81-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8" class="hash-link" aria-label="Прямая ссылка на Интеграция с уведомлениями" title="Прямая ссылка на Интеграция с уведомлениями" translate="no">​</a></h3>
<p>Мониторы интегрированы с системой <a class="" href="https://tuna.am/docs/team/contacts/">Контактов</a> и <a class="" href="https://tuna.am/docs/team/integrations/">Интеграций</a>. Настройте уведомления в Telegram, Slack, по email или через webhook.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="cli-интеграция">CLI-интеграция<a href="https://tuna.am/blog/monitors/#cli-%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F" class="hash-link" aria-label="Прямая ссылка на CLI-интеграция" title="Прямая ссылка на CLI-интеграция" translate="no">​</a></h2>
<p>Консольный клиент <strong>tuna</strong> полностью <a class="" href="https://tuna.am/docs/monitors/cli/">интегрирован</a> с мониторами:</p>
<ul>
<li class=""><code>tuna monitor ping</code> — отправка сигнала Heartbeat монитору</li>
<li class=""><code>tuna monitor exec</code> — выполнение команды с автоматическим отслеживанием</li>
<li class=""><code>tuna monitor status</code> — просмотр статуса мониторов</li>
</ul>
<p>Подробная информация о каждом типе мониторов, настройках и примерах использования доступна в <a class="" href="https://tuna.am/docs/monitors/">документации</a>.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="уведомления-и-интеграции">Уведомления и интеграции<a href="https://tuna.am/blog/monitors/#%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8-%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D0%B8" class="hash-link" aria-label="Прямая ссылка на Уведомления и интеграции" title="Прямая ссылка на Уведомления и интеграции" translate="no">​</a></h2>
<p>Уведомления и интеграции - это также большая часть нового функционала, которая интегрирована не только с <a class="" href="https://tuna.am/docs/monitors/">мониторами</a>, но и <a class="" href="https://tuna.am/docs/reports/">отчётами</a>.</p>
<img src="https://tuna.am/docs/img/team/integrations_2.png" alt="Виды интеграций">
<p>Поддерживаются популярные каналы связи: Telegram, Slack, Discord, VK Teams, Google Chat и произвольные Webhook. <a class="" href="https://tuna.am/docs/team/contacts/">Группы контактов</a> позволяют гибко управлять получателями — объединяйте email-адреса и интеграции в именованные группы, используйте одну группу для нескольких мониторов и легко добавляйте или удаляйте получателей без изменения настроек самих мониторов.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/monitors/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отзыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/monitors/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="release" term="release"/>
        <category label="tuna" term="tuna"/>
        <category label="cli" term="cli"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🆕 Отчёты - новый функционал]]></title>
        <id>https://tuna.am/blog/reports/</id>
        <link href="https://tuna.am/blog/reports/"/>
        <updated>2025-11-12T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Сервис создания отчётов об ошибках на вашем сайте от Tuna]]></summary>
        <content type="html"><![CDATA[<p>Мы рады представить новый компонент платформы Tuna - <strong>Отчёты</strong>. Предназначенный для генерации отчётов об ошибках на вашем сайте.
С помощью встраиваемого скрипта пользователи и QA-инженеры могут легко показать, где спрятался баг, а вы – получить отладочную информацию и сразу приступить к исправлению.</p>
<p><a class="" href="https://tuna.am/docs/reports/">Перейти к разделу Отчёты в документации</a></p>
<img src="https://tuna.am/docs/img/reports/setup.png" style="width:85%;height:auto" alt="Настройка">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="как-это-работает">Как это работает?<a href="https://tuna.am/blog/reports/#%D0%BA%D0%B0%D0%BA-%D1%8D%D1%82%D0%BE-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82" class="hash-link" aria-label="Прямая ссылка на Как это работает?" title="Прямая ссылка на Как это работает?" translate="no">​</a></h2>
<ol>
<li class="">
<p>Перейдите в личный кабинет и создайте проект в разделе <a href="https://my.tuna.am/reports" target="_blank" rel="noopener noreferrer" class="">Отчёты</a>.</p>
</li>
<li class="">
<p>Добавьте на ваш сайт код перед закрытием тега <code>&lt;head&gt;</code>:</p>
<div class="language-html codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-html codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv codeBlockLinesWithNumbering_o6Pm" style="counter-reset:line-count 0"><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token comment" style="color:#999988;font-style:italic">&lt;!-- tuna. Запись экрана и действий пользователей --&gt;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">script</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token script language-javascript"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token script language-javascript">    </span><span class="token script language-javascript dom variable" style="color:#36acaa">window</span><span class="token script language-javascript punctuation" style="color:#393A34">.</span><span class="token script language-javascript property-access">reportOptions</span><span class="token script language-javascript"> </span><span class="token script language-javascript operator" style="color:#393A34">=</span><span class="token script language-javascript"> </span><span class="token script language-javascript punctuation" style="color:#393A34">{</span><span class="token script language-javascript"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token script language-javascript">        </span><span class="token script language-javascript literal-property property" style="color:#36acaa">captureKey</span><span class="token script language-javascript operator" style="color:#393A34">:</span><span class="token script language-javascript"> </span><span class="token script language-javascript string" style="color:#e3116c">"YOUR_CAPTURE_KEY"</span><span class="token script language-javascript"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token script language-javascript">    </span><span class="token script language-javascript punctuation" style="color:#393A34">}</span><span class="token script language-javascript punctuation" style="color:#393A34">;</span><span class="token script language-javascript"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token script language-javascript"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">script</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token plain"></span></span><br></div><div class="token-line codeLine_lJS_" style="color:#393A34"><span class="codeLineNumber_Tfdd"></span><span class="codeLineContent_feaV"><span class="token plain"></span><span class="token tag punctuation" style="color:#393A34">&lt;</span><span class="token tag" style="color:#00009f">script</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">src</span><span class="token tag attr-value punctuation attr-equals" style="color:#393A34">=</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag attr-value" style="color:#e3116c">https://reports.tuna.am/latest/index.js</span><span class="token tag attr-value punctuation" style="color:#393A34">"</span><span class="token tag" style="color:#00009f"> </span><span class="token tag attr-name" style="color:#00a4db">async</span><span class="token tag punctuation" style="color:#393A34">&gt;</span><span class="token script"></span><span class="token tag punctuation" style="color:#393A34">&lt;/</span><span class="token tag" style="color:#00009f">script</span><span class="token tag punctuation" style="color:#393A34">&gt;</span></span><br></div></code></pre></div></div>
</li>
<li class="">
<p>Вызовите скрипт <code>CTRL + ALT + S</code> или <code>⌘ + ⌥ + S</code>  и создайте отчёт.</p>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="как-выглядит-отчёт">Как выглядит отчёт?<a href="https://tuna.am/blog/reports/#%D0%BA%D0%B0%D0%BA-%D0%B2%D1%8B%D0%B3%D0%BB%D1%8F%D0%B4%D0%B8%D1%82-%D0%BE%D1%82%D1%87%D1%91%D1%82" class="hash-link" aria-label="Прямая ссылка на Как выглядит отчёт?" title="Прямая ссылка на Как выглядит отчёт?" translate="no">​</a></h2>
<p>Внутри отчёта будет скриншот или видео и вся отладочная информация из консоли, сетевые операции, действия пользователя и снимок DOM-дерева страницы.</p>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Информация</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Инспектор</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Консоль</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Сеть</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Действия</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Комментарии</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p>На первой вкладке содержится общая сводная информация о клиенте, устройстве, браузере...</p><img src="https://tuna.am/docs/img/reports/info.png" style="width:100%;height:auto"></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p>Снимок DOM-дерева страницы, с возможностью выбора элемента.</p><div style="width:100%;height:auto"></div><hr><div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>примечание</div><div class="admonitionContent_BuS1"><p>Эта вкладка доступна только для отчётов с скриншотом, в отчётах с видео невозможно захватить снимок DOM-дерева так как он может меняться по ходу.</p></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p>Список всех событий из консоли браузера.</p><img src="https://tuna.am/docs/img/reports/console.png" style="width:100%;height:auto"></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p>Список всех XHR запросов с возможностью заглянуть в детали.</p><div style="width:100%;height:auto"></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p>Действия пользователя на странице.</p><img src="https://tuna.am/docs/img/reports/actions.png" style="width:100%;height:auto"></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p>Также можно оставлять комментарии и реакции к комментариям.</p><img src="https://tuna.am/docs/img/reports/message.png" style="width:100%;height:auto"></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="видео-обзор">Видео обзор<a href="https://tuna.am/blog/reports/#%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80" class="hash-link" aria-label="Прямая ссылка на Видео обзор" title="Прямая ссылка на Видео обзор" translate="no">​</a></h2>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">YouTube</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">VK Видео</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div style="width:640px;height:360px"></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><iframe src="https://vkvideo.ru/video_ext.php?oid=-230240053&amp;id=456239024&amp;hd=1&amp;autoplay=0" width="640" height="360" allow="autoplay; encrypted-media; fullscreen; picture-in-picture; screen-wake-lock;" frameborder="0"></iframe></div></div></div>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/reports/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отзыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/reports/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🆕 Вебхуки (SMTP, политики трафика, повтор в туннель), TOTP в паролях, улучшение дистрибуции клиентов]]></title>
        <id>https://tuna.am/blog/webhooks-smtp/</id>
        <link href="https://tuna.am/blog/webhooks-smtp/"/>
        <updated>2025-10-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Новые функции в Вебхуках, TOTP в паролях, улучшение дистрибуции клиентов]]></summary>
        <content type="html"><![CDATA[<p>В этом обновлении - о новых функциях в Вебхуках. Небольшое, но важное обновление в Менеджере паролей.
Улучшения и повышении безопасности в дистрибуции клиентов.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="вебхуки">Вебхуки<a href="https://tuna.am/blog/webhooks-smtp/#%D0%B2%D0%B5%D0%B1%D1%85%D1%83%D0%BA%D0%B8" class="hash-link" aria-label="Прямая ссылка на Вебхуки" title="Прямая ссылка на Вебхуки" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="политика-трафика">Политика трафика<a href="https://tuna.am/blog/webhooks-smtp/#%D0%BF%D0%BE%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0-%D1%82%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0" class="hash-link" aria-label="Прямая ссылка на Политика трафика" title="Прямая ссылка на Политика трафика" translate="no">​</a></h3>
<p>Помимо простого ответа теперь можно описать сложные правила обработки вебхука, имитируя например ответ API.
Важно отметить что это будет работать даже на бесплатном тарифе и вы можете попробовать политики трафика бесплатно.</p>
<img src="https://tuna.am/docs/img/webhooks/reply_tp.png" alt="Скриншот с политикой трафика в вебхуке">
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="пересылка-запроса-в-туннель">Пересылка запроса в туннель<a href="https://tuna.am/blog/webhooks-smtp/#%D0%BF%D0%B5%D1%80%D0%B5%D1%81%D1%8B%D0%BB%D0%BA%D0%B0-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0-%D0%B2-%D1%82%D1%83%D0%BD%D0%BD%D0%B5%D0%BB%D1%8C" class="hash-link" aria-label="Прямая ссылка на Пересылка запроса в туннель" title="Прямая ссылка на Пересылка запроса в туннель" translate="no">​</a></h3>
<p>Если у вас есть запущенные туннели вы можете переслать в него принятый запрос.
Нам показалось это может быть удобно и полезно при отладке чего-то на начальных этапах.</p>
<img src="https://tuna.am/docs/img/webhooks/resend_to_tunnel.png" alt="Скриншот с пересылкой запроса в туннель">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="totp-в-менеджере-паролей">TOTP в Менеджере паролей<a href="https://tuna.am/blog/webhooks-smtp/#totp-%D0%B2-%D0%BC%D0%B5%D0%BD%D0%B5%D0%B4%D0%B6%D0%B5%D1%80%D0%B5-%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D0%B5%D0%B9" class="hash-link" aria-label="Прямая ссылка на TOTP в Менеджере паролей" title="Прямая ссылка на TOTP в Менеджере паролей" translate="no">​</a></h2>
<p>Появились долгожданные TOTP (Time-based one-time) пароли.
Это значит, что если у вас есть 1 аккаунт от стороннего сервиса на команду, теперь вы можете спокойно включить 2FA.</p>
<img src="https://tuna.am/docs/img/passwords/totp.webp" alt="Гифка с TOTP">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="улучшение-дистрибуции-клиентов">Улучшение дистрибуции клиентов<a href="https://tuna.am/blog/webhooks-smtp/#%D1%83%D0%BB%D1%83%D1%87%D1%88%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B8%D1%81%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%86%D0%B8%D0%B8-%D0%BA%D0%BB%D0%B8%D0%B5%D0%BD%D1%82%D0%BE%D0%B2" class="hash-link" aria-label="Прямая ссылка на Улучшение дистрибуции клиентов" title="Прямая ссылка на Улучшение дистрибуции клиентов" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="безопасность">Безопасность<a href="https://tuna.am/blog/webhooks-smtp/#%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="hash-link" aria-label="Прямая ссылка на Безопасность" title="Прямая ссылка на Безопасность" translate="no">​</a></h3>
<p>Мы делаем упор на безопасности, поэтому рекомендуем проверять, что вы используете именно наши официальные сборки клиентов.
Теперь все артефакты сборки, архивы, пакеты, инсталляторы, checksum файлы и docker образы подписываются нашей электронной подписью.</p>
<ul>
<li class="">Публичный <strong>GPG</strong> ключ для верификации распространяется по ссылке - <a href="https://releases.tuna.am/tuna.asc" target="_blank" rel="noopener noreferrer" class="">https://releases.tuna.am/tuna.asc</a></li>
<li class="">Публичный <a href="https://docs.sigstore.dev/" target="_blank" rel="noopener noreferrer" class="">Cosign</a> ключ для верификации Docker images - <a href="https://releases.tuna.am/tuna-cosign.asc" target="_blank" rel="noopener noreferrer" class="">https://releases.tuna.am/tuna-cosign.asc</a></li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="дистрибуция-для-alt-linux">Дистрибуция для ALT Linux<a href="https://tuna.am/blog/webhooks-smtp/#%D0%B4%D0%B8%D1%81%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%86%D0%B8%D1%8F-%D0%B4%D0%BB%D1%8F-alt-linux" class="hash-link" aria-label="Прямая ссылка на Дистрибуция для ALT Linux" title="Прямая ссылка на Дистрибуция для ALT Linux" translate="no">​</a></h3>
<p>Добавили поддержку дистрибуции для российского ALT Linux, подробнее в <a class="" href="https://tuna.am/docs/guides/install/">инструкции по установке</a>.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/webhooks-smtp/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отзыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/webhooks-smtp/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🛠 Telegram бот для мониторинга VirusTotal]]></title>
        <id>https://tuna.am/blog/vt-telegram-bot/</id>
        <link href="https://tuna.am/blog/vt-telegram-bot/"/>
        <updated>2025-09-11T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Наш инструментарий для хостов в VirusTotal]]></summary>
        <content type="html"><![CDATA[<p>Мы публикуем ещё один Open-Source инструмент который используем сами и хотим поделиться со всеми.
На этот раз это - <a href="https://gitlab.com/yuccastream/vt-telegram-bot" target="_blank" rel="noopener noreferrer" class="">Telegram бот для мониторинга доменов и IP адресов в базах VirusTotal</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="обзор">Обзор<a href="https://tuna.am/blog/vt-telegram-bot/#%D0%BE%D0%B1%D0%B7%D0%BE%D1%80" class="hash-link" aria-label="Прямая ссылка на Обзор" title="Прямая ссылка на Обзор" translate="no">​</a></h2>
<p>Ещё на ранних этапах мы столкнулись с использованием нашей платформы мошенниками.
Они раздают вредоносные программы, шлют спам, публикуют копии сайтов и занимаются прочим непотребством.
Поэтому мы внедрили достаточно много инструментов для анализа и раннего обнаружения подобных нарушений.
Но это не защищает на 100%, иногда туннельные ноды всё таки попадают в базы антивирусов,
и тут наша задача как можно быстрее узнать об этом заблокировать нарушителя и оперативно связаться антивирусной компанией для удаления наших доменов,
поддоменов и IP адресов из баз с карантином.</p>
<p>К счастью, есть такой прекрасный ресурс как <a href="https://www.virustotal.com/" target="_blank" rel="noopener noreferrer" class="">VirusTotal</a>, по сути это агрегатор.
В нём вы можете проверить ресурс (домен, ip, файл) на присутствие в базах каких либо - антивирусов.
Всё очень просто и наглядно, выглядит примерно так:</p>
<p><img decoding="async" loading="lazy" src="https://tuna.am/assets/images/vt-367db5466c61048a8e61b72928436bfe.png" width="1320" height="686" class="img_ev3q"></p>
<p>VirusTotal имеет публичное API, ещё cli утилиту, готовые клиенты для некоторых языков и если зарегистрироваться и получить API Key, то можно всё неплохо автоматизировать,
что позволит узнавать о присутствии в базах максимально оперативно. Что мы и сделали.
Но стоит помнить, что на бесплатном тарифе есть некоторые ограничения по количеству запросов, но на дюжину доменов/ip вам точно хватит.</p>
<p><img decoding="async" loading="lazy" src="https://tuna.am/assets/images/vt-quota-10b95ad6cd0ad82e502e8ef191c15f17.png" width="1315" height="441" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="как-использовать">Как использовать?<a href="https://tuna.am/blog/vt-telegram-bot/#%D0%BA%D0%B0%D0%BA-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C" class="hash-link" aria-label="Прямая ссылка на Как использовать?" title="Прямая ссылка на Как использовать?" translate="no">​</a></h2>
<p>В <a href="https://gitlab.com/yuccastream/vt-telegram-bot" target="_blank" rel="noopener noreferrer" class="">репозитории</a> вы найдёте бинарные сборки и образы docker для запуска, а также инструкцию по конфигурации.
Мы будем рады обратной связи и merge requests.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/vt-telegram-bot/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отзыв" title="Прямая �ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/vt-telegram-bot/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🆕 Вебхуки - новый функционал]]></title>
        <id>https://tuna.am/blog/webhooks/</id>
        <link href="https://tuna.am/blog/webhooks/"/>
        <updated>2025-08-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Tuna Webhooks - новая функция в нашем арсенале инструментов для разработчика.]]></summary>
        <content type="html"><![CDATA[<p>В этом обновлении мы добавили новый функционал - <a href="https://my.tuna.am/webhooks" target="_blank" rel="noopener noreferrer" class="">Вебхуки</a> или Webhooks.
Функционал позволяющий легко узнать, что находится в запросе который посылает какой либо сервис.
В частности понять какая реально приходит информация в теле запроса, заголовки, IP источника и так далее.</p>
<p><a href="https://my.tuna.am/webhooks" target="_blank" rel="noopener noreferrer" class="">Перейти в личный кабинет</a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="обзор">Обзор<a href="https://tuna.am/blog/webhooks/#%D0%BE%D0%B1%D0%B7%D0%BE%D1%80" class="hash-link" aria-label="Прямая ссылка на Обзор" title="Прямая ссылка на Обзор" translate="no">​</a></h2>
<div style="width:100%;height:auto"></div>
<hr>
<p>В личном кабинете появился новый раздел <a href="https://my.tuna.am/webhooks" target="_blank" rel="noopener noreferrer" class="">Вебхуки</a>.
Тут вы можете создавать ссылки для тестирования, отладки и создания заглушек(mocks).
Это достаточно удобно когда вы хотите понять почему документация вебхука сервиса не соответствует реальности, просто укажите ссылку и всё сразу станет понятно.
Вы увидите в удобном формате все заголовки и тело запроса.
В <a class="" href="https://tuna.am/docs/webhooks/">документации</a> к разделу вы найдёте более подробную информацию по управлению вебхуками и примеры.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/webhooks/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылк�а на Оставьте отзыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/webhooks/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[IP фильтры в TCP, SSH, Postgres и Redis туннелях]]></title>
        <id>https://tuna.am/blog/release-v0-25-0/</id>
        <link href="https://tuna.am/blog/release-v0-25-0/"/>
        <updated>2025-06-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Появилась поддержка IP фильтрации входящих соединений для TCP и всех TCP подобных туннелей]]></summary>
        <content type="html"><![CDATA[<p>В консольном клиенте <strong>tuna</strong> версии v0.25.0 мы добавили возможность ограничивать IP и подсети с которых можно подключаться.
Это повышает уровень безопасности и особенно важно в приложениях без встроенной авторизации.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="новые-флаги">Новые флаги<a href="https://tuna.am/blog/release-v0-25-0/#%D0%BD%D0%BE%D0%B2%D1%8B%D0%B5-%D1%84%D0%BB%D0%B0%D0%B3%D0%B8" class="hash-link" aria-label="Прямая ссылка на Новые флаги" title="Прямая ссылка на Новые флаги" translate="no">​</a></h2>
<p>В командах <code>tuna tcp</code>, <code>tuna ssh</code>, <code>tuna postgres</code> и  <code>tuna redis</code> появились новые флаги и аналоги env:</p>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Flags</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Envs</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">--cidr-allow </span><span class="token comment" style="color:#999988;font-style:italic"># Отклонять соединения, которые не соответствуют заданным CIDR</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">--cidr-deny </span><span class="token comment" style="color:#999988;font-style:italic"># Отклонить соединения, соответствующие заданным CIDR</span><br></div></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">TUNA_CIDR_ALLOW </span><span class="token comment" style="color:#999988;font-style:italic"># Отклонять соединения, которые не соответствуют заданным CIDR</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">TUNA_CIDR_DENY </span><span class="token comment" style="color:#999988;font-style:italic"># Отклонить соединения, соответствующие заданным CIDR</span><br></div></code></pre></div></div></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="примеры-использования">Примеры использования<a href="https://tuna.am/blog/release-v0-25-0/#%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F" class="hash-link" aria-label="Прямая ссылка на Примеры использования" title="Прямая ссылка на Примеры использования" translate="no">​</a></h2>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">TCP</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">SSH</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Postgres</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Redis</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p>Вы можете определить белый список <a href="https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B4%D1%81%D0%B5%D1%82%D1%8C" target="_blank" rel="noopener noreferrer" class="">подсетей</a> в CIDR-формате:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna tcp </span><span class="token number" style="color:#36acaa">3389</span><span class="token plain"> --cidr-allow</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.1/32"</span><br></div></code></pre></div></div><p>Либо запретить доступ из определенных подсетей:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna tcp </span><span class="token number" style="color:#36acaa">3389</span><span class="token plain"> --cidr-deny</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.1/32"</span><br></div></code></pre></div></div><p>Можно комбинировать, например указать широкую сеть и вычесть частные IP:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna tcp </span><span class="token number" style="color:#36acaa">3389</span><span class="token plain"> --cidr-allow</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.1/24"</span><span class="token plain"> --cidr-deny</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.33/32"</span><br></div></code></pre></div></div><p>Также можно передавать списки через запятую:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna tcp </span><span class="token number" style="color:#36acaa">3389</span><span class="token plain"> --cidr-allow</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.1/24,192.168.0.1/24"</span><span class="token plain"> --cidr-deny</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.33/32,192.168.0.33/32"</span><br></div></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p>Вы можете определить белый список <a href="https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B4%D1%81%D0%B5%D1%82%D1%8C" target="_blank" rel="noopener noreferrer" class="">подсетей</a> в CIDR-формате:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna </span><span class="token function" style="color:#d73a49">ssh</span><span class="token plain"> --cidr-allow</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.1/32"</span><br></div></code></pre></div></div><p>Либо запретить доступ из определенных подсетей:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna </span><span class="token function" style="color:#d73a49">ssh</span><span class="token plain"> --cidr-deny</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.1/32"</span><br></div></code></pre></div></div><p>Можно комбинировать, например указать широкую сеть и вычесть частные IP:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna </span><span class="token function" style="color:#d73a49">ssh</span><span class="token plain"> --cidr-allow</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.1/24"</span><span class="token plain"> --cidr-deny</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.33/32"</span><br></div></code></pre></div></div><p>Также можно передавать списки через запятую:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna </span><span class="token function" style="color:#d73a49">ssh</span><span class="token plain"> --cidr-allow</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.1/24,192.168.0.1/24"</span><span class="token plain"> --cidr-deny</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.33/32,192.168.0.33/32"</span><br></div></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p>Вы можете определить белый список <a href="https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B4%D1%81%D0%B5%D1%82%D1%8C" target="_blank" rel="noopener noreferrer" class="">подсетей</a> в CIDR-формате:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna postgres </span><span class="token number" style="color:#36acaa">5432</span><span class="token plain"> --cidr-allow</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.1/32"</span><br></div></code></pre></div></div><p>Либо запретить доступ из определенных подсетей:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna postgres </span><span class="token number" style="color:#36acaa">5432</span><span class="token plain"> --cidr-deny</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.1/32"</span><br></div></code></pre></div></div><p>Можно комбинировать, например указать широкую сеть и вычесть частные IP:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna postgres </span><span class="token number" style="color:#36acaa">5432</span><span class="token plain"> --cidr-allow</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.1/24"</span><span class="token plain"> --cidr-deny</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.33/32"</span><br></div></code></pre></div></div><p>Также можно передавать списки через запятую:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna postgres </span><span class="token number" style="color:#36acaa">5432</span><span class="token plain"> --cidr-allow</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.1/24,192.168.0.1/24"</span><span class="token plain"> --cidr-deny</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.33/32,192.168.0.33/32"</span><br></div></code></pre></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p>Вы можете определить белый список <a href="https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B4%D1%81%D0%B5%D1%82%D1%8C" target="_blank" rel="noopener noreferrer" class="">подсетей</a> в CIDR-формате:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna redis </span><span class="token number" style="color:#36acaa">6379</span><span class="token plain"> --cidr-allow</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.1/32"</span><br></div></code></pre></div></div><p>Либо запретить доступ из определенных подсетей:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna redis </span><span class="token number" style="color:#36acaa">6379</span><span class="token plain"> --cidr-deny</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.1/32"</span><br></div></code></pre></div></div><p>Можно комбинировать, например указать широкую сеть и вычесть частные IP:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna redis </span><span class="token number" style="color:#36acaa">6379</span><span class="token plain"> --cidr-allow</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.1/24"</span><span class="token plain"> --cidr-deny</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.33/32"</span><br></div></code></pre></div></div><p>Также можно передавать списки через запятую:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">tuna redis </span><span class="token number" style="color:#36acaa">6379</span><span class="token plain"> --cidr-allow</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.1/24,192.168.0.1/24"</span><span class="token plain"> --cidr-deny</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"10.0.0.33/32,192.168.0.33/32"</span><br></div></code></pre></div></div></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="ip-политики-в-легенде">IP политики в Легенде<a href="https://tuna.am/blog/release-v0-25-0/#ip-%D0%BF%D0%BE%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B8-%D0%B2-%D0%BB%D0%B5%D0%B3%D0%B5%D0%BD%D0%B4%D0%B5" class="hash-link" aria-label="Прямая ссылка на IP политики в Легенде" title="Прямая ссылка на IP политики в Легенде" translate="no">​</a></h2>
<p>В <a class="" href="https://tuna.am/docs/team/">командах</a>, если указаны <a class="" href="https://tuna.am/docs/team/ip_policies/">IP политики</a>, то он будут работать в комплексе с этими флагами.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="обновление">Обновление<a href="https://tuna.am/blog/release-v0-25-0/#%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5" class="hash-link" aria-label="Прямая ссылка на Обновление" title="Прямая ссылка на Обновление" translate="no">​</a></h2>
<p>Для обновления следуйте <a class="" href="https://tuna.am/docs/guides/update/">инструкции</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/release-v0-25-0/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отзыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/release-v0-25-0/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="release" term="release"/>
        <category label="tuna" term="tuna"/>
        <category label="cli" term="cli"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🆕 Tuna Desktop - новое GUI приложение]]></title>
        <id>https://tuna.am/blog/tuna-desktop-first/</id>
        <link href="https://tuna.am/blog/tuna-desktop-first/"/>
        <updated>2025-05-26T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Релиз первой версии нашего GUI приложения для создания туннелей - Tuna Desktop]]></summary>
        <content type="html"><![CDATA[<p>Мы рады представить новый клиент для создания туннелей, теперь в виде приложения с интерфейсом для рабочего стола.</p>
<p><img decoding="async" loading="lazy" alt="desktop_main" src="https://tuna.am/assets/images/main-3eefd7c74a66295ba24ca72f724f2433.png" width="1760" height="1816" class="img_ev3q"></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="️-зачем">🤷‍♂️ Зачем?<a href="https://tuna.am/blog/tuna-desktop-first/#%EF%B8%8F-%D0%B7%D0%B0%D1%87%D0%B5%D0%BC" class="hash-link" aria-label="Прямая ссылка на 🤷‍♂️ Зачем?" title="Прямая ссылка на 🤷‍♂️ Зачем?" translate="no">​</a></h2>
<p>При локальной разработке часто бывает так, что есть какой-то туннель с статичным адресом, который должен быть доступен всегда.
Например, когда мы тестируем наши платежи в <a class="" href="https://tuna.am/docs/tunnels/examples/yookassa/">ЮКасса</a>, у нас есть тестовый магазин для каждого разработчика,
где прописан статичный адрес HTTP уведомления. Открывать каждый раз отдельный терминал и писать <code>tuna http -l ru -s test-yookassa-1 8080</code> становится утомительно,
я каждый раз забываю сделать это заранее и приходится создавать несколько счетов или ждать когда платёжная система отправит повторное уведомление.</p>
<p>Также мы знаем, что порой открыть доступ к локальному ресурсу нужно не только разработчикам или системным администраторам, а командная строка не самый дружелюбный интерфейс.</p>
<p>Сложив несколько факторов мы решили сделать GUI приложение с максимально простым интерфейсом, чтобы пользоваться было комфортно даже бухгалтерке.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-ключевые-возможности">🎯 Ключевые возможности<a href="https://tuna.am/blog/tuna-desktop-first/#-%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%B2%D1%8B%D0%B5-%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B8" class="hash-link" aria-label="Прямая ссылка на 🎯 Ключевые возможности" title="Прямая ссылка на 🎯 Ключевые возможности" translate="no">​</a></h2>
<p>Сейчас на момент первого релиза приложение имеет минимум возможностей:</p>
<ul>
<li class=""><a class="" href="https://tuna.am/docs/tunnels/http/">HTTP туннели</a></li>
<li class=""><a class="" href="https://tuna.am/docs/tunnels/tcp/">TCP туннели</a></li>
</ul>
<p>При этом даже этот функционал сильно ограничен относительно консольной версии, всё это сделано в угоду простоте.
Но в будущем мы всё таки планируем расширить функционал, к примеру добавить файловый сервер и базовую авторизацию.</p>
<img src="https://tuna.am/docs/img/desktop/list.png" alt="desktop_list" style="width:30%;height:auto">
<img src="https://tuna.am/docs/img/desktop/icon.png" alt="desktop_icon" style="width:30%;height:auto">
<img src="https://tuna.am/docs/img/desktop/setting.png" alt="desktop_setting" style="width:30%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-поддерживаемые-платформы">🧑‍💻 Поддерживаемые платформы<a href="https://tuna.am/blog/tuna-desktop-first/#-%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D1%8B" class="hash-link" aria-label="Прямая ссылка на 🧑‍💻 Поддерживаемые платформы" title="Прямая ссылка на 🧑‍💻 Поддерживаемые платформы" translate="no">​</a></h2>
<p>Мы поддерживаем все популярные платформы Windows, macOS и Linux - <a class="" href="https://tuna.am/docs/guides/install/install-desktop/">инструкция по установке</a>.</p>
<hr>
<p>Для macOS и Windows позже планируем публикацию через официальные магазины приложений.</p>
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>примечание</div><div class="admonitionContent_BuS1"><p>Если у вас есть предложения по улучшению, мы с удовольствием их обсудим в нашем <a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram чате</a> или по <a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">e-mail</a></p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/tuna-desktop-first/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отзыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/tuna-desktop-first/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="release" term="release"/>
        <category label="tuna" term="tuna"/>
        <category label="desktop" term="desktop"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🆕 Секреты - новый функционал]]></title>
        <id>https://tuna.am/blog/secrets/</id>
        <link href="https://tuna.am/blog/secrets/"/>
        <updated>2025-05-09T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Обновление добавляет новый функционал платформы - Tuna Secrets]]></summary>
        <content type="html"><![CDATA[<p>Мы рады представить новый компонент платформы Tuna - <strong>Секреты</strong>. Предназначенный для централизованного и безопасного управления конфиденциальными настройками и переменными окружения. Это мощная альтернатива <code>.env</code> файлам, переменным в GitLab/GitHub CI и прочим локальным хранилищам.</p>
<p><a class="" href="https://tuna.am/docs/secrets/">Перейти к разделу Секретов в документации</a></p>
<div id="cast-/docs/cast/secrets_download.cast" class="asciinema-player"></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-что-такое-tuna-секреты">🔐 Что такое Tuna Секреты?<a href="https://tuna.am/blog/secrets/#-%D1%87%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-tuna-%D1%81%D0%B5%D0%BA%D1%80%D0%B5%D1%82%D1%8B" class="hash-link" aria-label="Прямая ссылка на 🔐 Что такое Tuna Секреты?" title="Прямая ссылка на 🔐 Что такое Tuna Секреты?" translate="no">​</a></h2>
<p>Сервис секретов предназначен для хранения настроек к вашим приложениям, которые вы запускаете - локально, в CI/CD или в своих тестовых и продуктовых окружениях. Он является отличной альтернативой <code>.env</code> файлам и переменным окружениям в CI/CD системах.</p>
<p><strong>Секреты</strong> — это:</p>
<ul>
<li class="">Единый источник конфигурации для локальной разработки, CI/CD, staging и production сред.</li>
<li class="">Удобный интерфейс управления — через веб, CLI и API.</li>
<li class="">Поддержка RBAC, комментариев, напоминаний и аудита изменений.</li>
<li class="">Гибкая работа с проектами, окружениями и конфигурациями.</li>
<li class="">Все секреты шифруются, ключи не хранятся в базе. Утечка БД не приведёт к раскрытию данных.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-для-кого">👥 Для кого?<a href="https://tuna.am/blog/secrets/#-%D0%B4%D0%BB%D1%8F-%D0%BA%D0%BE%D0%B3%D0%BE" class="hash-link" aria-label="Прямая ссылка на 👥 Для кого?" title="Прямая ссылка на 👥 Для кого?" translate="no">​</a></h2>
<ol>
<li class=""><strong>Разработчикам</strong> — для упрощения настройки окружений и сокращения "магических" значений в коде.</li>
<li class=""><strong>DevOps-инженерам</strong> — для централизации и автоматизации конфигураций.</li>
<li class=""><strong>Командам</strong> — для безопасного и контролируемого совместного доступа к конфиденциальным данным.</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-ключевые-возможности">🎯 Ключевые возможности<a href="https://tuna.am/blog/secrets/#-%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%B2%D1%8B%D0%B5-%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B8" class="hash-link" aria-label="Прямая ссылка на 🎯 Ключевые возможности" title="Прямая ссылка на 🎯 Ключевые возможности" translate="no">​</a></h2>
<p>Мы внедрили структуру, позволяющую эффективно управлять секретами.<br>
<!-- -->В этом ролике вы увидите небольшой обзор возможностей:</p>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">VK Видео</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">YouTube</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><iframe src="https://vkvideo.ru/video_ext.php?oid=-230240053&amp;id=456239017&amp;hd=1&amp;autoplay=0" width="640" height="360" allow="autoplay; encrypted-media; fullscreen; picture-in-picture; screen-wake-lock;" frameborder="0"></iframe></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div style="width:640px;height:360px"></div></div></div></div>
<hr>
<p>Иерархия: проекты → окружения → конфигурации.</p>
<p>Мы придерживаемся общепринятой структуры, поэтому хранение секретов разделяется по проектам, внутри проектов есть окружения, а внутри окружений конфигурации основные или дочерние. Внутри конфигураций сосредоточенно множество функций работы непосредственно с секретами и доступом к ним, аудит и прочее. При работе в <a class="" href="https://tuna.am/docs/team/">Команде</a>, в разделе с ролями появляется возможность гранулярно распределять доступ участников к нужным окружениям в проектах.</p>
<p>Что ещё есть в секретах?</p>
<ul>
<li class=""><strong>Дублирование конфигураций</strong> - создавайте уникальные конфигурации для каждого пользователя.</li>
<li class=""><strong>Типы переменных</strong> — можно указать тип bool, int и др.</li>
<li class=""><strong>Генератор и комментарии</strong> — удобное добавление и аннотация секретов.</li>
<li class=""><strong>Напоминания</strong> — email-уведомления о необходимости обновить секрет.</li>
<li class=""><strong>Сравнение окружений</strong> — находите различия между конфигурациями.</li>
<li class=""><strong>Скрытие секретов</strong> — исключите из сравнения уникальные прод-переменные.</li>
<li class=""><strong>Сервисные ключи</strong> — API-ключи на чтение/запись для конкретной конфигурации.</li>
<li class=""><strong>Ограничение по IP</strong> — контроль доступа по CIDR.</li>
<li class=""><strong>История изменений</strong> — полный аудит всех действий.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="️-cli-интеграция">⚙️ CLI-интеграция<a href="https://tuna.am/blog/secrets/#%EF%B8%8F-cli-%D0%B8%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F" class="hash-link" aria-label="Прямая ссылка на ⚙️ CLI-интеграция" title="Прямая ссылка на ⚙️ CLI-интеграция" translate="no">​</a></h2>
<p>Естественно консольный клиент <strong>tuna</strong> полностью <a class="" href="https://tuna.am/docs/secrets/cli/">интегрирован</a>:</p>
<ul>
<li class=""><code>tuna secrets download</code> — Получение секретов с возможностью сохранения в файл (<code>json</code>, <code>yaml</code>, <code>env</code>) или вывода в <em>stdout</em>.</li>
<li class=""><code>tuna secrets setup</code> — Настройка каталога для конфигурации области действия.</li>
<li class=""><code>tuna secrets run</code> — Автоматическая конфигурация приложения с передачей переменных окружения непосредственно процессу. А с указанием флага <code>--watch</code>,  перезапуск приложения будет автоматический, при изменении секрета в личном кабинете.</li>
</ul>
<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">VK Видео</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">YouTube</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><iframe src="https://vkvideo.ru/video_ext.php?oid=-230240053&amp;id=456239018&amp;hd=2&amp;autoplay=0" width="640" height="360" allow="autoplay; encrypted-media; fullscreen; picture-in-picture; screen-wake-lock;" frameborder="0"></iframe></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div style="width:640px;height:360px"></div></div></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="️-управление-доступом-и-безопасность">🛡️ Управление доступом и безопасность<a href="https://tuna.am/blog/secrets/#%EF%B8%8F-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BE%D0%BC-%D0%B8-%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="hash-link" aria-label="Прямая ссылка на 🛡️ Управление доступом и безопасность" title="Прямая ссылка на 🛡️ Управление доступом и безопасность" translate="no">​</a></h2>
<ul>
<li class=""><strong>RBAC в команде</strong> —  Предоставляйте доступ к окружениям точечно по пользователям.</li>
<li class=""><strong>Сервисные ключи</strong> — Выпускайте уникальные ключи для конкретных конфигураций с ограничением на <em>чтение</em> или <em>чтение и запись</em>. Идеально подходит для использования в CI/CD.</li>
<li class=""><strong>Разрешенные IP адреса и подсети</strong> — Ограничивайте доступ к секретам, указывая разрешенные IP адреса и подсети в формате CIDR.</li>
<li class=""><strong>История изменений</strong> — Полный аудит всех действий и изменений внутри конфигураций позволяет отслеживать, кто и когда изменил секреты.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/secrets/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отзыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/secrets/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="release" term="release"/>
        <category label="tuna" term="tuna"/>
        <category label="cli" term="cli"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🆕 Новые типы туннелей - Postgres и Redis]]></title>
        <id>https://tuna.am/blog/tunnels-pg-and-redis/</id>
        <link href="https://tuna.am/blog/tunnels-pg-and-redis/"/>
        <updated>2025-04-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Новые туннели Postgres и Redis, теперь с поддержкой инспекции запросов]]></summary>
        <content type="html"><![CDATA[<p>Мы расширяем возможности <a class="" href="https://tuna.am/docs/tunnels/">Туннелей</a> и добавили новые типы - <a class="" href="https://tuna.am/docs/tunnels/postgres/">Postgres</a> и <a class="" href="https://tuna.am/docs/tunnels/redis/">Redis</a>, теперь с поддержкой инспекции запросов!</p>
<p>Ранее для предоставления доступа к любым базам данных нужно было открывать доступ с помощью <a class="" href="https://tuna.am/docs/tunnels/tcp/">TCP туннеля</a>, но теперь для <strong>Postgres</strong> и <strong>Redis</strong> мы добавили возможность запускать специализированный тип туннеля. При этом появляется аудит и инспекция запросов которые вы отправляете в базу.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-postgres"><i class="devicon-postgresql-plain colored"></i> Postgres<a href="https://tuna.am/blog/tunnels-pg-and-redis/#-postgres" class="hash-link" aria-label="Прямая ссылка на -postgres" title="Прямая ссылка на -postgres" translate="no">​</a></h2>
<p><a class="" href="https://tuna.am/docs/tunnels/postgres/">Postgres туннель</a> позволяет предоставить доступ к базе данных PostgreSQL и отслеживать выполняемые SQL запросы в инспекторе.</p>
<div id="cast-/docs/cast/tuna_postgres.cast" class="asciinema-player"></div>
<hr>
<p>Слева отображается список сессий, а справа вывод команд, которые были выполнены внутри сессий.</p>
<img src="https://tuna.am/docs/img/inspect/web_postgres.webp" alt="web_postgres">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-redis"><i class="devicon-redis-plain colored"></i> Redis<a href="https://tuna.am/blog/tunnels-pg-and-redis/#-redis" class="hash-link" aria-label="Прямая ссылка на -redis" title="Прямая ссылка на -redis" translate="no">​</a></h2>
<p><a class="" href="https://tuna.am/docs/tunnels/redis/">Redis туннель</a> аналогично позволяет предоставить доступ к базе данных Redis и отслеживать выполняемые запросы в инспекторе.</p>
<div id="cast-/docs/cast/tuna_redis.cast" class="asciinema-player"></div>
<hr>
<p>Слева отображается список сессий, а справа вывод команд, которые были выполнены внутри сессий.</p>
<img src="https://tuna.am/docs/img/inspect/web_redis.webp" alt="web_redis">
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/tunnels-pg-and-redis/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отзыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/tunnels-pg-and-redis/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="release" term="release"/>
        <category label="tuna" term="tuna"/>
        <category label="cli" term="cli"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Плановые работы 16.04.2025 в регионе RU (Россия)]]></title>
        <id>https://tuna.am/blog/maintain-ru/</id>
        <link href="https://tuna.am/blog/maintain-ru/"/>
        <updated>2025-04-14T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Плановые работы 16.04.2025 в регионе RU (Россия), ожидается недоступность от 10 до 60 минут в промежутке с 11 до 13 часов МСК.]]></summary>
        <content type="html"><![CDATA[<p>⚠️ Внимание! Плановые работы 🛠️ <strong>16.04.2025</strong> запланированы в регионе <strong>RU (Россия)</strong>, ожидается недоступность от 10 до 60 минут в промежутке с 11 до 13 часов МСК.</p>
<p>Будет произведена смена IP адресов и переезд к новому провайдеру.</p>
<ul>
<li class=""><code>178.20.41.29</code> &gt; <code>37.252.22.27</code></li>
<li class=""><code>178.20.43.146</code> &gt; <code>37.252.21.90</code></li>
</ul>
<p>Старый IP на адресе <code>178.20.41.29</code> продолжит работать, для обратной совместимости с пользовательскими доменами, что используют в dns А запись.
По завершении работ мы объявим о дате полного отключения старого адреса, а всех владельцев пользовательскими доменов дополнительно уведомим о необходимости изменить DNS запись после проведения работ.</p>
<p>Работы необходимо провести в рамках модернизации инфраструктуры и повышения стабильности.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/maintain-ru/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отзыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/maintain-ru/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="maintain" term="maintain"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Плановые работы 14.04.2025 в регионе NL (Нидерланы)]]></title>
        <id>https://tuna.am/blog/maintain-nl/</id>
        <link href="https://tuna.am/blog/maintain-nl/"/>
        <updated>2025-04-11T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Плановые работы 14.04.2025 в регионе NL (Нидерланы), ожидается недоступность от 1 до 12 часов в течении дня.]]></summary>
        <content type="html"><![CDATA[<p>⚠️ Внимание! Плановые работы 🛠️ <strong>14.04.2025</strong> запланированы в регионе <strong>NL (Нидерланы)</strong>, ожидается недоступность от 1 до 12 часов в течении дня.</p>
<p>Будет произведена смена IP адресов и переезд к новому провайдеру.</p>
<ul>
<li class=""><code>193.33.194.47</code> &gt; <code>89.19.217.251</code></li>
<li class=""><code>62.84.101.212</code> &gt; <code>147.45.238.190</code></li>
</ul>
<p>Старый IP на адресе <code>193.33.194.47</code> продолжит работать, для обратной совместимости с пользовательскими доменами, что используют в dns А запись.
По завершении работ мы объявим о дате полного отключения старого адреса, а всех владельцев пользовательскими доменов дополнительно уведомим о необходимости изменить DNS запись после проведения работ.</p>
<p>Работы необходимо провести в рамках модернизации инфраструктуры и повышения стабильности.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/maintain-nl/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отзыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/maintain-nl/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="maintain" term="maintain"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Обновление клиента tuna 0.23.0 и инспектор 1.1.0]]></title>
        <id>https://tuna.am/blog/inspector-live-updates/</id>
        <link href="https://tuna.am/blog/inspector-live-updates/"/>
        <updated>2025-04-03T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Обновление добавляет живое обновление списка запросов]]></summary>
        <content type="html"><![CDATA[<p>В этом обновлении tuna 0.23.0 и инспектора 1.1.0 добавлено живое обновление списка запросов.</p>
<p><a class="" href="https://tuna.am/docs/tunnels/http/inspect/"><img decoding="async" loading="lazy" alt="inspector-live-updates" src="https://tuna.am/assets/images/inspector-live-updates-b0bdc265f57916db1473f642f39ef087.webp" width="1511" height="893" class="img_ev3q"></a></p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="оставьте-отзыв">Оставьте отзыв<a href="https://tuna.am/blog/inspector-live-updates/#%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%8C%D1%82%D0%B5-%D0%BE%D1%82%D0%B7%D1%8B%D0%B2" class="hash-link" aria-label="Прямая ссылка на Оставьте отзыв" title="Прямая ссылка на Оставьте отзыв" translate="no">​</a></h2>
<p>Если вам нравится пользоваться Tuna, или наоборот вы недовольны чем либо, то пожалуйста <a href="https://my.tuna.am/?show_feedback=1" target="_blank" rel="noopener noreferrer" class="">оставьте отзыв</a>.</p>
<img src="https://tuna.am/blog/img/2024-08-22/feedback.gif" style="width:50%;height:auto">
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="помощь">Помощь<a href="https://tuna.am/blog/inspector-live-updates/#%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C" class="hash-link" aria-label="Прямая ссылка на Помощь" title="Прямая ссылка на Помощь" translate="no">​</a></h2>
<p>Мы ценим наших пользователей и детально изучаем все обращения, если у вас возникли проблемы с tuna – обязательно свяжитесь с нами одним из способов:</p>
<ul>
<li class=""><a href="mailto:info@tuna.am" target="_blank" rel="noopener noreferrer" class="">Электронная почта</a></li>
<li class=""><a href="https://telegram.me/+Kgbtt0_gJwI5ZmEy" target="_blank" rel="noopener noreferrer" class="">Telegram сообщество</a></li>
</ul>]]></content>
        <category label="release" term="release"/>
        <category label="tuna" term="tuna"/>
        <category label="cli" term="cli"/>
    </entry>
</feed>