Граф коммитов
136 Коммитов
Автор SHA1 Сообщение Дата
Claude 43b7ea386f Обновление с 0.10 убирает старый экран-дашборд на tty1 и возвращает обычный вход
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 15:25:43 +00:00
Claude c5b576dbe7 Стабильный канал обновлений был добавлен; клон и увеличение диска защищены от спящих машин
- stable (по умолчанию): обновление до последнего тега vX.Y.Z; пока релизов нет — ветка main
- main: ранний доступ, все изменения; канал берётся из web.env (Настройки → Обновления)
- scripts/update_target.sh общий для автообновления и ручного обновления, ZIP-запасной путь для тегов
- страница «Обновления» показывает канал и целевую версию
- клонирование и увеличение диска недоступны, пока машина в спящем режиме

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 15:19:19 +00:00
Claude 7ec3dc6082 Исправлены ошибки второго раунда аудита: локаль virsh, имена машин, IP, ISO в приводе, консоль
- все команды запускаются с LC_ALL=C.UTF-8: русский перевод virsh ломал разбор состояния машин
- имя машины не может быть числом или UUID (virsh принял бы его за ID другой машины)
- IP без MAC машины не угадывается по чужой аренде DHCP; у выключенных машин нет устаревшего IP
- вставленный ISO определяется по устройству CD-ROM, а не по «.iso» в пути
- ISO, вставленный в привод машины, нельзя удалить — машина перестала бы запускаться
- на ARM-платах нет ложного предупреждения про флаги vmx/svm
- проверка машины в консоли не блокирует остальные запросы

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 15:17:23 +00:00
Claude 0e4b1783ec Исправлены ошибки по итогам аудита: формат образов, CD-ROM, действия с машинами, firewall, VNC
- формат образа диска определяется через qemu-img info (облачные .img — это qcow2)
- ISO подключается/извлекается через virsh change-media, без угадывания устройств
- действия start/shutdown/delete сообщают об ошибке virsh; удаление UEFI-машин (--nvram)
- правила iptables/ufw для удалённых пробросов портов теперь удаляются
- VNC машин слушает только 127.0.0.1; virtuality-ctl reconfigure чинит старые машины
- зелёное уведомление не показывается, если действие вернуло ошибку
- убраны смена архитектуры машины, эмуляция ARM64 на x86 и загрузка по PXE
- tests/test_audit_fixes.py

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 15:01:32 +00:00
Claude 2745a1280f Страница «Настройки» была добавлена: доступ, пароль, сеть машин, хранилище, время, обновления, сервер
- web/features/settings.py + settings.html: всё, что спрашивал мастер, меняется в одном месте
- перезагрузка/выключение с ожиданием возврата панели, архив настроек и отчёт для поддержки
- сообщения после редиректов показываются на любой странице (?message=, ?error=)
- virtuality-ctl set: настройки обновлений применяются без перезапуска панели
- tests/test_settings.py

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 14:55:31 +00:00
Claude 55f7d971f6 Первая загрузка образа переписана: панель ставится первой, прогресс виден в мастере
- virtuality_firstboot.sh: шаги panel → network → virtualization → tools → finish,
  прогресс в config/setup.json (в т.ч. имена пакетов apt), идемпотентный повтор
  после ошибки, /etc/issue с адресом панели
- install_web_panel.sh: поэтапная замена web/ с сохранением web.prev, офлайн
  virtualenv с pip из wheel, юниты/TLS/firewall через virtuality-ctl reconfigure,
  мастер настройки и для ручной установки
- virtuality-ctl url; путь к исходникам хранится в web.env
- build-iso.sh: wheel pip в образе, часовой пояс по GeoIP
- Cockpit, консольный dashboard, тестовая VM, clean_install, setup_bridge_br0,
  bootstrap.sh и setup_github_sync.sh были убраны (заменены мастером и virtuality-ctl)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 14:50:16 +00:00
