Граф коммитов
150 Коммитов
Автор SHA1 Сообщение Дата
Claude 34684634af Повседневные операции с машиной были добавлены: диск, клон, пауза, заметки, нагрузка
Модуль web/features/vmops.py (router подключён двумя строками в app.py):

- Увеличение диска на вкладке «Диски и загрузка»: размер из qemu-img info,
  только рост, проверка свободного места; выключенная машина — qemu-img resize,
  работающая — virsh blockresize. Диски вне /var/lib/virtuality не трогаются.
- Клонирование: страница /vm/{name}/clone с проверками (машина выключена,
  хватает места, имя свободно), фоновая операция virt-clone с явными --file
  в хранилище образов, прогресс по росту файлов копии, pool-refresh после.
- Пауза, продолжение, спящий режим (managedsave как операция) и удаление
  сохранённого состояния — /vm/{name}/ops/{action}; пункты меню на обзоре
  и странице машины, кнопка «Продолжить» для приостановленной машины.
- Заметки: название и описание через virsh desc (--new-desc=ТЕКСТ одним
  аргументом, чтобы текст вида «--edit» не стал опцией); название видно
  под именем машины на обзоре (virsh list --all --title, парсер в presenters).
- Живая нагрузка: /live/stats по virsh domstats для всех активных машин
  одним вызовом, CPU % по разнице cpu.time между опросами; шкалы в строках
  обзора и карточка «Нагрузка сейчас» на странице машины (panel.js, 5 с).

Тесты для всех парсеров и маршрутов (tests/test_vmops.py), демо-данные
в dev_server.py (три машины в разных состояниях, живые шкалы), значки
notebook-pen и expand в спрайте.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 15:00:41 +00:00
Claude 7bf7a0f6b7 Утилита virtuality-ctl была добавлена
Единая точка управления нодой: пересборка systemd-юнитов из web.env
(порт, HTTPS с самоподписанным сертификатом и redirector HTTP→HTTPS,
автообновление, ежедневное обслуживание, libvirt-guests), смена пароля
и часового пояса, перезагрузка/выключение, архив настроек ноды и его
восстановление, откат панели после неудачного обновления, безопасное
подключение моста br0 с автооткатом через 2 минуты, отчёт для
поддержки, удаление. Установщик и панель будут использовать её вместо
собственных копий этой логики.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 14:26:03 +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