Граф коммитов
149 Коммитов
Автор SHA1 Сообщение Дата
Claude 4198c18ff4 Снимки машин (точки восстановления) были добавлены
Новая страница /vm/{name}/snapshots и вкладка «Снимки» на странице машины:
список внутренних снимков libvirt с описанием, датой, состоянием и меткой
«Текущий», создание снимка с автоматическим именем snap-ГГГГММДД-ЧЧММ,
возврат к снимку и удаление. Создание и возврат идут как фоновые задачи
с журналом; страница сама обновляется, когда задача завершится.

Ограничения и ошибки объясняются по-русски: не больше 8 снимков на машину,
только диски qcow2, предупреждение для машин с UEFI; известные ошибки libvirt
переводятся, а исходный текст показывается рядом. Возврат повторяется
с --force, если libvirt этого требует.

Модуль web/features/snapshots.py, парсеры с тестами на образцах вывода virsh,
fake_run_cmd в тестах расширен командами snapshot-*, demo-сервер показывает
снимки и идущую задачу. В спрайт добавлены иконки camera и history.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 14:30:25 +00:00
Claude 1e29134fb3 Подготовка к 0.11: общий модуль core.py, каталог облачных образов, образцы вывода virsh
- web/core.py: настройки, авторизация, run_cmd, хранилище фоновых операций
  и шаблоны вынесены в общий модуль, чтобы новые функции жили в отдельных
  модулях; app.py пока не переключён;
- web/catalog.py: официальные облачные образы Ubuntu 26.04/24.04,
  Debian 13, Alpine 3.23 (amd64/arm64) и типы ОС для установки с ISO;
- tests/fixtures: реалистичный вывод virsh для тестов будущих парсеров;
- presenters.format_bytes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 14:04:11 +00:00
Claude 4098c270a4 Интерфейс панели был полностью перерисован
Новый дизайн в стиле коммерческих продуктов, рассчитанный на обычного
пользователя:
- светлая и тёмная темы (следует системной), шрифт Inter и иконки
  Lucide вшиты в панель — работает без интернета;
- общий каркас base.html и компоненты _ui.html вместо 14 независимых
  страниц; адаптивная вёрстка для телефона;
- простой язык: «Работает / Выключена», «Автозапуск», «Доступ из
  интернета» вместо running, autostart, DNAT; технические данные
  убраны во вкладку «Для специалистов»;
- главная: загрузка процессора, памяти и хранилища, карточки машин с
  главным действием и меню остальных, приветственный сценарий для
  первой машины;
- мастер создания машины из трёх шагов с готовыми конфигурациями;
- страница машины с вкладками, переключателем автозапуска и порядком
  загрузки кнопками;
- «Сеть и доступ»: открытие SSH, сайта, RDP и т. д. из списка,
  ручные IP машин, понятная диагностика;
- загрузка образов перетаскиванием с прогрессом и оставшимся временем;
- подтверждения опасных действий в диалоге и уведомления;
- раздел «Помощь»;
- web/presenters.py переводит вывод virsh и /proc в данные для
  страниц; tests/dev_server.py запускает панель с имитацией virsh.

Также: исправлено определение модели CPU на x86 («207» вместо
названия процессора), история версии 0.10.0 и документация обновлены
под Ubuntu 26.04 LTS, в README добавлены скриншоты.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 07:01:41 +00:00
Claude c4cebd916b Центр обновлений больше не предлагает откат на старую версию
Раньше обновление считалось доступным при любом расхождении локального
коммита и origin/main. Нода со сборкой новее main (например, из
ISO-образа ветки) получала предложение «обновиться» на старую версию,
а ночное автообновление откатывало её само. Теперь обновление
предлагается и ставится, только если локальный коммит — предок
удалённого.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 07:01:30 +00:00
Claude d92b1b9bda Сборка установочного ISO-образа Virtuality была добавлена
image/build-iso.sh пересобирает официальный Ubuntu Server 24.04
live-server ISO (amd64/arm64) в установщик Virtuality:
- /autoinstall.yaml: установщик спрашивает только сеть, диск и
  пользователя, остальное автоматически; есть полностью
  автоматический режим --unattended;
