Proxmox No Valid Subscription: как убрать предупреждение о лицензии

Окно No valid subscription появляется при каждом входе в веб-интерфейс Proxmox VE без активной коммерческой подписки и блокирует работу с панелью до нажатия кнопки OK. Сообщение не является ошибкой: гипервизор полностью функционален, а предупреждение лишь напоминает об отсутствии оплаченной лицензии. Убрать его можно легально — это не нарушает условия использования, поскольку Proxmox VE распространяется под свободной лицензией AGPLv3.

В этой статье разберём два аспекта проблемы: как отключить само всплывающее окно в веб-интерфейсе и как перенастроить репозитории, чтобы система получала обновления без подписки. Оба действия выполняются через консоль и занимают несколько минут.

Что означает сообщение No Valid Subscription

Уведомление You do not have a valid subscription for this server встроено в веб-интерфейс и проверяется при каждой авторизации. Скрипт интерфейса запрашивает статус подписки у сервера, и если лицензионный ключ не загружен, показывает модальное окно.

Важно понимать, что отсутствие подписки влияет только на три вещи: доступ к стабильному enterprise-репозиторию обновлений, техническую поддержку от разработчиков и само это окно. Функциональность виртуальных машин, контейнеров, кластеров и бэкапов ничем не ограничена.

Поэтому задача сводится к двум независимым действиям: убрать визуальное напоминание и переключить источники пакетов на бесплатный репозиторий pve-no-subscription.

Как убрать всплывающее окно через консоль

Окно формируется JavaScript-файлом веб-интерфейса. Чтобы его отключить, нужно отредактировать один файл и перезапустить службу веб-интерфейса. Подключитесь к серверу по SSH или откройте консоль через Shell в веб-панели.

Файл, который отвечает за показ предупреждения, находится по пути /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js. В нём есть проверка статуса подписки: если значение не равно Active, вызывается диалог Ext.Msg.show.

Способ, который чаще всего описывается в сообществе, — заменить вызов диалога на пустую операцию. Выполните команду:

sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

После правки перезапустите службу веб-интерфейса:

systemctl restart pveproxy.service

Затем обновите страницу панели в браузере с очисткой кэша (Ctrl+F5). Окно больше не появится.

☑️ Отключение окна No valid subscription

Выполнено: 0 / 5

⚠️ Внимание: при обновлении пакетов Proxmox файл proxmoxlib.js может быть перезаписан, и окно вернётся. В этом случае команду потребуется выполнить повторно. Опция .bak в sed создаёт резервную копию — не удаляйте её.

Альтернатива: правка вручную через редактор

Если не хочется использовать sed с регулярным выражением, файл можно отредактировать вручную. Откройте его командой nano /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js и найдите строку с текстом No valid subscription — удобно воспользоваться поиском по Ctrl+W.

Найденный блок выглядит как условие: если статус подписки не равен Active, вызывается Ext.Msg.show. Замените условие на заведомо ложное, например измените проверку на if (false), либо закомментируйте вызов диалога. Сохраните файл (Ctrl+O, Enter, Ctrl+X) и перезапустите pveproxy.

Ручной способ предпочтительнее, если версия Proxmox отличается от той, для которой написана sed-команда: структура файла со временем меняется, и шаблон может не сработать.

Настройка репозитория pve-no-subscription

Второй шаг — переключение источников обновлений. По умолчанию активен enterprise-репозиторий, который без ключа подписки возвращает ошибку 401 Unauthorized при попытке обновиться. Его нужно отключить, а вместо него подключить бесплатный репозиторий.

Откройте файл /etc/apt/sources.list.d/pve-enterprise.list и закомментируйте строку с репозиторием, добавив # в начало, или просто удалите файл. Затем добавьте no-subscription репозиторий. Для версий на базе Debian 12 (Proxmox VE 8) команда выглядит так:

echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list

Для других версий имя релиза Debian будет отличаться (например, bullseye для PVE 7), поэтому сверяйтесь с официальной вики Proxmox для вашей версии. После этого выполните:

apt update && apt dist-upgrade

