Первая загрузка образа переписана: панель ставится первой, прогресс виден в мастере

- 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
Этот коммит содержится в:
Claude
2026-09-25 14:50:16 +00:00
родитель 9cf8c3e4b7
Коммит 55f7d971f6
18 изменённых файлов: 351 добавлений и 1351 удалений
+5 -3
Просмотреть файл
@@ -30,7 +30,7 @@ PASSWORD_HASH=""
HOSTNAME_VALUE="virtuality"
LOCALE="en_US.UTF-8"
KEYBOARD="us"
TIMEZONE="Etc/UTC"
TIMEZONE="geoip"
WITH_WHEELS="1"
TARGET_PYTHON=""
@@ -50,7 +50,7 @@ Options:
--no-auto-update Disable the nightly GitHub auto-update on installed nodes
--locale LOCALE Installer/system locale (default: ${LOCALE})
--keyboard LAYOUT Keyboard layout (default: ${KEYBOARD})
--timezone TZ System timezone (default: ${TIMEZONE})
--timezone TZ System timezone (default: ${TIMEZONE} — detected by the installer; the wizard can change it)
--no-wheels Do not bundle Python wheels (first boot downloads them from PyPI)
Unattended mode (no questions at all, ERASES THE LARGEST DISK):
@@ -157,8 +157,10 @@ if [[ "$WITH_WHEELS" == "1" ]]; then
for glibc_minor in 17 28 31 34 35 39; do
platform_args+=(--platform "manylinux_2_${glibc_minor}_${PY_PLATFORM_ARCH}")
done
# pip itself is bundled as well: Ubuntu Server has no python3-venv, the panel
# installer bootstraps pip from this wheel into a --without-pip virtualenv.
python3 -m pip download --quiet --disable-pip-version-check \
-r "${PAYLOAD}/source/web/requirements.txt" -d "${PAYLOAD}/source/wheels" \
-r "${PAYLOAD}/source/web/requirements.txt" pip -d "${PAYLOAD}/source/wheels" \
--only-binary=:all: --implementation cp --python-version "$TARGET_PYTHON" \
--abi "cp${TARGET_PYTHON/./}" --abi abi3 --abi none "${platform_args[@]}"
fi