Files
virtuality/updates/versions.json
T
viktor c04e5285e7
CI / Tests (Python 3.11) (push) Canceled after 0s
CI / Tests (Python 3.12) (push) Canceled after 0s
CI / Tests (Python 3.13) (push) Canceled after 0s
CI / Tests (Python 3.14) (push) Canceled after 0s
CI / Shell scripts (push) Canceled after 0s
Build ISO image / ISO ${{ fromJSON(github.event_name == 'workflow_dispatch' && (inputs.arch == 'both' && '["amd64","arm64"]' || format('["{0}"]', inputs.arch)) || '["amd64","arm64"]') }} (push) Canceled after 0s
Версия была обновлена до 0.12.7
2026-09-27 21:24:19 +09:00

322 строки
33 KiB
JSON
Исходник Ответственный История

Этот файл содержит неоднозначные символы Юникода
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"versions": [
{
"version": "0.12.7",
"date": "2026-09-27",
"title": "Тип Windows выбирается сам по установочному образу",
"summary": "Если в форме создания машины выбран установщик Windows, панель узнаёт его по метке образа и имени файла и сама ставит тип Windows. Раньше по умолчанию оставался Linux, диск подключался как virtio, и установщик Windows его не видел.",
"features": [
"Установщик Windows 10, 11 и Server узнаётся по установочному образу, тип системы выбирается сам",
"Выбор можно поменять вручную, панель его больше не перебивает",
"Версия обновлена до 0.12.7"
]
},
{
"version": "0.12.6",
"date": "2026-09-27",
"title": "Установочные образы больше не пропадают при удалении машины",
"summary": "При удалении машины вместе с ней удалялся и вставленный в её привод установочный ISO, поэтому загруженные образы исчезали. Теперь удаляются только диски самой машины, а образы остаются для следующих установок, как в Proxmox.",
"features": [
"Удаление машины больше не удаляет установочный ISO из её привода",
"Удаляются только диски машины из папки машин, диски в других местах остаются, панель называет их в сообщении",
"То же при восстановлении из копии с заменой машины",
"Версия обновлена до 0.12.6"
]
},
{
"version": "0.12.5",
"date": "2026-09-27",
"title": "Удаление машины в любом состоянии",
"summary": "Пункт «Удалить машину» теперь есть всегда, а не только у выключенной машины. Работающую или приостановленную машину панель сначала выключит, а подтверждение честно об этом предупреждает. Вместе с машиной удаляются её пробросы портов.",
"features": [
"«Удалить машину» доступно в меню машины и в списке машин при любом состоянии",
"Работающая или приостановленная машина перед удалением выключается",
"Пока с машиной идёт копия, клон или другая задача, удалить её нельзя: панель просит дождаться завершения",
"Вместе с машиной удаляются её пробросы портов, чтобы они не вели на адрес, который достанется другой машине",
"Версия обновлена до 0.12.5"
]
},
{
"version": "0.12.4",
"date": "2026-09-27",
"title": "Машина с установочного образа после установки перезагружается сама",
"summary": "Раньше машина, созданная с ISO, после установки системы выключалась вместо перезагрузки, а при следующем запуске снова загружалась с установочного образа. Теперь она создаётся сразу в рабочем виде, диск стоит первым в порядке загрузки, и после установки машина перезагружается уже в установленную систему.",
"features": [
"После установки с ISO машина перезагружается сама, а не выключается",
"Для машин с ISO диск стоит первым в порядке загрузки: пока он пустой, машина загружается с образа, а после установки с диска и повторно в установщик не попадает",
"Версия обновлена до 0.12.4"
]
},
{
"version": "0.12.3",
"date": "2026-09-27",
"title": "Экран машины снова подключается",
"summary": "На Ubuntu 26.04 экран машины в браузере не подключался: новая версия noVNC обращалась не по тому адресу. Теперь экран работает и с новой, и со старой версией noVNC.",
"features": [
"Экран машины в браузере подключается на Ubuntu 26.04 и Debian 13 (noVNC 1.6), как и на Ubuntu 24.04 (noVNC 1.3)",
"Версия обновлена до 0.12.3"
]
},
{
"version": "0.12.2",
"date": "2026-09-27",
"title": "Понятный итог, если машину создать не удалось",
"summary": "Если создание машины сорвалось, панель больше не предлагает открыть экран несуществующей машины. Она пишет, что на сервере от неё ничего не осталось, и даёт кнопку «Создать заново» с тем же образом. Недосозданный диск удаляется сам, поэтому то же название можно использовать сразу.",
"features": [
"Кнопки «Открыть экран машины» и «Перейти к машине» появляются только после успешного создания",
"После неудачного создания: кнопка «Создать заново» с тем же установочным или готовым образом",
"Недосозданный диск удаляется сам, повторное создание под тем же названием больше не упирается в «Диск уже существует»",
"Версия обновлена до 0.12.2"
]
},
{
"version": "0.12.1",
"date": "2026-09-27",
"title": "Понятное предупреждение, когда диск машины больше свободного места",
"summary": "Если диск новой машины больше, чем свободно на сервере, панель больше не запускает установку, которая падала с ошибкой на английском. Она объясняет, в чём риск, и создаёт такую машину только после подтверждения: диск занимает место постепенно, по мере заполнения.",
"features": [
"В шаге «Мощность» видно, сколько места свободно на сервере",
"Диск больше свободного места создаётся только с подтверждением, раньше установка падала с ошибкой virt-install",
"Версия обновлена до 0.12.1"
]
},
{
"version": "0.12.0",
"date": "2026-09-27",
"title": "Резервные копии по расписанию",
"summary": "Сервер сам копирует машины каждый день или раз в неделю в выбранное время и хранит только последние копии, чтобы они не заняли весь диск. Копии делает отдельная служба сервера, поэтому ночное обновление панели их не прерывает. Исправлена загрузка ISO и образов дисков с компьютера.",
"features": [
"Загрузка ISO и образов дисков с компьютера снова работает: браузер отправлял пустой запрос, и сервер отвечал ошибкой 422",
"Расписание копий: каждый день или в выбранный день недели, время, все машины или только отмеченные",
"Сервер хранит последние N копий по расписанию для каждой машины и удаляет старые только после удачной новой",
"Копии, сделанные вручную, расписание не удаляет",
"Если сервер был выключен в назначенное время, копия делается в течение двух часов после включения, иначе в следующий раз",
"На странице «Резервные копии» видно следующую копию и итог последнего запуска по каждой машине",
"Перезапуск панели больше не объявляет прерванными задачи, которые ведёт служба копий",
"Установочный образ не собирается с именем администратора, которое запрещает установщик Ubuntu (admin, root, kvm)",
"Версия обновлена до 0.12.0"
]
},
{
"version": "0.11.1",
"date": "2026-09-27",
"title": "Переезд обновлений на git.stackworks.ru",
"summary": "Проект переехал с GitHub на собственный сервер git.stackworks.ru, и обновления теперь приходят оттуда. Сервер, который до сих пор получал обновления с GitHub, переключится на новый адрес сам при следующей проверке. Заодно исправлена редкая ошибка резервных копий: машина могла снова запуститься, хотя её только что выключили вручную.",
"features": [
"Обновления, установка одной командой и установочный ISO берут код с git.stackworks.ru",
"Сервер со старым адресом GitHub сам переключается на новый при проверке обновлений",
"Запасное обновление архивом ZIP скачивается с того же адреса, откуда сервер получает обновления",
"Резервные копии: если машину выключили вручную, пока панель ждала её выключения, панель больше не запускает её снова",
"Версия обновлена до 0.11.1"
]
},
{
"version": "0.11.0",
"date": "2026-09-25",
"title": "Мастер настройки, снимки, резервные копии и быстрые машины из готовых образов",
"summary": "Virtuality стала полноценной заменой Proxmox для дома: после установки с ISO панель открывается сразу, а мастер настройки проводит через HTTPS, пароль, сеть машин, хранилище и обновления. Добавлены снимки, резервные копии, клонирование, увеличение диска, спящий режим, скачивание образов по ссылке и из каталога, создание машины из облачного образа с пользователем и паролем, установка Windows 11 с UEFI и TPM. Исправлено больше двадцати ошибок, найденных аудитом.",
"features": [
"Мастер первичной настройки: часовой пояс, пароль, HTTPS, сеть NAT или локальная сеть (с автооткатом), отдельный диск под машины, обновления",
"Первая загрузка образа: панель ставится первой и показывает ход установки в браузере; при ошибке установка продолжается сама",
"Страница «Настройки»: всё то же, что в мастере, плюс перезагрузка и выключение сервера, архив настроек, отчёт для поддержки",
"HTTPS для панели с сертификатом сервера и перенаправлением с обычного адреса",
"Снимки машин: создать, вернуться, удалить — до 8 на машину",
"Резервные копии машин: создание, восстановление в новую или ту же машину, удаление",
"Клонирование, увеличение диска, пауза и спящий режим, заметки, живая нагрузка процессора и памяти",
"Скачивание ISO и образов по ссылке и из каталога: Ubuntu 26.04/24.04, Debian 13, Alpine — с проверкой контрольных сумм",
"Машина из готового образа за минуту: пользователь, пароль и SSH-ключ через cloud-init, диск нужного размера",
"Тип системы при установке с ISO: Linux, Windows 11 (UEFI + TPM), Windows 10, другая",
"Постоянный адрес машины в сети NAT — пробросы портов не ломаются после перезагрузки",
"Стабильный канал обновлений: только выпущенные версии; ранний доступ — по желанию",
"Консоль машин доступна только через панель: VNC больше не открыт в сеть",
"Операции, прерванные перезапуском панели, больше не блокируют машину",
"Исправлены: формат облачных образов .img, CD-ROM, удаление UEFI-машин, правила firewall удалённых пробросов, русская локаль virsh, чужой IP у остановленных машин",
"Убраны Cockpit, консольный dashboard, эмуляция ARM64 на x86, загрузка по PXE и устаревшие скрипты",
"Команда virtuality-ctl: статус, настройки, пароль, часовой пояс, мост, диск, резервная копия настроек, откат, удаление",
"Версия обновлена до 0.11.0"
]
},
{
"version": "0.10.0",
"date": "2026-09-25",
"title": "Новый интерфейс, установочный образ и подготовка к продакшену",
"summary": "Панель полностью перерисована: светлая и тёмная темы, понятный русский язык вместо технических терминов, мастер создания машины из трёх шагов, открытие доступа из интернета в пару кликов. Добавлен установочный ISO-образ Virtuality на базе Ubuntu Server 26.04 LTS. Исправлены ошибки создания VM, автозапуска и обновлений, усилена безопасность.",
"features": [
"Новый дизайн панели: светлая и тёмная темы, адаптивная вёрстка для телефона",
"Главная страница: загрузка процессора, памяти и хранилища, карточки машин с быстрыми действиями",
"Мастер создания машины: готовые конфигурации «Мини», «Стандарт», «Мощная»",
"Страница машины: вкладки, переключатель автозапуска, порядок загрузки кнопками",
"Раздел «Сеть и доступ»: открытие SSH, сайта, RDP и других сервисов из списка",
"Загрузка образов перетаскиванием с прогрессом, скоростью и оставшимся временем",
"Подтверждения опасных действий и уведомления о результате",
"Раздел «Помощь» с инструкциями для частых задач",
"Установочный ISO на базе Ubuntu Server 26.04 LTS: image/build-iso.sh",
"Установщик ноды работает на Ubuntu 24.04, 26.04 и Debian 13",
"Исправлено падение создания VM из-за отсутствующего импорта platform",
"Исправлено: центр обновлений и автообновление предлагали откат на старую версию",
"Проверка пароля работает на Python 3.13+ без модулей crypt и spwd",
"Ограничение попыток входа, срок жизни сессии, защита от cross-origin POST",
"Правила проброса портов восстанавливаются после перезагрузки сервера",
"Настройки ноды сохраняются в /var/lib/virtuality/config/web.env и не сбрасываются обновлением",
"Публичный /healthz для мониторинга, автотесты и GitHub Actions",
"Версия обновлена до 0.10.0"
]
},
{
"version": "0.8.61",
"date": "2026-05-07",
"title": "Защита загрузки файлов была усилена",
"summary": "Для ISO и образов дисков сохранена AJAX-загрузка файлов с прогресс-баром, проверкой расширений, отменой загрузки и защитой от случайного перехода во время активной передачи файла. При этом общая AJAX-навигация панели остаётся отключённой для стабильности.",
"features": [
"ISO-загрузка сохранила XMLHttpRequest-прогресс без возврата AJAX-навигации страниц",
"Загрузка образов дисков сохранила XMLHttpRequest-прогресс и polling конвертации",
"Добавлено предупреждение beforeunload при попытке закрыть или обновить страницу во время загрузки",
"Добавлена блокировка переходов по меню, ссылкам и другим submit-кнопкам во время активной загрузки",
"Для ISO добавлен отдельный блок ошибки неправильного файла",
"Для дисков усилено состояние активной загрузки и конвертации",
"Версия обновлена до 0.8.61"
]
},
{
"version": "0.8.60",
"date": "2026-05-07",
"title": "AJAX-навигация панели была отключена",
"summary": "Панель была переведена в стабильный режим обычной навигации: panel.js больше не перехватывает переходы по ссылкам и POST-формы. AJAX оставлен только для безопасных фоновых функций: раскрытие меню, мобильное меню, обновление фрагментов и live-status.",
"features": [
"Убран перехват кликов по ссылкам для AJAX-подмены страниц",
"Убран перехват POST-форм для AJAX-submit",
"Удалена логика swapPage/ajaxNavigate из panel.js",
"Скрипты страниц снова выполняются через нормальную загрузку документа",
"Снижена нестабильность из-за смешанного full-load/AJAX режима",
"Оставлены безопасные фоновые функции: nav groups, mobile menu, refreshFragments, live-status и toasts",
"Версия обновлена до 0.8.60"
]
},
{
"version": "0.8.59",
"date": "2026-05-07",
"title": "Раскрытие блока Образы было восстановлено",
"summary": "На странице базы знаний был подключён /static/panel.js, чтобы раскрывающийся блок Образы снова работал по клику. Группа Образы не открыта принудительно, но корректно раскрывается через свою кнопку.",
"features": [
"web/static/knowledge.html снова подключает /static/panel.js",
"Блок Образы раскрывается по клику на свою кнопку",
"При открытии Базы знаний Образы не раскрываются принудительно",
"Версия блока базы знаний обновлена до 0.8.59",
"Версия проекта обновлена до 0.8.59"
]
},
{
"version": "0.8.58",
"date": "2026-05-07",
"title": "Меню базы знаний было исправлено",
"summary": "На статической странице базы знаний была убрана принудительная раскрытость группы Образы. Теперь при открытии Базы знаний меню Образы не раскрывается само по себе, а нижний пункт База знаний остаётся активным.",
"features": [
"В web/static/knowledge.html удалён класс open у группы Образы",
"Активным оставлен только пункт База знаний",
"Версия блока базы знаний обновлена до 0.8.58",
"Версия проекта обновлена до 0.8.58"
]
},
{
"version": "0.8.57",
"date": "2026-05-07",
"title": "Меню было централизовано на основных страницах",
"summary": "Главная страница, создание VM и карточка VM были переведены на общий шаблон меню _sidebar.html. Это устранило ситуацию, когда пункт База знаний был добавлен в общий шаблон, но не появлялся на страницах со старым зашитым aside.",
"features": [
"dashboard.html теперь подключает общее меню через _sidebar.html",
"vm_create.html теперь подключает общее меню через _sidebar.html",
"vm_detail.html теперь подключает общее меню через _sidebar.html",
"Пункт База знаний теперь должен появляться на главной, создании VM и карточке VM",
"Закреплено правило: меню правится только в web/templates/_sidebar.html, без отдельных копий в страницах",
"Версия обновлена до 0.8.57"
]
},
{
"version": "0.8.56",
"date": "2026-05-07",
"title": "База знаний была добавлена в панель",
"summary": "В главное меню Virtuality в самый низ был добавлен пункт База знаний. Раздел был первично наполнен документацией по SSL-ready подходу, Let’s Encrypt, bridge/NAT пробросам, ключевым директориям, обновлению панели и диагностике сети.",
"features": [
"В левое меню добавлен пункт База знаний в нижней части навигации",
"Добавлена статическая страница /static/knowledge.html с первым набором документации",
"В базу знаний внесён чек-лист SSL-ready by default для Let’s Encrypt",
"Описаны варианты проброса для bridge VM и NAT VM",
"Добавлены ключевые директории Virtuality и команды обновления",
"Добавлены быстрые команды диагностики хоста, VM и сетевого проброса",
"Добавлены стили для нижнего пункта меню и карточек базы знаний",
"Версия обновлена до 0.8.56"
]
},
{
"version": "0.8.55",
"date": "2026-05-07",
"title": "Проброс портов для bridge VM был добавлен",
"summary": "Сетевой патч был расширен для VM в bridge/static сетях: правила теперь определяют интерфейс до IP VM через ip route get и используют его вместо жёсткой привязки к virbr100. Это позволяет пробрасывать порты на VM, подключённые к br0, например fastpanel с IP 10.0.0.152.",
"features": [
"Добавлен патч patch_network_bridge_forwards.py",
"Установщик теперь применяет bridge/static VM patch после патча диапазонов портов",
"nftables DNAT теперь добавляет FORWARD/MASQUERADE правила для фактического интерфейса VM",
"iptables fallback теперь использует интерфейс маршрута к guest_ip вместо постоянного virbr100",
"Команда диагностики tcpdump теперь подставляет реальный интерфейс до VM",
"Версия обновлена до 0.8.55"
]
},
{
"version": "0.8.54",
"date": "2026-05-07",
"title": "Ручной IP VM был добавлен в проброс портов",
"summary": "На странице Сеть скрытое значение guest_ip=auto было заменено на видимое поле IP VM. Теперь при пустых DHCP leases, статическом IP внутри VM, bridge-сети или отсутствии qemu-guest-agent можно вручную указать внутренний IP и создать проброс без блокировки автоопределением.",
"features": [
"В форме добавления проброса портов появилось поле IP VM",
"Значение auto оставлено по умолчанию для обычного DHCP/qemu-guest-agent сценария",
"Ручной внутренний IP VM теперь можно указать прямо при создании DNAT-правила",
"Подсказки DHCP leases были уточнены для bridge/static VM и готовых образов",
"Версия обновлена до 0.8.54"
]
},
{
"version": "0.8.53",
"date": "2026-05-07",
"title": "Проброс диапазонов портов был усилен",
"summary": "Патч сетевых диапазонов был усилен: форма проброса теперь принимает диапазоны как текст, iptables DNAT использует корректный синтаксис диапазона назначения, а применение правил не падает сразу при сбое nftables, если iptables fallback смог поставить правила.",
"features": [
"Обработчик /network/forward/add был исправлен для приёма диапазонов портов как строки",
"iptables DNAT для диапазонов теперь формирует назначение вида IP:10000-20000 вместо ошибочного IP:10000:20000",
"apply_port_forwards теперь пробует UFW и iptables fallback даже если nftables не применился",
"Ошибки применения правил теперь собираются в более понятное сообщение",
"Версия обновлена до 0.8.53"
]
},
{
"version": "0.8.52",
"date": "2026-05-07",
"title": "Страница сети была переведена на единое меню",
"summary": "Раздел Сеть был переведён со старого shell-каркаса на общий v-layout/v-main с подключением _sidebar.html, чтобы после F5 левое меню не пропадало.",
"features": [
"Страница network.html была переведена на общий v-layout/v-main каркас",
"Раздел Сеть теперь подключает единое меню через _sidebar.html",
"panel.js подключён на странице Сеть",
"После F5 левое меню больше не должно пропадать в разделе Сеть",
"Версия обновлена до 0.8.52"
]
},
{
"version": "0.8.51",
"date": "2026-05-07",
"title": "Левое меню было пересобрано централизованно",
"summary": "Левое меню было вынесено в единый шаблон _sidebar.html и подключено к страницам ISO, Диски, Операции и Хост. Установщик теперь финально восстанавливает основные канонические шаблоны панели после патчеров.",
"features": [
"Общее меню _sidebar.html было пересобрано",
"Страница ISO была переведена на общий v-layout/v-main каркас",
"Страница Диски была переведена на общий v-layout/v-main каркас",
"Страница Операции была переведена на общий v-layout/v-main каркас",
"Страница Хост была переведена на общий v-layout/v-main каркас",
"Прогресс-бар был убран из таблицы операций",
"install_web_panel.sh теперь восстанавливает основные канонические шаблоны панели после патчеров",
"После F5 левое меню больше не должно пропадать на ISO, Диски, Операции и Хост",
"Версия обновлена до 0.8.51"
]
}
]
}