Files
3X-UI_autoVPS/manuals/assets/banner.svg
T
Claude 0a19858efa 1.1: подписанное автообновление, kit backup и --restore, случайная заглушка
- kit update ставит только релизы, у которых SHA256SUMS подписан ключом автора
  (ssh-keygen -Y verify), версия внутри подписи совпадает, файлы сошлись с хешами;
  откат на старую версию запрещён; после обновления проверяется подписка, иначе возврат
- автообновление: systemd-таймер раз в сутки ночью со случайной задержкой,
  kit update --manual / --auto, журнал /var/log/kit-update.log
- hy2 update тоже проверяет подпись
- tools/release.sh: проверка версий и хеша установщика 3X-UI, SHA256SUMS и подпись
- kit backup и 3x-ui.sh --restore: архив 600, строгая проверка архива, конфиги nginx
  и kit-sub собираются заново, смена IP в подключениях
- сайт-заглушка: случайный из шести шаблонов внутри скрипта
- zashboard закреплён на v3.29.1, короткие тире и 192.168.x.x в текстах и картинках
- CI: ключ подписи одинаковый в kit и hy2, проверка подписи релиза
- CHANGELOG, README, инструкция, SECURITY.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7GrBSRPVXhrz3RAprWDnt
2026-09-30 19:15:19 +00:00

