Служебная учётка почты vmail больше не предлагается владельцем сайта.
1.0.2.20261106140527
Подсказка про перенос домена на сервер показывает настоящие серверы имён зоны, а если зоны ещё нет - пример ns1.example.com.
1.0.2.20261106121902
Лицензии и обновления теперь работают через домен towerpanel.com, обновления скачиваются по HTTPS. Панель переходит на новый адрес сама.
1.0.2.20261106093949
Панель теперь называется TowerPanel, новый адрес проекта - towerpanel.com. Настройки, лицензии и работа сайтов не меняются.
1.0.2.20261104182534
Панель и установщик не ходят по перенаправлениям сервера обновлений и не скачивают архив больше 64 МБ
Установщик: при сбое запускает службы панели снова и заменяет файлы разом; адрес --server проверяется
Замена бинарников и файлов лицензии переживает сбой питания
Резервный ключ связи с сервером лицензий: сервер можно перевести на него без нового релиза
1.0.2.20261104161043
Обновление панели проверяется строже: связь демонов, версия и ещё полторы минуты после запуска; неудачный откат теперь виден в колокольчике
Лицензия: после оплаты в последний день панель спрашивает сервер лицензий каждый час, неудачный ввод ключа не снимает льготный период, раздел не подвисает на проверке
Без лицензии нельзя создать базу MongoDB импортом и восстановить копию другого сервера; права выдаются только на существующие базы
1.0.2.20261104153606
Лицензия подтверждается раз в сутки и действует неделю; без связи с сервером лицензий тариф сохраняется ещё неделю, раздел показывает оплаченный срок
Тестовый период теперь один на машину: переустановка панели нового не даёт
Ссылка в личный кабинет подписана ключом панели: привязать покупку можно только к своему серверу
1.0.2.20261104143513
Обновления: подпись каждого файла релиза теперь действует только для него самого - защита канала обновлений усилена
Без лицензии больше нельзя создать почтовый ящик или запустить сборку проекта compose
1.0.2.20261104115546
Docker: официальные образы Docker Hub (nginx, mysql и другие) доступны пользователям как обычно, даже если администратор вошёл в Docker Hub
1.0.2.20261104113855
IP-адреса: столбец “Сайты” и метка SLAAC; входы по SSH: неверный пароль считается один раз, сбой чтения журнала виден; смена имени хоста сохраняет псевдонимы в /etc/hosts
1.0.2.20261104113205
IP-адреса: главный адрес нельзя удалить или поставить чужой, при удалении адреса панель предупреждает о записях DNS на него
Входы по SSH: адрес входа можно заблокировать прямо с вкладки “Входы”; отметка “Знаю” на одном входе не скрывает другие
1.0.2.20261104102941
IP-адреса: дополнительный адрес с неподходящей маской больше не перехватывает маршрут, алиасы после перезагрузки поднимаются сами, неподнятый алиас виден и не мешает остальным
Внешний адрес NAT - только IPv4: адрес IPv6 там ломал FTP
Входы по SSH: предупреждение о входе root с нового адреса больше не теряется среди частых входов автоматики, повторные входы показаны одной строкой
1.0.2.20261104091315
Защита от внедрения чужого кода в страницы панели: строгая политика CSP, файлы WebDisk больше не открываются как страницы панели
1.0.2.20261104084057
SSL: выпуск не начинается, если часы сервера сильно расходятся с центром; автопродление сертификата пользователя видно в его журнале операций
Webhook Git больше не запускает деплой на звёздах, задачах и запросах на слияние; поддержан push из Bitbucket Cloud
Установка приложений: большие архивы скачиваются и на медленном канале; контейнер с каталогом сервера, переданный пользователю, можно менять
1.0.2.20261104082217
“Отозвать и выпустить замену” сначала выпускает новый сертификат и отзывает прежний только после него; сбой применения выпущенного сертификата теперь виден как ошибка
Пользователь подключает к своему сайту только свой сертификат; свой сертификат администратора на месте Let's Encrypt больше не заменяется автопродлением
Docker: тома проектов compose видны и удаляются владельцем, частные образы администратора пользователям не видны и не достаются без своего входа в реестр
Webhook Git не запускает деплой у заблокированного владельца и приостановленного сайта; сайт нельзя удалить во время деплоя; wsDoctor сообщает об обновлениях Ghost
1.0.2.20261104075616
Каталог данных панели защищён от подмены: веб-часть больше не может переименовать каталоги, с которыми работает root
“Заменить” сертификат и сертификат к CSR сразу применяются на сайтах, почте и FTP; CSR к рабочему сертификату больше не ломает его ключ
Автопродление Let's Encrypt продлевает все подошедшие сертификаты за раз; тестовый центр выпускает под именем “-test” и не затирает рабочий
Docker: строже проверка compose-файлов пользователей, лимиты памяти и процессора не выше ресурсов сервера, у сайтов с похожими именами больше нет общих томов
Установщик приложений не очищает сайт, пока проверки и скачивание не прошли; деплои из Git идут по очереди
1.0.2.20261103223809
Уведомления панели по почте снова подписываются DKIM (Postfix); с Exim - подсказка в настройках уведомлений, как включить подпись через ящик
1.0.2.20261103213957
Почта: подпись DKIM ставится только письмам, отправленным с логином ящика; письма mail() из PHP уходят без подписи - сайтам лучше отправлять через SMTP с ящиком (WP Mail SMTP и подобные)
1.0.2.20261103201130
Резервные копии: непрочитанные файлы видны в итоге копии предупреждением
DNS: ключ DKIM в кавычках или скобках записывается в зону верно; адрес администратора с точкой (john.doe@) сохраняется
Почта: автоответ сразу работает для новых псевдонимов ящика
1.0.2.20261103195907
Почта: своя запись DMARC (p=reject и т. п.) больше не заменяется при сохранении домена; смена почтового сервера сначала отправляет очередь писем
DNS: окно записей не стирает записи, появившиеся, пока оно было открыто; зона поддомена на этом сервере делегируется в родительской; файлы зон закрыты от других пользователей сервера
DNS: удаление подписанной зоны предупреждает о DS у регистратора и сохраняет её ключи
Базы данных: в экспорт и резервную копию попадают события (задания по расписанию) MySQL
1.0.2.20261103190909
Почта: ящик отправляет письма только от своих адресов и псевдонимов, пароль ящика принимается только по шифрованному соединению (почтовые программы без шифрования перестанут входить)
Почта: одновременные правки ящиков больше не теряются, письма удалённого домена не достаются новому владельцу того же домена
DNS: “Создать домен” не перезаписывает существующую зону; удаление зоны не трогает записи в Cloudflare; переезд сервера сохраняет подпись DNSSEC
Базы данных: восстановление PostgreSQL поверх не оставляет пустую базу при сбое; проверка и восстановление таблиц больших баз не обрываются
Резервные копии: база с необычным именем больше не мешает копии и очистке старых копий
1.0.2.20261103170528
График ресурсов на дашборде больше не теряет минуты и не показывает выбросы после перевода часов
“Информация о системе” удобно читается на телефоне
Уведомления, накопленные в тихие часы, приходят и после перезапуска панели
CRON: “Выполнить сейчас” запускает задание с теми же группами, что и по расписанию
1.0.2.20261103165703
Перезагрузка сервера предупреждает об идущих операциях
Дашборд: разделы на LVM и RAID, IPv6 и трафик через bond показываются верно
Уведомления: повторная проблема снова приходит в каналы, “снова здоров” - только после сообщения о проблеме, письма доходят до Gmail при Exim
Сайты: пароль на каталог действует по всем именам сайта, сайт, приостановленный root, владелец не включает, домены с национальными буквами принимаются
CRON: задание с @daily и другими сокращениями открывается в форме верно; смена часового пояса сразу действует на задания
1.0.2.20261103154229
Сайты: пароль на каталог действует и по HTTP, первый сайт пользователя создаётся, сохранение настроек не сбрасывает пул PHP, удаление файлов не задевает другой сайт
CRON: одно неверное расписание больше не отключает задания всех пользователей
После перехода на Ubuntu 26.04 панель показывает и использует новую версию PHP сайтов
wsDoctor проверяет SMART жёстких дисков в фоне, не будя спящие
1.0.2.20261103132117
WebDisk: оборванная загрузка больше не записывает обрезанный файл поверх прежнего
Файловый менеджер: не больше трёх долгих операций одновременно, распаковка проверяет свободное место, домашний каталог пользователя защищён от смены владельца и прав
Целостность файлов: видны подмена файла ссылкой и PHP в каталогах зависимостей; сайт, который не проверяется, - сигнал wsDoctor
1.0.2.20261103125416
Файловый менеджер: распаковывается простой .gz (dump.sql.gz), копируются и удаляются каталоги только для чтения, перемещение не теряет особые файлы
Журналы: в строках не показываются управляющие символы из запросов посетителей; у root всегда есть место для журнала в реальном времени
1.0.2.20261103122502
Файловый менеджер: root, работая в каталоге пользователя, не выходит по ссылкам за его пределы; распаковка не меняет владельца прежних файлов; “Упаковать и удалить” не удаляет то, что не попало в архив
Журналы сайтов закрыты от других пользователей сервера; большие архивы журналов и записи журнала служб больше не перегружают панель
Антивирус и контроль целостности не зависают на подложенных файлах и глубоких каталогах; у карантина есть предел числа файлов
1.0.2.20261103115021
Cloudflare Tunnel: туннель ходит в Nginx через закрытый сокет, и адрес посетителя больше не подделать с самого сервера
1.0.2.20261103102155
Fail2ban: текст из веб-почты и кода сайтов больше не может подставить чужой адрес в правила; журнал веб-почты - в журнале systemd
Журналы сайтов: ошибки PHP - в отдельном журнале “PHP - ошибки”, а не в журнале Nginx
1.0.2.20261103085917
Администраторы панели больше не меняют учётки root и других администраторов; root “с правами владельца” не меняет его пароль, 2FA, ключи и адреса входа
Перебор кодов 2FA ограничен и для учётки: 10 неверных кодов за 15 минут
Правка “Ротации журналов” сайта проверяется перед сохранением; перезапуск MariaDB и Apache из “Служб” не обрывается по времени
1.0.2.20261103083826
Процессы: пользователь видит только свои процессы; “Службы” не запускают выключение и перезагрузку сервера и не перезапускают wsp-root посреди задачи
Безопасность: ключ API не меняет защиту панели и отзывается при сбросе пароля и 2FA; “доверенный браузер” 2FA действует только в своей сети
Смена имени сервера правит и /etc/hosts, копии этого сервера после неё не считаются чужими
Настройки сайтов: правка конфига со сменой адресов применяется, сбой не оставляет Nginx или PHP остановленными, пересборка адресов сохраняется в истории конфигов
1.0.2.20261103080758
Fail2ban: правило “Вход в панель” больше не обмануть подставным именем в соединении - чужой адрес им не забанить; отвергнутые настройки Fail2ban не остаются на диске
Пользователи: базы и почтовые домены удалённого пользователя становятся свободными - новый пользователь с тем же именем их не получает
Apache: сайты пользователей - только с вариантом MPM-ITK (при Prefork все сайты Apache видят файлы друг друга), о прежних - сигнал wsDoctor
Ключ API “только чтение” и запросы HEAD больше ничего не меняют
1.0.2.20261103004308
Переезд сервера: базы, зоны, учётки MySQL и каталоги сайтов, которые уже есть на этом сервере, не перезаписываются
Установщик приложений: неподходящий пароль учётки базы - отказ до начала установки; база, созданная до сбоя, видна владельцу сайта
1.0.2.20261103002554
Уведомления: вход в панель с нового устройства приходит сразу и в тихие часы
Терминал: закрывается сам, если браузер пропал без закрытия соединения
Cloudflare: если режим SSL не удалось сменить во всех зонах, уже переключённые возвращаются обратно
1.0.2.20261102233024
Переезд сервера: файлы сайтов и почты ставятся на место безопаснее, файлы с неизвестным владельцем получает владелец сайта
1.0.2.20261102232117
Безопасность: клон сайта и установка приложений работают с правами владельца сайта
Вход в панель: сессия действует только из сети, где был вход; одновременные попытки входа с одного адреса идут по очереди
Уведомления: длинные сообщения обрезаются под предел Telegram и Discord; ночная сводка не теряется, если утром нет связи
1.0.2.20261102220052
Конфигурация ПО: прерванная установка пакетов доделывается и перед удалением, обновлением, расширениями PHP и сменой источников
Уведомления: после удаления и обновления ПО - что именно изменилось; “Отложить” у root не скрывает сигналы владельцев сайтов
1.0.2.20261102214857
Конфигурация ПО: ключ стороннего репозитория принимается, только если он настоящий ключ производителя
Источники пакетов: смена зеркала больше не откатывается из-за сломанного стороннего источника
Cloudflare: новая настройка “Домены пользователей” - домены, которые пользователи завели сами, в аккаунте Cloudflare не трогаются без неё
Установка ПО: “Будет снято” показывает всё, что снимется
1.0.2.20261102210241
Лицензия: действует только на своём сервере, перевод часов назад её не продлевает
Обновления: номер новой версии и “Что нового” подписаны, установщик не откатывает панель на старую версию
1.0.2.20261102200916
Обновление Ghost работает с правами владельца сайта, копия базы - в закрытом каталоге
Конфигурация ПО: смену версии нельзя прервать посередине, две операции не запускаются одновременно, “Обновить” не обрывается на медленном сервере