docs: обновление README.md и добавление англоязычной версии README.en.md

This commit is contained in:
Dushnilin
2026-07-30 10:01:42 +03:00
parent bd4c686479
commit 2bbc041686
3 changed files with 319 additions and 41 deletions
+96
View File
@@ -0,0 +1,96 @@
<div align="center">
![Tachyon Banner](assets/readme/hero.svg)
[![Stars](https://img.shields.io/github/stars/Dushnilin/tachyon?style=for-the-badge&color=38BDF8)](https://github.com/Dushnilin/tachyon/stargazers)
[![Releases](https://img.shields.io/github/v/release/Dushnilin/tachyon?style=for-the-badge&color=818CF8)](https://github.com/Dushnilin/tachyon/releases)
[![OpenWrt](https://img.shields.io/badge/OpenWrt-23.05%20%7C%2024.10%20%7C%20SNAPSHOT-10B981?style=for-the-badge&logo=openwrt)](https://openwrt.org/)
[![License](https://img.shields.io/github/license/Dushnilin/tachyon?style=for-the-badge&color=C084FC)](LICENSE)
[**🇷🇺 Русский**](README.md) | [**🇬🇧 English**](README.en.md)
</div>
---
## ⚡ About Tachyon
**Tachyon** is an advanced fork of **Forkop** (formerly **Podkop Plus**). The project has evolved into an independent, high-performance network routing engine and DPI bypass framework designed specifically for **OpenWrt**.
Building upon the solid engineering foundations of the original [Podkop by @itdoginfo](https://github.com/itdoginfo/podkop), Tachyon introduces enterprise-grade resilience, multi-protocol routing, and dynamic system self-healing.
The core backend of Tachyon is written in **ucode** — OpenWrt's native, lightweight scripting language — delivering blazingly fast execution with minimal RAM footprint on embedded hardware.
---
## 🔥 Key Features
### 🛡️ Multi-Protocol Proxying & Local DPI Bypass
* **sing-box Integration**: Native support for modern proxy protocols including **VLESS**, **VMess**, **Shadowsocks**, **Trojan**, and **WireGuard**.
* **Local DPI Bypass (zapret2 / ByeDPI)**: Built-in integration with `zapret2` (`nfqws2`) and `ByeDPI` for on-device Deep Packet Inspection bypass without relying on remote servers.
* **Granular Selective Routing**: Custom rules based on domain names, IP CIDR blocks, and ports. Route only target traffic through proxy or DPI desync engines.
* **Automated Subscription Updates**: Background fetching and parsing of remote proxy subscription links.
### 🤖 Interactive Telegram Control Bot
A feature-rich control center right inside your messenger:
* **Live Rule Management**: View active routing lists and instantly add new domains or IP subnets on the fly.
* **Instant Toggle**: Enable or disable routing sections with a single button.
* **Server Selection & Latency**: Switch active proxy nodes with live RTT ping measurements.
* **Device Access Control**: View active DHCP clients and block/unblock internet access by MAC address.
* **Network Diagnostics**: Trigger connection tests directly from Telegram.
### 🩺 System Self-Healing — Tachyon Doctor
An intelligent diagnostic and repair engine available via CLI (`tachyon doctor`) or WebUI:
* Scans all core services (`sing-box`, `zapret2`, `byedpi`, `dnsmasq`, `watchdog`).
* Validates `nftables` chains and local DNS resolution health.
* **Auto-Repair**: Automatically rebuilds broken firewall rules and restarts crashed services without requiring a full router reboot.
### ⚡ Reliability, Hot-reload & Watchdog
* **Seamless Hot-Reload**: Rule updates and server switches apply softly without dropping active TCP connections (Discord calls, VoIP, and downloads remain uninterrupted).
* **OOM Watchdog & Memory Tuning**: Continuous RAM health monitoring. Dynamically adjusts process limits (`GOMEMLIMIT`) under memory pressure and sends Telegram alerts.
* **MSS Clamping (MTU Fix)**: Automated resolution of MTU fragmentation and frozen TCP handshakes over tunnel interfaces.
### 🖥️ Modern Web Interface (LuCI)
* Native integration into OpenWrt's LuCI dashboard.
* Real-time latency tracking, subscription manager, rule editor, and service controls.
---
## 💻 Installation
Run the following single command in your router's SSH terminal:
```bash
sh <(wget -O - https://raw.githubusercontent.com/Dushnilin/tachyon/main/install.sh)
```
> [!NOTE]
> **Automatic Migration:** Existing configurations from **Forkop**, **Podkop Plus**, or original **Podkop** are fully compatible. The installer will automatically migrate your settings to `/etc/config/tachyon`.
---
## 🤝 Upstream Projects & Credits
Tachyon stands on the shoulders of incredible open-source projects:
* 🐕 **[Podkop (itdoginfo)](https://github.com/itdoginfo/podkop)** — The original project that inspired our architecture.
* 📦 **[sing-box](https://github.com/SagerNet/sing-box)** — Universal proxy engine.
* 🚀 **[zapret2](https://github.com/bol-van/zapret2)** & **[zapret2-mcp](https://github.com/rcd27/zapret2-mcp)** — DPI desync framework and knowledge base.
* 🌐 **[ByeDPI](https://github.com/hrbrmstr/byedpi)** — Local SOCKS desync proxy.
---
## 💖 Support & Donations
If Tachyon powers your daily networking and helps keep your connection fast and secure, consider supporting ongoing development! ☕ 🧀 🌭
💳 **Credit Cards / SBP / Tinkoff Pay:**
👉 [**Support the project via CloudTips**](https://pay.cloudtips.ru/p/48c57581)
---
<div align="center">
Made with ❤️ for OpenWrt Community
</div>
+72 -41
View File
@@ -1,65 +1,96 @@
# Tachyon
<div align="center">
[![Star](https://img.shields.io/github/stars/Dushnilin/tachyon?style=social)](https://github.com/Dushnilin/tachyon/stargazers)
[![Releases](https://img.shields.io/github/v/release/Dushnilin/tachyon?label=releases)](https://github.com/Dushnilin/tachyon/releases)
![Tachyon Banner](assets/readme/hero.svg)
> **Tachyon** — это форк проекта **Forkop** (ранее известного как **Podkop Plus**). Проект переименован и развивается как независимое, современное решение для OpenWrt. Мы сохранили всё лучшее из оригинального [Podkop](https://github.com/itdoginfo/podkop), из которого вырос наш код, и превратили его в мощный, надежный и удобный "комбайн" для управления сетью.
[![Stars](https://img.shields.io/github/stars/Dushnilin/tachyon?style=for-the-badge&color=38BDF8)](https://github.com/Dushnilin/tachyon/stargazers)
[![Releases](https://img.shields.io/github/v/release/Dushnilin/tachyon?style=for-the-badge&color=818CF8)](https://github.com/Dushnilin/tachyon/releases)
[![OpenWrt](https://img.shields.io/badge/OpenWrt-23.05%20%7C%2024.10%20%7C%20SNAPSHOT-10B981?style=for-the-badge&logo=openwrt)](https://openwrt.org/)
[![License](https://img.shields.io/github/license/Dushnilin/tachyon?style=for-the-badge&color=C084FC)](LICENSE)
Tachyon предоставляет мощный инструментарий для гибкой маршрутизации сетевого трафика (через прокси-серверы, средства обхода блокировок или напрямую) на основе доменов, IP-адресов и портов. Вся логика бэкенда написана на легковесном скриптовом языке **ucode**, который является родным для OpenWrt.
[**🇷🇺 Русский**](README.md) | [**🇬🇧 English**](README.en.md)
</div>
---
### Что умеет Tachyon?
## ⚡ О проекте
Tachyon значительно расширяет возможности классических решений и делает управление обходом блокировок автоматизированным, отказоустойчивым и очень удобным.
**Tachyon** — это форк проекта **Forkop** (ранее известного как **Podkop Plus**). Проект переименован и развивается как независимое, продвинутое и современное решение для роутеров под управлением **OpenWrt**.
#### 🛡 Обход блокировок и проксирование (Мульти-протоколы)
* **sing-box**: Поддержка современных протоколов (VLESS, VMess, Shadowsocks, Trojan, WireGuard) для проксирования трафика.
* **Интеграция с Zapret (nfqws / nfqws2)** и **ByeDPI**: Встроенные средства для локального обхода DPI (глубокого анализа пакетов) без использования сторонних серверов.
* **Умная маршрутизация**: Настраивайте правила (домены, IP, порты), чтобы пускать через прокси или средства обхода только то, что нужно.
* **Поддержка подписок**: Автоматическое фоновое обновление прокси-серверов по вашим ссылкам.
Мы сохранили лучшие инженерные идеи оригинального проекта [Podkop от @itdoginfo](https://github.com/itdoginfo/podkop), расширили архитектурный фундамент и превратили его в универсальный высокопроизводительный комбайн для управления сетевым трафиком, проксирования и обхода блокировок.
#### 🤖 Интерактивный Telegram-бот
Бот в Tachyon — это полноценный пульт управления вашим роутером прямо из мессенджера:
* **Управление списками «на лету»**: Просматривайте правила обхода и добавляйте в них новые домены/IP (даже целым списком). Бот сам всё применит.
* **Быстрое переключение**: Включайте и отключайте любые секции маршрутизации одной кнопкой.
* **Переключение серверов**: Выбирайте активный прокси-сервер (бот покажет текущие задержки).
* **Контроль устройств**: Просматривайте активных DHCP-клиентов и блокируйте/разблокируйте им интернет (по MAC-адресу) в один клик.
* **Диагностика**: Запускайте проверку сети прямо из чата.
#### 🩺 Инструмент автоматического ремонта — Tachyon Doctor
В систему встроена мощная система диагностики (доступна через `tachyon doctor` или из Web-интерфейса):
* Сканирует статус служб (`sing-box`, `zapret`, `byedpi`, `dnsmasq`, `watchdog`).
* Проверяет правила `nftables` и корректность DNS-запросов через `localhost`.
* При обнаружении проблем утилита **автоматически исправляет их** (перезапускает службы, чинит правила файрвола) без полной перезагрузки роутера.
#### ⚡ Надежность, Hot-reload и Watchdog
* **Горячая перезагрузка (Hot-reload)**: При обновлении правил или переключении серверов Tachyon использует мягкое обновление конфигурации. Ваши текущие загрузки и звонки в интернете не прервутся!
* **Watchdog и защита от нехватки памяти**: Фоновый процесс постоянно следит за здоровьем системы. Если роутеру не хватает памяти (OOM), система оптимизирует лимиты и пришлет оповещение в Telegram.
* **Корректный MTU Fix (MSS Clamping)**: Автоматическое решение проблем с зависанием TCP-соединений на VPN-интерфейсах.
#### 🖥 Современный Web-интерфейс (LuCI)
* Полноценная интеграция в графический интерфейс OpenWrt.
* Удобный дашборд с мониторингом задержек, управлением подписками, компонентами системы и правилами в несколько кликов.
Вся бэкенд-логика Tachyon написана на скриптовом языке **ucode** — нативном, сверхбыстром и экономичном движке OpenWrt, что обеспечивает минимальное потребление оперативной памяти и ресурсов процессора на любых роутерах.
---
### Установка
## 🔥 Ключевые возможности
Выполните команду в терминале вашего роутера:
### 🛡️ Мультипротокольное проксирование и локальный обход DPI
* **sing-box Engine**: Полная поддержка современных защищенных протоколов — **VLESS**, **VMess**, **Shadowsocks**, **Trojan**, **WireGuard**.
* **Локальный обход DPI (zapret2 / ByeDPI)**: Встроенная интеграция с `zapret2` (`nfqws2`) и `ByeDPI` для обхода глубокого анализа пакетов (DPI) непосредственно на роутере без необходимости использовать внешние прокси-серверы.
* **Гибкая селективная маршрутизация**: Разделение трафика по доменам, IP-сетям и портам. Направляйте через прокси или средства обхода только нужные сервисы.
* **Автоматические подписки**: Синхронизация и фоновое обновление прокси-серверов по вашим подписочным ссылкам.
```sh
### 🤖 Интерактивный Telegram-бот управления
Полноценный пульт дистанционного управления роутером прямо из мессенджера:
* **Управление правилами «на лету»**: Просмотр списков обхода и моментальное добавление новых доменов или IP-сетей (включая пакетное добавление).
* **Мгновенный контроль секций**: Включение и отключение любых маршрутов одной кнопкой.
* **Выбор серверов и задержки**: Переключение активных прокси-нод с автоматическим замером задержки (ping/RTT).
* **Управление устройствами LAN**: Просмотр активных DHCP-клиентов и блокировка/разблокировка доступа в интернет по MAC-адресам.
* **Диагностика сети**: Запуск тестов доступности прямо из чата.
### 🩺 Системный авторемонт — Tachyon Doctor
Встроенный модуль интеллектуальной диагностики и самовосстановления (`tachyon doctor` или из WebUI):
* Сканирование состояния всех ключевых служб (`sing-box`, `zapret2`, `byedpi`, `dnsmasq`, `watchdog`).
* Валидация правил файрвола `nftables` и проверка резолвинга DNS через `localhost`.
* **Автоматическое исправление**: Самостоятельно устраняет сбои (пересоздает цепочки `nftables`, перезапускает упавшие сервисы) без полной перезагрузки устройства.
### ⚡ Надежность, Hot-reload & Watchdog
* **Мягкая перезагрузка (Hot-Reload)**: Обновление правил и переключение серверов происходят без обрыва активных соединений (ваши звонки в Discord, Telegram или загрузки файлов не прервутся).
* **OOM Watchdog & Оптимизация памяти**: Непрерывный мониторинг использования RAM. При нехватке памяти система автоматически регулирует лимиты (`GOMEMLIMIT`) и отправляет уведомление в Telegram.
* **MSS Clamping (MTU Fix)**: Автоматическое решение проблем с "зависанием" TCP-пакетов и веб-страниц на туннельных интерфейсах.
### 🖥️ Современный Web-интерфейс (LuCI)
* Полная интеграция в стандартную панель управления OpenWrt.
* Наглядный дашборд: мониторинг задержек, управление подписками, списками правил и компонентами в несколько кликов.
---
## 💻 Установка
Для установки Tachyon выполните следующую команду в консоли (SSH) вашего роутера:
```bash
sh <(wget -O - https://raw.githubusercontent.com/Dushnilin/tachyon/main/install.sh)
```
> [!NOTE]
> Конфигурация от **Forkop** (или **Podkop Plus / Podkop**) полностью совместима. Во время установки скрипт автоматически перенесёт все ваши настройки в новый конфигурационный файл `/etc/config/tachyon`!
> **Автоматическая миграция:** Конфигурации от **Forkop**, **Podkop Plus** и оригинального **Podkop** полностью совместимы. Скрипт установки автоматически перенесет ваши правила и настройки в `/etc/config/tachyon` без потери данных.
---
### Поддержать проект
## 🤝 Оригинальные проекты и благодарности
Если вам нравится Tachyon и он оказался полезен, вы можете поддержать разработку проекта — на вдохновение, сыр и колбасу! 🧀 🌭 ☕
Tachyon развивается благодаря сообществу и опирается на фундаментальные разработки:
* 🐕 **[Podkop (itdoginfo)](https://github.com/itdoginfo/podkop)** — оригинальный проект, заложивший основу архитектуры.
* 📦 **[sing-box](https://github.com/SagerNet/sing-box)** — универсальный прокси-платформа.
* 🚀 **[zapret2](https://github.com/bol-van/zapret2)** & **[zapret2-mcp](https://github.com/rcd27/zapret2-mcp)** — средства локального обхода DPI и база знаний.
* 🌐 **[ByeDPI](https://github.com/hrbrmstr/byedpi)** — локальный SOCKS-прокси для десинка пакетов.
---
## 💖 Поддержать разработку
Если Tachyon помогает вам и делает работу в сети комфортной, вы можете поддержать проект и автора — на кофе, серверы и вдохновение! ☕ 🧀 🌭
💳 **Карты РФ / СБП / Tinkoff Pay:**
👉 [Донат на CloudTips](https://pay.cloudtips.ru/p/48c57581)
👉 [**Поддержать проект на CloudTips**](https://pay.cloudtips.ru/p/48c57581)
---
<div align="center">
Made with ❤️ for OpenWrt Community
</div>
+151
View File
@@ -0,0 +1,151 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 420" width="100%" height="100%">
<defs>
<!-- Background Gradients -->
<radialGradient id="bg-glow" cx="50%" cy="30%" r="70%">
<stop offset="0%" stop-color="#1E1B4B" stop-opacity="0.8"/>
<stop offset="50%" stop-color="#0F172A" stop-opacity="0.95"/>
<stop offset="100%" stop-color="#020617" stop-opacity="1"/>
</radialGradient>
<radialGradient id="accent-cyan" cx="20%" cy="20%" r="50%">
<stop offset="0%" stop-color="#38BDF8" stop-opacity="0.25"/>
<stop offset="100%" stop-color="#020617" stop-opacity="0"/>
</radialGradient>
<radialGradient id="accent-violet" cx="80%" cy="80%" r="50%">
<stop offset="0%" stop-color="#818CF8" stop-opacity="0.2"/>
<stop offset="100%" stop-color="#020617" stop-opacity="0"/>
</radialGradient>
<!-- Linear Gradients -->
<linearGradient id="brand-grad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#38BDF8"/>
<stop offset="50%" stop-color="#818CF8"/>
<stop offset="100%" stop-color="#C084FC"/>
</linearGradient>
<linearGradient id="card-border" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#334155" stop-opacity="0.8"/>
<stop offset="100%" stop-color="#1E293B" stop-opacity="0.3"/>
</linearGradient>
<linearGradient id="card-bg" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#1E293B" stop-opacity="0.7"/>
<stop offset="100%" stop-color="#0F172A" stop-opacity="0.8"/>
</linearGradient>
<!-- Glow Filter -->
<filter id="glow" x="-20%" y="-20%" width="140%" height="140%">
<feGaussianBlur stdDeviation="8" result="blur" />
<feComposite in="SourceGraphic" in2="blur" operator="over" />
</filter>
</defs>
<style>
.title { font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, sans-serif; font-weight: 800; font-size: 64px; fill: url(#brand-grad); letter-spacing: -1px; }
.subtitle { font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, sans-serif; font-weight: 500; font-size: 20px; fill: #94A3B8; }
.badge-text { font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, sans-serif; font-weight: 600; font-size: 13px; fill: #F8FAFC; }
.card-title { font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, sans-serif; font-weight: 700; font-size: 15px; fill: #F1F5F9; }
.card-desc { font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, sans-serif; font-weight: 400; font-size: 13px; fill: #94A3B8; }
.tech-pill { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 12px; fill: #38BDF8; font-weight: 600; }
</style>
<!-- Base Canvas -->
<rect width="1200" height="420" rx="16" fill="url(#bg-glow)"/>
<rect width="1200" height="420" rx="16" fill="url(#accent-cyan)"/>
<rect width="1200" height="420" rx="16" fill="url(#accent-violet)"/>
<!-- Subtle Tech Grid Pattern -->
<g opacity="0.08" stroke="#FFFFFF" stroke-width="1">
<path d="M 0,60 L 1200,60 M 0,120 L 1200,120 M 0,180 L 1200,180 M 0,240 L 1200,240 M 0,300 L 1200,300 M 0,360 L 1200,360" />
<path d="M 150,0 L 150,420 M 300,0 L 300,420 M 450,0 L 450,420 M 600,0 L 600,420 M 750,0 L 750,420 M 900,0 L 900,420 M 1050,0 L 1050,420" />
</g>
<!-- Decorative Orbit Vector -->
<g transform="translate(980, 190)" opacity="0.35">
<circle r="140" fill="none" stroke="url(#brand-grad)" stroke-width="1.5" stroke-dasharray="8 6"/>
<circle r="100" fill="none" stroke="#38BDF8" stroke-width="1" stroke-dasharray="4 4"/>
<circle r="60" fill="none" stroke="#818CF8" stroke-width="2"/>
<circle cx="60" cy="0" r="6" fill="#38BDF8" filter="url(#glow)"/>
<circle cx="-42" cy="42" r="4" fill="#C084FC" />
</g>
<!-- Header Section -->
<g transform="translate(60, 65)">
<!-- Version Tag -->
<rect x="0" y="0" width="130" height="28" rx="14" fill="#1E293B" stroke="#38BDF8" stroke-opacity="0.4" stroke-width="1"/>
<circle cx="16" cy="14" r="4" fill="#10B981"/>
<text x="28" y="19" class="badge-text" fill="#38BDF8">v1.2.46 RELEASE</text>
<!-- Main Title -->
<text x="0" y="82" class="title">TACHYON</text>
<text x="0" y="118" class="subtitle">Next-Gen High-Performance Routing &amp; DPI Bypass Engine for OpenWrt</text>
<text x="0" y="142" class="card-desc" fill="#64748B">Полнофункциональный мультипротокольный комбайн маршрутизации и обхода блокировок</text>
<!-- Tech Badges -->
<g transform="translate(0, 168)">
<!-- Badge 1: ucode Core -->
<rect x="0" y="0" width="125" height="26" rx="6" fill="#0F172A" stroke="#334155" stroke-width="1"/>
<text x="10" y="17" class="tech-pill">⚡ ucode Core</text>
<!-- Badge 2: sing-box -->
<rect x="135" y="0" width="115" height="26" rx="6" fill="#0F172A" stroke="#334155" stroke-width="1"/>
<text x="145" y="17" class="tech-pill">🛡 sing-box</text>
<!-- Badge 3: zapret2 -->
<rect x="260" y="0" width="110" height="26" rx="6" fill="#0F172A" stroke="#334155" stroke-width="1"/>
<text x="270" y="17" class="tech-pill">🚀 zapret2</text>
<!-- Badge 4: ByeDPI -->
<rect x="380" y="0" width="105" height="26" rx="6" fill="#0F172A" stroke="#334155" stroke-width="1"/>
<text x="390" y="17" class="tech-pill">🌐 ByeDPI</text>
<!-- Badge 5: Telegram Bot -->
<rect x="495" y="0" width="145" height="26" rx="6" fill="#0F172A" stroke="#334155" stroke-width="1"/>
<text x="505" y="17" class="tech-pill">🤖 Telegram Bot</text>
</g>
</g>
<!-- Feature Cards Grid (Bottom) -->
<g transform="translate(60, 275)">
<!-- Card 1: Multi-Protocol -->
<g transform="translate(0, 0)">
<rect width="250" height="105" rx="12" fill="url(#card-bg)" stroke="url(#card-border)" stroke-width="1"/>
<circle cx="28" cy="30" r="14" fill="#38BDF8" fill-opacity="0.15"/>
<path d="M 22 30 L 27 35 L 35 24" fill="none" stroke="#38BDF8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<text x="52" y="34" class="card-title">Мульти-Протоколы</text>
<text x="16" y="62" class="card-desc">VLESS, VMess, Shadowsocks,</text>
<text x="16" y="80" class="card-desc">Trojan, WireGuard &amp; Zapret2</text>
</g>
<!-- Card 2: Telegram Control -->
<g transform="translate(270, 0)">
<rect width="250" height="105" rx="12" fill="url(#card-bg)" stroke="url(#card-border)" stroke-width="1"/>
<circle cx="28" cy="30" r="14" fill="#818CF8" fill-opacity="0.15"/>
<path d="M 22 30 L 34 24 L 29 36 L 26 31 Z" fill="none" stroke="#818CF8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<text x="52" y="34" class="card-title">Telegram Управление</text>
<text x="16" y="62" class="card-desc">Списки правил, переключение</text>
<text x="16" y="80" class="card-desc">серверов &amp; блокировка MAC</text>
</g>
<!-- Card 3: Tachyon Doctor -->
<g transform="translate(540, 0)">
<rect width="250" height="105" rx="12" fill="url(#card-bg)" stroke="url(#card-border)" stroke-width="1"/>
<circle cx="28" cy="30" r="14" fill="#10B981" fill-opacity="0.15"/>
<path d="M 28 22 L 28 38 M 20 30 L 36 30" fill="none" stroke="#10B981" stroke-width="2" stroke-linecap="round"/>
<text x="52" y="34" class="card-title">Tachyon Doctor</text>
<text x="16" y="62" class="card-desc">Авторемонт служб, DNS,</text>
<text x="16" y="80" class="card-desc">nftables &amp; проверка сети</text>
</g>
<!-- Card 4: Hot-reload & Watchdog -->
<g transform="translate(810, 0)">
<rect width="270" height="105" rx="12" fill="url(#card-bg)" stroke="url(#card-border)" stroke-width="1"/>
<circle cx="28" cy="30" r="14" fill="#C084FC" fill-opacity="0.15"/>
<path d="M 22 26 L 34 26 L 34 38 M 34 34 L 22 34" fill="none" stroke="#C084FC" stroke-width="2" stroke-linecap="round"/>
<text x="52" y="34" class="card-title">Hot-Reload &amp; OOM Watchdog</text>
<text x="16" y="62" class="card-desc">Обновление без обрыва звонков,</text>
<text x="16" y="80" class="card-desc">защита памяти &amp; MSS Clamping</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.3 KiB