{ "versions": [ { "version": "0.7.7", "date": "2026-05-07", "title": "Импорт дисковых образов из архивов", "summary": "Менеджер дисков теперь принимает .zip, .tar.gz и .tgz архивы, безопасно распаковывает их и импортирует найденные .img/.raw/.qcow2 образы.", "features": [ "Добавлена поддержка загрузки .zip, .tar.gz и .tgz в разделе Диски", "Архивы распаковываются безопасно без абсолютных путей и ../", "Из архивов импортируются только .img, .raw и .qcow2 файлы", ".img и .raw после распаковки автоматически конвертируются в qcow2", "Установщик подключает patch_disk_images.py и patch_disk_archives.py", "Интерфейс загрузки дисков обновлён под архивы", "Версия обновлена до 0.7.7" ] }, { "version": "0.7.6", "date": "2026-05-07", "title": "Фильтры типов загружаемых файлов", "summary": "В интерфейсе разделены установочные ISO и готовые дисковые образы: ISO принимает только .iso, Диски принимают только .img, .raw и .qcow2.", "features": [ "В ISO-менеджере input file ограничен только .iso", "В менеджере дисков input file ограничен .img, .raw и .qcow2", "Добавлена клиентская проверка расширений перед загрузкой ISO", "Добавлена клиентская проверка расширений перед загрузкой готовых дисков", "Подсказки интерфейса теперь явно разделяют установочные образы и образы установленных систем", "Версия обновлена до 0.7.6" ] }, { "version": "0.7.5", "date": "2026-05-07", "title": "Сохранение авторизации после обновления", "summary": "Session secret теперь хранится постоянно в /var/lib/virtuality/config/session_secret, поэтому обновления больше не должны сбрасывать авторизацию в панели.", "features": [ "Установщик больше не генерирует новый session secret при каждом запуске", "Секрет сессий хранится в /var/lib/virtuality/config/session_secret", "Файл session_secret создаётся один раз с правами 600", "После обновления cookie остаются валидными, если secret уже был создан", "Версия обновлена до 0.7.5" ] }, { "version": "0.7.4", "date": "2026-05-07", "title": "Диагностика пустых DHCP leases", "summary": "Блок DHCP leases теперь показывает структурированную таблицу lease-ов или понятную причину, почему список пуст.", "features": [ "Добавлен разбор virsh net-dhcp-leases в структурированные строки", "Пустой список DHCP leases теперь сопровождается диагностической подсказкой", "На странице сети добавлены команды проверки DHCP и интерфейсов VM", "Установщик подключает patch_dhcp_leases_empty.py", "Версия обновлена до 0.7.4" ] }, { "version": "0.7.3", "date": "2026-05-07", "title": "Совместимость загрузки файлов", "summary": "Загрузки ISO и дисковых образов переведены на временный каталог Virtuality вместо системного /tmp, а имена файлов стали обрабатываться мягче.", "features": [ "Добавлен /var/lib/virtuality/tmp как временный каталог загрузок", "systemd service получает TMPDIR, TEMP и TMP внутри каталога Virtuality", "Установщик создаёт временный каталог с правами 1777", "Добавлен patch_upload_compat.py для мягкой нормализации имён файлов", "Ошибки загрузки теперь подсказывают проверить права и свободное место", "Версия обновлена до 0.7.3" ] }, { "version": "0.7.2", "date": "2026-05-07", "title": "Надёжная синхронизация автообновлений", "summary": "Автообновление больше не использует git pull --ff-only, а синхронизирует серверные исходники через fetch, reset --hard и clean.", "features": [ "git pull --ff-only заменён на git reset --hard origin/main", "Перед сбросом локальные изменения пишутся в update.log", "Добавлен git clean -fd для удаления мусорных файлов в source", "Автообновление стало устойчивее к локальным изменениям в /opt/virtuality/source", "Версия обновлена до 0.7.2" ] }, { "version": "0.7.1", "date": "2026-05-07", "title": "Фикс записи XML NAT-сети", "summary": "XML-файл libvirt NAT-сети перенесён из /tmp в /var/lib/virtuality/network, чтобы убрать Permission denied на системах с жёсткими правами /tmp.", "features": [ "NAT XML теперь хранится в /var/lib/virtuality/network/virtuality-nat.xml", "Запись XML выполняется атомарно через временный файл в каталоге Virtuality", "virsh net-define использует стабильный путь вместо /tmp/virtuality-nat.xml", "Версия обновлена до 0.7.1" ] }, { "version": "0.7.0", "date": "2026-05-07", "title": "Автоустановка обновлений каждые 15 минут", "summary": "Добавлен systemd timer, который каждые 15 минут проверяет GitHub и автоматически устанавливает обновление при появлении новых коммитов.", "features": [ "Добавлен scripts/auto_update_check.sh для фоновой проверки GitHub", "Установщик создаёт virtuality-auto-update.service", "Установщик создаёт virtuality-auto-update.timer с интервалом 15 минут", "Автообновление использует lock-файл и не запускает параллельные установки", "Лог пишется в /var/log/virtuality/update.log", "Версия обновлена до 0.7.0" ] }, { "version": "0.6.5", "date": "2026-05-07", "title": "Безопасные ошибки NAT-сети", "summary": "Страница сети больше не падает Internal Server Error при сбоях создания или починки NAT, а показывает понятную ошибку в интерфейсе.", "features": [ "Добавлен безопасный обработчик ошибок для /network/nat/setup", "Страница /network защищена от падения при ошибках чтения сетевого состояния", "Ошибки NAT теперь отображаются в красном блоке вместо белого 500", "Версия обновлена до 0.6.5" ] }, { "version": "0.6.4", "date": "2026-05-07", "title": "Проверка RAM для ARM64 эмуляции", "summary": "Перед запуском ARM64 VM на x86-хосте Virtuality проверяет доступную память и заранее показывает понятную ошибку, если RAM недостаточно.", "features": [ "Добавлена проверка MemAvailable перед ARM64-эмуляцией на x86", "Ошибка нехватки памяти теперь показывается до запуска QEMU", "Сообщение подсказывает рекомендуемый объём RAM для VM", "Версия обновлена до 0.6.4" ] }, { "version": "0.6.3", "date": "2026-05-07", "title": "Автоматический мониторинг обновлений", "summary": "Кнопка ручной проверки обновлений убрана, страница обновлений сама запускает проверку GitHub при открытии и дальше по расписанию.", "features": [ "Убрана кнопка Проверить сейчас в Update Center", "Проверка обновлений запускается автоматически при открытии /update", "Повторная проверка выполняется каждые 5 минут", "Версия обновлена до 0.6.3" ] }, { "version": "0.6.2", "date": "2026-05-07", "title": "ARM64 зависимости для x86-хостов", "summary": "Исправлена установка ARM64 QEMU-зависимостей на x86/VPS, чтобы импорт готовых ARM64 дисков не падал из-за отсутствующего qemu-system-aarch64.", "features": [ "На x86-хостах устанавливаются qemu-system-arm и qemu-efi-aarch64", "Добавлена проверка наличия qemu-system-aarch64 после установки пакетов", "cloud-image-utils добавлен в x86-профиль зависимостей", "Версия обновлена до 0.6.2" ] }, { "version": "0.6.1", "date": "2026-05-07", "title": "ARM64 через QEMU XML", "summary": "Добавлен отдельный XML-путь запуска ARM64 готовых дисков на x86-хостах через qemu-system-aarch64.", "features": [ "ARM64 .img/.qcow2 на x86 создаётся через прямой libvirt XML", "Для ARM64 на x86 используется qemu-system-aarch64 и CPU cortex-a57", "ARM64 ISO на x86 блокируется понятной ошибкой — используем готовый диск", "Версия обновлена до 0.6.1" ] }, { "version": "0.6.0", "date": "2026-05-07", "title": "Архитектуры VM и дисковые образы", "summary": "Добавлены выбор архитектуры VM, загрузка .img/.raw/.qcow2, прогресс конвертации и уведомления об обновлениях.", "features": [ "Добавлен выбор архитектуры VM", "Добавлена загрузка локальных дисковых образов", "Добавлен второй прогресс конвертации .img/.raw в qcow2", "Добавлены уведомления об обновлениях на дашборде" ] }, { "version": "0.5.0", "date": "2026-05-07", "title": "GitHub Update Center", "summary": "Автообновление Virtuality напрямую из GitHub.", "features": [ "Добавлена страница /update", "Добавлен список пропущенных версий и функций", "Добавлен исполнитель обновлений", "Добавлен VERSION-файл проекта" ] }, { "version": "0.4.0", "date": "2026-05-07", "title": "ISO upload progress and NAT ranges", "summary": "Улучшены загрузка ISO и сетевой блок.", "features": [ "Добавлен прогресс загрузки ISO", "Добавлены диапазоны портов", "Добавлена диагностика правил проброса" ] }, { "version": "0.3.0", "date": "2026-05-06", "title": "VPS NAT Router", "summary": "Добавлена NAT-сеть virtuality-nat для VPS.", "features": [ "Добавлена virtuality-nat / virbr100", "Добавлен DNAT/MASQUERADE", "Добавлены UFW и iptables fallback" ] }, { "version": "0.2.0", "date": "2026-05-06", "title": "noVNC console and VM operations", "summary": "Добавлена web-консоль VM и журнал операций.", "features": [ "Добавлена noVNC-консоль VM", "Добавлен журнал операций", "Добавлен live log virt-install" ] }, { "version": "0.1.0", "date": "2026-05-06", "title": "Initial Virtuality panel", "summary": "Базовая web-панель Virtuality.", "features": [ "Авторизация через Linux-пользователя", "Дашборд хоста", "Создание VM", "ISO-менеджер" ] } ] }