Claude 8a4474a305 Мастер первичной настройки и nodectl: добавлены пошаговый /setup, управление узлом через virtuality-ctl и тесты
- web/nodectl.py: факты об узле (сеть, диски, часовые пояса, KVM) и действия через virtuality-ctl
- web/features/setup.py + шаблоны setup*: мастер из 8 шагов (установка, часовой пояс, пароль, HTTPS, сеть, хранилище, обновления, итог)
- безопасное переключение на мост br0 с авто-откатом и подтверждением из браузера
- virtuality-ctl storage-use: перенос данных на отдельный диск
- панель перенаправляет на мастер до его завершения; демо-режим VIRTUALITY_DEV_SETUP
- tests/test_setup.py: 8 тестов на маршруты мастера

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LEUXMcdZo7b87mjkUsPgg
2026-09-25 14:36:32 +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 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
Виктор 6d528d84bd Патч проброса bridge VM был подключён к установщику 2026-05-07 11:09:12 +09:00
Виктор db8906fbab Патч проброса bridge VM был добавлен 2026-05-07 11:08:06 +09:00
Виктор 52933c9952 Патч поля ручного IP был добавлен 2026-05-07 10:48:14 +09:00
Виктор b88d61241f Патч проброса портов был усилен 2026-05-07 10:44:35 +09:00
Виктор 112de1bb27 Канонические шаблоны панели были закреплены после патчей 2026-05-07 10:21:02 +09:00
Виктор 90d00a0f27 Канонический шаблон карточки VM был восстановлен после патчей 2026-05-07 10:12:20 +09:00
Виктор b567f0548f Патчер ресурсов существующих VM был защищён 2026-05-07 10:09:10 +09:00
Виктор a3fa88d99d Патчер порядка загрузки существующих VM был защищён 2026-05-07 10:01:17 +09:00
Виктор 4b72aa6784 Патчер порядка загрузки VM был защищён от отсутствующих маркеров 2026-05-07 09:50:02 +09:00
Виктор e5a53a7821 Telegram notifier был удалён из центра журналов 2026-05-07 09:37:49 +09:00
Виктор ff5e0ab932 Патчер автозапуска VM был подключён к установке 2026-05-07 09:11:48 +09:00
Виктор 1bb5ccb9de Патчер автозапуска VM был добавлен 2026-05-07 09:10:10 +09:00
Виктор 13595b5ad0 Патчер live-статусов был подключён к установке 2026-05-07 08:33:06 +09:00
Виктор 3a15ab3ec1 Патчер live-статусов был добавлен 2026-05-07 08:31:47 +09:00
Виктор 47b9b86382 Патч удаления старого блока порядка загрузки был подключён 2026-05-07 07:59:20 +09:00
Виктор e6463d281a Патч удаления старого блока порядка загрузки был добавлен 2026-05-07 07:58:27 +09:00
Виктор 77e3fb9b14 Патч ISO-привода был защищён от отсутствующих маркеров 2026-05-07 07:55:08 +09:00
Виктор 12643d129a Патч раскладки ресурсов VM был защищён от отсутствующих маркеров 2026-05-07 07:52:53 +09:00
Виктор b00fcfeada Патч ресурсов VM был исправлен для порядка установки 2026-05-07 07:50:35 +09:00
Виктор b9d02105cc Патч раскладки ресурсов VM был подключён к установщику 2026-05-07 07:48:05 +09:00
Виктор 5a3ee53414 Патч раскладки ресурсов VM был добавлен 2026-05-07 07:47:15 +09:00
Виктор b3ab7dc217 Патч ресурсов существующей VM был подключён к установщику 2026-05-07 07:46:45 +09:00
Виктор a0aec8cbaa Патч ресурсов существующей VM был добавлен 2026-05-07 07:45:51 +09:00
Виктор b079360bf0 Порядок загрузки был переведён на перетаскивание 2026-05-07 07:40:36 +09:00
Виктор e495861dcd Блок ISO-привода был поставлен рядом с порядком загрузки 2026-05-07 07:33:53 +09:00
Виктор 46b3f6f57a Патч монтирования ISO в VM был подключён к установщику 2026-05-07 07:29:40 +09:00
Виктор 85eb0add6d Патч монтирования ISO в существующую VM был добавлен 2026-05-07 07:28:51 +09:00
Виктор a3205dbc72 Патч порядка загрузки существующих VM был подключён к установщику 2026-05-07 07:25:08 +09:00
Виктор 952b71c809 Патч порядка загрузки существующих VM был добавлен 2026-05-07 07:24:20 +09:00
Виктор c180d370f8 Патч порядка загрузки VM был подключён к установщику 2026-05-07 07:19:43 +09:00
Виктор 4e7636e454 Патч порядка загрузки VM был добавлен 2026-05-07 07:18:53 +09:00
Виктор a4ab9ed7ee Патч защиты загрузок был подключён к установщику 2026-05-07 07:08:01 +09:00
Виктор f0acfe56a7 Защита загрузок от переходов по меню была добавлена 2026-05-07 07:06:46 +09:00
Виктор 8a91a5b7a9 Патчер Update Center был упрощён 2026-05-07 06:51:05 +09:00
Виктор babf86cce7 Расписание автообновления было переведено на UTC 2026-05-07 06:49:20 +09:00
Виктор df93e5f901 Патчер Update Center был защищён от раннего выхода 2026-05-07 06:47:57 +09:00
Виктор db33735632 Таймер автообновления переведён на ежедневный запуск 2026-05-07 06:38:33 +09:00
Виктор 6e258ae184 Распаковка img.xz была исправлена 2026-05-07 06:27:29 +09:00