Граф коммитов
466 Коммитов
Автор 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 e52967fba1 Загрузочное меню ISO было оформлено в стиле Virtuality
- графическая тема GRUB (фон, подсветка выбранного пункта, полоса
  автозапуска) в image/grub, подключается в build-iso.sh; при отсутствии
  модулей GRUB меню остаётся текстовым;
- пункты меню переведены: «Установить Virtuality X.Y.Z», «Загрузить
  с другого диска», «Настройки UEFI», «Проверить память»;
- tests/render_html.mjs рендерит HTML в PNG (для фона темы).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 14:22:11 +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
Виктор 873b32c517 Virtuality 0.10.0: новый интерфейс, установочный ISO на Ubuntu 26.04 LTS, подготовка к продакшену (#1)
Virtuality 0.10.0: новый интерфейс, установочный ISO на Ubuntu 26.04 LTS, подготовка к продакшену
2026-09-25 16:16:46 +09:00
Claude f20782c087 Сборка ISO была подключена к Pull Request в GitHub Actions
- образ собирается на каждом PR, который меняет image/, first boot
  или зависимости панели, а не только по тегу v*;
- после сборки проверяются загрузочные записи BIOS/UEFI, autoinstall.yaml
  и меню GRUB;
- перед сборкой освобождается место на раннере, устаревшие запуски
  отменяются; CI можно запустить вручную.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 07:08:38 +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 967f4c1a7e ISO был переведён на Ubuntu 26.04 LTS, установщик ноды стал переносимым
- build-iso.sh по умолчанию собирает образ на Ubuntu Server 26.04 LTS
  (Python 3.14), 24.04 остаётся через --ubuntu 24.04;
- install_virtuality_node.sh больше не падает на Ubuntu 26.04 и Debian 13:
  qemu-kvm стал виртуальным пакетом, поэтому QEMU выбирается по
  архитектуре, dnsutils заменён на bind9-dnsutils, а недоступные пакеты
  пропускаются с предупреждением;
- CI проверяет панель и на Python 3.14.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 06:41:43 +00:00
Claude cadc17a6df Требования к reverse proxy были описаны в README
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 06:37:58 +00:00
Claude 110a37f435 Версия проекта была обновлена до 0.10.0: тесты, CI и документация образа
- tests/: 55 тестов web-панели, авторизации, сети и обновлений,
  все страницы рендерятся на замоканных virsh/systemctl;
- GitHub Actions: pyflakes + pytest на Python 3.11–3.13, shellcheck,
  сборка ISO amd64/arm64 по тегу v* или вручную;
- Makefile: make check / make test / make iso;
- docs/IMAGE.md и README: установка с ISO, продакшен-настройки,
  разработка;
- updates/versions.json: описание версии 0.10.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 06:36:26 +00:00
Claude 85648739dc Все пункты загрузочного меню ISO были переименованы в установку Virtuality
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 06:33:17 +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
Виктор 423c00b96a Версия проекта была обновлена до 0.9.6 2026-05-07 21:23:13 +09:00
Виктор 86d4f1c234 Визуальные блоки VM были подключены к техническому выводу 2026-05-07 21:22:53 +09:00
Виктор 9cbb7c909b Версия проекта была обновлена до 0.9.5 2026-05-07 21:19:30 +09:00
Виктор c8c3385142 Блоки информации VM были заменены на графические карточки 2026-05-07 21:19:06 +09:00
Виктор 135fa971df Версия проекта была обновлена до 0.9.4 2026-05-07 21:14:40 +09:00
Виктор be79d9ca33 Четыре основных блока VM были выстроены в один ряд 2026-05-07 21:14:18 +09:00
Виктор 82aa4697e0 Версия проекта была обновлена до 0.9.3 2026-05-07 21:07:09 +09:00
Виктор 2e30c6584f Блок управления VM был перенесён рядом с ресурсами 2026-05-07 21:06:39 +09:00
Виктор 367b0a69ff Версия проекта была обновлена до 0.9.2 2026-05-07 21:03:26 +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
Виктор eb2e016116 Версия проекта была обновлена до 0.9.1 2026-05-07 20:55:07 +09:00
Виктор 4b7bb41fd7 Переключатель тем был добавлен 2026-05-07 20:54:51 +09:00
Виктор c61fdc4ed6 Тема MacOS Flat была добавлена 2026-05-07 20:54:08 +09:00
Виктор 778427b0d5 Версия проекта была обновлена 2026-05-07 20:49:07 +09:00
Виктор 5034ae8e83 Меню панели было пересобрано заново 2026-05-07 20:48:26 +09:00
Виктор e08b15c94c Интерфейс панели был пересобран заново 2026-05-07 20:47:57 +09:00
Виктор 36dd4dd9ea История версии 0.8.61 была добавлена 2026-05-07 20:43:24 +09:00
Виктор 36bbb99605 Версия была обновлена до 0.8.61 2026-05-07 20:42:37 +09:00
Виктор 2d52aea170 Защита загрузки образов дисков от случайного перехода была добавлена 2026-05-07 20:42:08 +09:00
Виктор cb775209e0 Защита загрузки ISO от случайного перехода была добавлена 2026-05-07 20:41:28 +09:00
Виктор 464760ee3f История версии 0.8.60 была добавлена 2026-05-07 20:36:51 +09:00
Виктор 5dcd34983f Версия была обновлена до 0.8.60 2026-05-07 20:36:06 +09:00
Виктор 724011c73c AJAX-навигация панели была отключена 2026-05-07 20:35:42 +09:00
Виктор 8a8a3e0361 История версии 0.8.59 была добавлена 2026-05-07 20:32:07 +09:00
Виктор 1722da95e3 Версия была обновлена до 0.8.59 2026-05-07 20:31:32 +09:00
Виктор ca5d5598d1 Раскрытие блока образов в базе знаний было восстановлено 2026-05-07 20:31:11 +09:00
Виктор e59e6cb14e История версии 0.8.58 была добавлена 2026-05-07 20:27:52 +09:00
Виктор 0b5a23bd86 Версия была обновлена до 0.8.58 2026-05-07 20:27:15 +09:00
Виктор 5c4be0f8ba Меню базы знаний было приведено к нормальному виду 2026-05-07 20:26:50 +09:00
Виктор 21dec34a9b История версии 0.8.57 была добавлена 2026-05-07 20:14:54 +09:00
Виктор 2b1e157c18 Версия была обновлена до 0.8.57 2026-05-07 20:14:00 +09:00
Виктор 9761193870 Меню карточки VM было подключено к общему шаблону 2026-05-07 20:13:15 +09:00
Виктор 1cce303132 Меню создания VM было подключено к общему шаблону 2026-05-07 20:12:22 +09:00