- исходники Virtuality (git-репозиторий, чтобы работал центр
  обновлений) и Python-колёса для офлайн-установки панели;
- virtuality-firstboot.service при первой загрузке ставит KVM,
  libvirt, Cockpit, web-панель, vhealth и консольный dashboard,
  повторяя попытку до успеха.

Также: зависимости панели закреплены полностью, установщики работают
неинтерактивно и учитывают VIRTUALITY_USER, bootstrap.sh стал обёрткой
над install.sh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 06:31:55 +00:00
Claude 975ab4d1a0 Web-панель была подготовлена к продакшену
- исправлен NameError при создании VM: не был импортирован platform;
- на странице VM автозапуск всегда показывался выключенным;
- сообщения в redirect-URL теперь кодируются (кириллица, пробелы, &);
- проверка пароля вынесена в web/auth.py и работает на Python 3.13+,
  где модули crypt и spwd удалены (fallback на libcrypt и /etc/shadow);
- добавлены ограничение попыток входа, срок жизни сессии, флаг Secure
  для cookie, защита от cross-origin POST и заголовки безопасности;
- добавлен публичный /healthz с версией панели;
- правила проброса портов восстанавливаются после перезагрузки
  (virtuality-network.service);
- обновление из панели запускается через systemd-run и больше не
  убивается перезапуском virtuality-web;
- install_web_panel.sh сохраняет порт, пользователя и режим
  автообновления в /var/lib/virtuality/config/web.env, поэтому
  обновление больше не сбрасывает порт на 8088 и пользователя на viktor;