1 line
7.7 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="300" viewBox="0 0 1200 300" role="img" aria-label="3X-UI KIT – свой VPN-сервер: все протоколы, один порт, одна подписка"><title>3X-UI KIT – свой VPN-сервер: все протоколы, один порт, одна подписка</title><style>.s{font-family:Inter, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif}.m{font-family:'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}</style><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#0d1117"/><stop offset="1" stop-color="#0f2418"/></linearGradient><pattern id="p" width="28" height="28" patternUnits="userSpaceOnUse"><path d="M28 0H0V28" fill="none" stroke="#3fb95014"/></pattern></defs><rect width="1200" height="300" rx="20" fill="url(#g)"/><rect width="1200" height="300" rx="20" fill="url(#p)"/><g opacity="0.4"><text x="1045" y="97" class="m" font-size="12" fill="#3fb950" font-weight="400" text-anchor="start">ア</text></g><g opacity="0.4"><text x="917" y="68" class="m" font-size="12" fill="#3fb950" font-weight="400" text-anchor="start">コ</text></g><g opacity="0.15"><text x="1139" y="129" class="m" font-size="18" fill="#3fb950" font-weight="400" text-anchor="start">1</text></g><g opacity="0.15"><text x="1094" y="55" class="m" font-size="20" fill="#3fb950" font-weight="400" text-anchor="start">カ</text></g><g opacity="0.15"><text x="1097" y="50" class="m" font-size="15" fill="#3fb950" font-weight="400" text-anchor="start">{</text></g><g opacity="0.4"><text x="1178" y="51" class="m" font-size="18" fill="#3fb950" font-weight="400" text-anchor="start">{</text></g><g opacity="0.4"><text x="905" y="133" class="m" font-size="14" fill="#3fb950" font-weight="400" text-anchor="start">1</text></g><g opacity="0.4"><text x="1028" y="234" class="m" font-size="13" fill="#3fb950" font-weight="400" text-anchor="start">ウ</text></g><g opacity="0.4"><text x="1172" y="177" class="m" font-size="14" fill="#3fb950" font-weight="400" text-anchor="start">/</text></g><g opacity="0.15"><text x="932" y="116" class="m" font-size="20" fill="#3fb950" font-weight="400" text-anchor="start">コ</text></g><g opacity="0.15"><text x="912" y="50" class="m" font-size="19" fill="#3fb950" font-weight="400" text-anchor="start">}</text></g><g opacity="0.25"><text x="1152" y="238" class="m" font-size="21" fill="#3fb950" font-weight="400" text-anchor="start">ケ</text></g><g opacity="0.15"><text x="1112" y="205" class="m" font-size="14" fill="#3fb950" font-weight="400" text-anchor="start">ク</text></g><g opacity="0.25"><text x="1004" y="61" class="m" font-size="20" fill="#3fb950" font-weight="400" text-anchor="start">{</text></g><g opacity="0.25"><text x="1133" y="195" class="m" font-size="21" fill="#3fb950" font-weight="400" text-anchor="start">ウ</text></g><g opacity="0.25"><text x="917" y="80" class="m" font-size="14" fill="#3fb950" font-weight="400" text-anchor="start">&gt;</text></g><g opacity="0.25"><text x="1055" y="97" class="m" font-size="12" fill="#3fb950" font-weight="400" text-anchor="start">&lt;</text></g><g opacity="0.4"><text x="919" y="180" class="m" font-size="17" fill="#3fb950" font-weight="400" text-anchor="start">ケ</text></g><g opacity="0.15"><text x="1134" y="253" class="m" font-size="16" fill="#3fb950" font-weight="400" text-anchor="start">ア</text></g><g opacity="0.4"><text x="1122" y="53" class="m" font-size="16" fill="#3fb950" font-weight="400" text-anchor="start">1</text></g><g opacity="0.4"><text x="1175" y="248" class="m" font-size="18" fill="#3fb950" font-weight="400" text-anchor="start">ク</text></g><g opacity="0.25"><text x="1057" y="31" class="m" font-size="14" fill="#3fb950" font-weight="400" text-anchor="start">ウ</text></g><g opacity="0.15"><text x="939" y="272" class="m" font-size="16" fill="#3fb950" font-weight="400" text-anchor="start">1</text></g><g opacity="0.25"><text x="946" y="146" class="m" font-size="19" fill="#3fb950" font-weight="400" text-anchor="start">ア</text></g><g opacity="0.25"><text x="921" y="105" class="m" font-size="20" fill="#3fb950" font-weight="400" text-anchor="start">ウ</text></g><g opacity="0.4"><text x="1022" y="90" class="m" font-size="16" fill="#3fb950" font-weight="400" text-anchor="start">イ</text></g><g opacity="0.15"><text x="1092" y="203" class="m" font-size="14" fill="#3fb950" font-weight="400" text-anchor="start">ア</text></g><g opacity="0.15"><text x="922" y="110" class="m" font-size="22" fill="#3fb950" font-weight="400" text-anchor="start">ウ</text></g><g opacity="0.4"><text x="999" y="26" class="m" font-size="14" fill="#3fb950" font-weight="400" text-anchor="start">&lt;</text></g><g opacity="0.15"><text x="1014" y="164" class="m" font-size="18" fill="#3fb950" font-weight="400" text-anchor="start">0</text></g><g opacity="0.4"><text x="1153" y="209" class="m" font-size="17" fill="#3fb950" font-weight="400" text-anchor="start">}</text></g><g opacity="0.4"><text x="944" y="283" class="m" font-size="22" fill="#3fb950" font-weight="400" text-anchor="start">}</text></g><g opacity="0.25"><text x="907" y="253" class="m" font-size="18" fill="#3fb950" font-weight="400" text-anchor="start">/</text></g><g opacity="0.25"><text x="1084" y="221" class="m" font-size="22" fill="#3fb950" font-weight="400" text-anchor="start">イ</text></g><g opacity="0.15"><text x="1085" y="51" class="m" font-size="15" fill="#3fb950" font-weight="400" text-anchor="start">オ</text></g><g opacity="0.25"><text x="1105" y="103" class="m" font-size="21" fill="#3fb950" font-weight="400" text-anchor="start">イ</text></g><g opacity="0.4"><text x="906" y="72" class="m" font-size="14" fill="#3fb950" font-weight="400" text-anchor="start">0</text></g><g opacity="0.4"><text x="1154" y="71" class="m" font-size="12" fill="#3fb950" font-weight="400" text-anchor="start">コ</text></g><g opacity="0.25"><text x="916" y="126" class="m" font-size="14" fill="#3fb950" font-weight="400" text-anchor="start">}</text></g><g opacity="0.25"><text x="1009" y="197" class="m" font-size="19" fill="#3fb950" font-weight="400" text-anchor="start">}</text></g><text x="72" y="140" class="s" font-size="60" fill="#e6edf3" font-weight="800" text-anchor="start">3X-UI KIT</text><text x="74" y="190" class="s" font-size="26" fill="#8b949e" font-weight="400" text-anchor="start">Свой VPN-сервер: все протоколы, один порт 443, одна подписка</text><rect x="74" y="222" width="101" height="36" rx="18" fill="#3fb95022" stroke="#3fb950" stroke-width="1.2" /><text x="124.5" y="246" class="s" font-size="16" fill="#3fb950" font-weight="600" text-anchor="middle">REALITY</text><rect x="187" y="222" width="120" height="36" rx="18" fill="#3fb95022" stroke="#3fb950" stroke-width="1.2" /><text x="247.0" y="246" class="s" font-size="16" fill="#3fb950" font-weight="600" text-anchor="middle">Hysteria2</text><rect x="319" y="222" width="120" height="36" rx="18" fill="#3fb95022" stroke="#3fb950" stroke-width="1.2" /><text x="379.0" y="246" class="s" font-size="16" fill="#3fb950" font-weight="600" text-anchor="middle">AmneziaWG</text><rect x="451" y="222" width="82" height="36" rx="18" fill="#3fb95022" stroke="#3fb950" stroke-width="1.2" /><text x="492.0" y="246" class="s" font-size="16" fill="#3fb950" font-weight="600" text-anchor="middle">XHTTP</text><rect x="545" y="222" width="72" height="36" rx="18" fill="#3fb95022" stroke="#3fb950" stroke-width="1.2" /><text x="581.0" y="246" class="s" font-size="16" fill="#3fb950" font-weight="600" text-anchor="middle">TUIC</text><rect x="629" y="222" width="63" height="36" rx="18" fill="#3fb95022" stroke="#3fb950" stroke-width="1.2" /><text x="660.5" y="246" class="s" font-size="16" fill="#3fb950" font-weight="600" text-anchor="middle">443</text></svg>