Обновления должны пройти без ошибок авторизации.

📊 Что вы используете в Proxmox без подписки?
Домашняя лаборатория
Тестовый стенд на работе
Продакшен без лицензии
Планирую купить подписку

Сравнение способов убрать предупреждение

Каждый подход имеет свои плюсы и ограничения. Сводная таблица поможет выбрать подходящий вариант.

СпособСложностьПереживает обновленияРиск
Правка proxmoxlib.js через sedНизкаяНет, требует повтораМинимальный, есть бэкап
Ручное редактирование файлаСредняяНетОшибка синтаксиса сломает UI
Покупка подпискиНизкаяДаОтсутствует
Настройка no-subscription репозиторияНизкаяДаМенее стабильные пакеты

Отметим, что репозиторий pve-no-subscription получает пакеты с менее тщательным тестированием, чем enterprise-канал. Для домашних лабораторий это приемлемо, но для критичной инфраструктуры разработчики рекомендуют подписку.

Что делать, если окно появилось снова

Наиболее частая причина возврата окна — обновление пакета proxmox-widget-toolkit, которое перезаписало отредактированный файл. Проверить это просто: откройте proxmoxlib.js и посмотрите, сохранилась ли ваша правка.

Если правка сброшена, повторите sed-команду или ручное редактирование и снова перезапустите pveproxy. Некоторые администраторы автоматизируют это через hook для apt или cron-скрипт, проверяющий наличие изменения после каждого обновления.

Также убедитесь, что вы чистите кэш браузера: старый JavaScript-файл может подгружаться из кэша, создавая впечатление, что правка не сработала, или наоборот — что окно вернулось, хотя файл уже исправлен.

Автоматизация правки после обновлений

Можно создать файл /etc/apt/apt.conf.d/99pve-nag с содержимым: DPkg::Post-Invoke { "sed -Ezi.bak \"s/(Ext.Msg.show\\(\\{\\s+title: gettext\\('No valid sub)/void\\(\\{ \\/\\/\\1/g\" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js || true"; }; — тогда правка будет применяться автоматически после каждого обновления пакетов.

Легальность и безопасность метода

Отключение напоминания не нарушает лицензионное соглашение. Proxmox VE — свободное ПО под AGPLv3, и модификация его кода разрешена. Подписка — это добровольная поддержка разработчиков и доступ к стабильному репозиторию, а не активация продукта.

⚠️ Внимание: сторонние скрипты из непроверенных источников, которые «автоматически всё исправляют», могут содержать вредоносный код. Выполняйте правки только вручную или используйте команды, смысл которых вам понятен.

Если сервер используется в коммерческой среде, рассмотрите покупку подписки: помимо отключения окна она даёт доступ к протестированным обновлениям и поддержке, что снижает риски при эксплуатации.

Часто задаваемые вопросы

Убирает ли отключение окна какие-то функции Proxmox?

Нет. Правка затрагивает только показ модального окна в веб-интерфейсе. Все функции гипервизора — виртуальные машины, контейнеры LXC, кластеры, миграция, резервное копирование — работают в полном объёме.

Почему apt update выдаёт ошибку 401 на pve-enterprise?

Enterprise-репозиторий требует ключ подписки. Закомментируйте его в /etc/apt/sources.list.d/pve-enterprise.list и добавьте репозиторий pve-no-subscription, после чего ошибка исчезнет.

Нужно ли перезагружать сервер после правок?

Нет, достаточно перезапустить службу веб-интерфейса командой systemctl restart pveproxy.service и обновить страницу в браузере с очисткой кэша. Виртуальные машины при этом не затрагиваются.

Окно вернулось после обновления — это нормально?

Да. Обновление пакета proxmox-widget-toolkit перезаписывает отредактированный файл. Повторите правку или настройте автоматическое применение через hook для apt.

Легально ли использовать Proxmox без подписки?

Да. Proxmox VE распространяется под свободной лицензией AGPLv3 и полностью функционален без оплаты. Подписка даёт доступ к enterprise-репозиторию и техподдержке, но не является обязательной.