From 2af543c5fedd1b73d70cb1953afbf472e429d9dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80?= <78488229+viktor138irk@users.noreply.github.com> Date: Thu, 7 May 2026 20:01:41 +0900 Subject: [PATCH] =?UTF-8?q?=D0=91=D1=8B=D0=BB=D0=B0=20=D0=B4=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D1=81=D1=82=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=86=D0=B0=20=D0=B1=D0=B0=D0=B7=D1=8B=20=D0=B7?= =?UTF-8?q?=D0=BD=D0=B0=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/templates/knowledge.html | 166 +++++++++++++++++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 web/templates/knowledge.html diff --git a/web/templates/knowledge.html b/web/templates/knowledge.html new file mode 100644 index 0000000..55564aa --- /dev/null +++ b/web/templates/knowledge.html @@ -0,0 +1,166 @@ + + + + + + База знаний — {{ app_name }} + + + +
+ {% include "_sidebar.html" %} + +
+
+
+
База знаний
+
Документация Virtuality, боевые заметки, сетевые схемы и чек-листы
+
+
+ user: {{ user }} + ← Дашборд +
+
+
+ +
+
+
Фокус
+
VM / сеть / SSL
+
+
+
Статус
+
Наполняется
+
+
+
Правило
+
SSL-ready
+
+
+
Версия раздела
+
0.8.56
+
+
+ +
+
+

Главное правило: SSL-ready by default

+ Let’s Encrypt / HTTP-01 +
+
При настройке VM и пробросов Virtuality должна сразу учитывать выпуск SSL-сертификатов. Для Let’s Encrypt критичен внешний доступ к HTTP-01 challenge на TCP 80.
+
+
DNSA-запись домена должна указывать на реальный внешний IP сервера или роутера.
+
WAN 80/443Порты не должны быть заняты веб-интерфейсом роутера, FastPanel на хосте или другой службой.
+
FirewallKeenetic, внешний firewall и UFW/nftables должны пропускать TCP 80 и TCP 443.
+
Проверка снаружиПеред certbot надо проверять curl с мобильной сети или внешнего хоста, а не только из локальной Wi-Fi сети.
+
+
curl -I http://domain.ru
+
+# Хорошо: ответил nginx, допустимы 200 / 301 / 404
+# Плохо: timeout, connection refused или ответ админки роутера
+
+ +
+
+
+

Bridge VM

+ br0 / LAN node +
+

Если VM подключена к bridge и имеет полноценный LAN IP, самый чистый путь — пробрасывать WAN-порты роутера напрямую на IP VM.

+
WAN 80  → IP_VM:80
+WAN 443 → IP_VM:443
+
Для сайтов и FastPanel внутри bridge VM этот вариант проще и надёжнее: меньше NAT-слоёв, меньше магии, меньше боли.
+
+ +
+
+

NAT VM

+ Virtuality DNAT +
+

Если VM находится во внутренней NAT-сети Virtuality, внешний роутер должен вести трафик на хост Virtuality, а дальше Virtuality DNAT отправит его в VM.

+
WAN 80/443 → HOST:80/443
+HOST DNAT  → IP_VM:80/443
+
Для NAT-сценария правила Virtuality должны быть применены и проверены через /network и tcpdump.
+
+
+ +
+
+

Ключевые директории

+ filesystem +
+ + + + + + + + + + + + +
ПутьНазначение
/opt/virtuality/sourceИсходники GitHub-репозитория Virtuality.
/opt/virtuality/webУстановленная web-панель, которую запускает systemd.
/opt/virtuality/venvPython virtualenv панели.
/var/lib/virtuality/isoISO-образы для установки VM.
/var/lib/virtuality/imagesqcow2-диски виртуальных машин.
/var/lib/virtuality/disk-imagesЗагруженные готовые .img/.raw/.qcow2 образы и распакованные архивы.
/var/lib/virtuality/networkПравила пробросов портов и ручные IP VM.
/var/log/virtualityЛоги установки, операций и диагностики.
+
+ +
+
+
+

Обновление панели

+ GitHub → install +
+
cd /opt/virtuality/source
+sudo git fetch --all
+sudo git reset --hard origin/main
+sudo git clean -fd
+sudo bash scripts/install_web_panel.sh
+sudo systemctl restart virtuality-web
+
+ +
+
+

Быстрая диагностика

+ host / VM / network +
+
sudo vhealth
+sudo systemctl status virtuality-web --no-pager
+sudo journalctl -u virtuality-web -n 120 --no-pager
+virsh list --all
+virsh net-list --all
+ip route
+sudo nft list ruleset | grep -A120 virtuality
+
+
+ +
+
+

Проверка проброса к VM

+ tcpdump +
+

Если certbot или внешний сайт не открывается, сначала надо понять, где теряется пакет: на роутере, на хосте Virtuality или уже внутри VM.

+
# На хосте Virtuality
+sudo tcpdump -ni br0 'tcp port 80 or tcp port 443'
+
+# На VM
+sudo ss -tulpn | grep -E ':80|:443'
+sudo nginx -t
+
+ +
+
+

Правила версионирования

+ release discipline +
+
+
+0.0.1Мелкий фикс, безопасное уточнение, диагностика, маленький UI-патч.
+
+0.1.0Заметная функция или новый раздел панели.
+
+1.0.0Архитектурный разрыв или несовместимое изменение.
+
КоммитыСообщения коммитов — на русском, в прошедшем времени, без инфинитива.
+
+
+
+
+ + +