- поддержка офлайн-установки Python-зависимостей из wheels/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 06:26:51 +00:00
Claude 10a780d381 Патчи установки были встроены в исходники web-панели
Раньше web/app.py, web/network_core.py и web/static/app.css собирались
на каждой ноде цепочкой из ~25 patch-скриптов во время установки.
Теперь результат этой цепочки хранится прямо в репозитории, а
install_web_panel.sh просто копирует web/ без модификаций. Поведение
установленной панели не меняется. Неиспользуемые patch-скрипты удалены.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 06:22:28 +00:00
Виктор 86d4f1c234 Визуальные блоки VM были подключены к техническому выводу 2026-05-07 21:22:53 +09:00
Виктор c8c3385142 Блоки информации VM были заменены на графические карточки 2026-05-07 21:19:06 +09:00
Виктор be79d9ca33 Четыре основных блока VM были выстроены в один ряд 2026-05-07 21:14:18 +09:00
Виктор 2e30c6584f Блок управления VM был перенесён рядом с ресурсами 2026-05-07 21:06:39 +09:00
Виктор a536f16d6c Страница входа была подключена к темам панели 2026-05-07 21:03:03 +09:00
Виктор 8c8628b982 Неиспользуемый шаблон базы знаний был удалён 2026-05-07 21:02:34 +09:00
Виктор bd40d5e4c3 Форма создания VM была очищена от несовместимых состояний 2026-05-07 20:59:13 +09:00
Виктор 4b7bb41fd7 Переключатель тем был добавлен 2026-05-07 20:54:51 +09:00
Виктор c61fdc4ed6 Тема MacOS Flat была добавлена 2026-05-07 20:54:08 +09:00
Виктор 5034ae8e83 Меню панели было пересобрано заново 2026-05-07 20:48:26 +09:00
Виктор e08b15c94c Интерфейс панели был пересобран заново 2026-05-07 20:47:57 +09:00
Виктор 2d52aea170 Защита загрузки образов дисков от случайного перехода была добавлена 2026-05-07 20:42:08 +09:00
Виктор cb775209e0 Защита загрузки ISO от случайного перехода была добавлена 2026-05-07 20:41:28 +09:00
Виктор 724011c73c AJAX-навигация панели была отключена 2026-05-07 20:35:42 +09:00
Виктор ca5d5598d1 Раскрытие блока образов в базе знаний было восстановлено 2026-05-07 20:31:11 +09:00
Виктор 5c4be0f8ba Меню базы знаний было приведено к нормальному виду 2026-05-07 20:26:50 +09:00
Виктор 9761193870 Меню карточки VM было подключено к общему шаблону 2026-05-07 20:13:15 +09:00
Виктор 1cce303132 Меню создания VM было подключено к общему шаблону 2026-05-07 20:12:22 +09:00
Виктор e534171cd7 Главное меню дашборда было подключено к общему шаблону 2026-05-07 20:11:16 +09:00
Виктор 17fdc2aeea Стили базы знаний были добавлены 2026-05-07 20:04:30 +09:00
Виктор ee81502f6d Ссылка базы знаний была направлена на статическую страницу 2026-05-07 20:03:27 +09:00
Виктор 57e831bf1c Статическая база знаний была добавлена 2026-05-07 20:03:10 +09:00
Виктор 2c58421d10 Пункт базы знаний был добавлен в меню 2026-05-07 20:01:55 +09:00
Виктор 2af543c5fe Была добавлена страница базы знаний 2026-05-07 20:01:41 +09:00
Виктор e89cac63b2 Поле ручного IP VM было добавлено в страницу сети 2026-05-07 10:48:58 +09:00
Виктор 4779b74464 Страница сети была переведена на единое меню 2026-05-07 10:25:04 +09:00
Виктор ab9d51611a Страница дисков была переведена на единое меню 2026-05-07 10:19:56 +09:00
Виктор 6a6fd7bb83 Страница ISO была переведена на единое меню 2026-05-07 10:19:13 +09:00
Виктор ec933815d8 Страница хоста была переведена на единое меню 2026-05-07 10:18:39 +09:00
Виктор d8c48d191c Страница операций была переведена на единое меню 2026-05-07 10:18:20 +09:00
Виктор e7ecc361a8 Общее левое меню было пересобрано 2026-05-07 10:17:28 +09:00
Виктор d44a4a2b67 Блоки ресурсов ISO и порядка загрузки были возвращены в карточку VM 2026-05-07 10:08:32 +09:00
Виктор 94e43feba3 Карточка VM была переведена в общий каркас панели 2026-05-07 09:58:29 +09:00
Виктор ba1640b966 Unknown в autostart карточки VM был заменён на disabled 2026-05-07 09:54:19 +09:00
Виктор e923d4558a Страница создания VM была возвращена в общий каркас панели 2026-05-07 09:47:21 +09:00
Виктор 7efb55fe92 Страница обновлений была возвращена в общий каркас панели 2026-05-07 09:46:30 +09:00
Виктор 885df15bec Стили дашборда и раскрывающегося меню были обновлены 2026-05-07 09:39:40 +09:00
Виктор 86c1ee145c Update Center был переведён на ручную проверку и кнопку установки 2026-05-07 09:38:42 +09:00
Виктор 42ddcba0b4 Telegram Notifier был убран из страницы журналов 2026-05-07 09:38:12 +09:00
Виктор 7401adadf7 Live-обновление IP и раскрытие меню были исправлены 2026-05-07 09:37:14 +09:00
Виктор a5ce4af516 Дашборд был очищен и перестроен 2026-05-07 09:36:20 +09:00
Виктор 4da0becbe1 Стили кликабельного статуса автозапуска были добавлены 2026-05-07 09:23:20 +09:00
Виктор 7fbb6e27c7 Кнопка автозапуска в карточке VM стала индикатором состояния 2026-05-07 09:22:08 +09:00