Что скрывается за VestaCP



    Вряд ли сейчас кому-то может прийти в голову мысль написать свою панель управления сервером: интернет давно прикипел к ISP, cPanel, Plesk и десятку их аналогов. Все «взрослые» панели умеют примерно одно и то же, различаясь лишь интерфейсом, уровнем поддержки и специфическим функционалом. Но 13 лет назад всё было иначе:
    Сейчас уже сложно сказать, когда именно я начал работу над вестой. Если считать первые скрипты добавления виртуальных хостов в апач, то это был 2007 год. Получается 5 лет тому назад. Помню тогда на работе состоялся примерно такой диалог:
    — Ты решил написать свою панель управления?
    — Ага, ведь cPanel это ужас, Plesk хоть и лучше, но сильно дорогой. Да и вообще у меня уже почти все готово
    — Хм… для того чтобы просто приблизиться к сPanel тебе потребуется минимум 2 года
    skid, разработчик Весты

    Что выросло из этой идеи спустя столько лет? Неплохой продукт, популярный среди хостеров (на сайте упоминается 25000 установок в месяц по миру), с активным комьюнити и с большим списком индивидуальных фич. Но как и в любом другом продукте, в процессе использования Весты вылезает довольно много нюансов, незаметных со стороны. Далее мы разберём принципы работы панели, её косяки и сильные стороны.

    Философия


    skid в той же статье описывал свою мотивацию так:
    … обычно панели управления пишутся программистами для вебмастеров, а системные администраторы остаются без внимания. Ну если и участвуют в процессе проектирования, то очевидно, весьма посредственно. В то же самое время, именно системные администраторы работают с панелями управления больше всего. Это был серьезный мотив для старта, но еще большим мотивов послужило отсутсвие GPL аналогов решениям типа Plesk, cPanel и DirectAdmin.

    Изначально это так и работало: был набор скриптов под апач, которые упрощали серверное администрирование, потом появился веб-интерфейс для тех, кому неудобно конфигурировать всё из терминала. Но затем, с развитием интерфейса, фокус сместился на менее подкованных пользователей, UX менялся под принцип «решаем задачу в один клик», а сложная конфигурация должна была остаться как придаток для админов-красноглазиков. В итоге это привело Весту к противоречивому настоящему: в идеальном сценарии она крайне легко устанавливается и используется, не требуя вмешательства в свои внутренние системы. Но как только что-то ломается, или не дай бог, требует новых интеграций, всё удобство начинает стремительно осыпаться. Панель не всегда адекватно работает с разными версиями модулей, требует кропотливой доработки и раскуривания конфигов в любой нестандартной ситуации. А форум (глобальный в этом плане лучше русскоязычного) может содержать больше вредных советов, чем полезных.
    С другой стороны, при нормальном использовании Веста действительно удобна: тестовый сайт я сумел поднять за минут 15, при этом в наличии «из коробки» много нетривиальных плюшек, доступных по клику.

    Установка


    Веста может установиться и нормально работать даже на самом бюджетном сервере — минимальные требования 512 mb RAM/20 Gb HDD/1 Ghz CPU. В зависимости от количества оперативки, она может отключать некритичные модули при установке. Например, самым прожорливым считается антивирусный набор, он устанавливается, если на сервере есть хотя бы 3 Gb RAM. Разумеется, если вас такой компромисс не устраивает, можно кастомизировать установку, подобрав опции вручную или на сайте.
    Кстати, в документации собраны расположения логов для всех сервисов: RHEL/CentOS, Debian/Ubuntu.

    После установки можно не возвращаться к SSH, вся дальнейшая настройка доступна в веб-интерфейсе (8083 порт).

    Шаблоны


    Для доменов доступны шаблоны конфигурации, которые можно настраивать под себя на ходу. Не хватает подсказок, объясняющих предназначение шаблонов, вот раздел в доках.

    Кластер DNS


    Работает из коробки, в две команды и пару строчек в конфиге можно настроить DNS slave на запасном сервере. Документация

    Бэкапы


    Они удобные. Отправка по фтп настраивается одной командой:
    v-add-backup-ftp-host remote.ftp-host.ltd backup-user p4ssw0rd

    После этого бэкапы создаются в один клик в соответствующей вкладке. Локально они тоже сохраняются и доступны для скачивания, само собой.


    SSL


    SSL можно указать вручную, а можно прямо на этапе регистрации домена в Весте отметить галочку «Let's Encrypt Support» и получить сертификат автоматически, удобно.

    Пакеты


    Пакеты, известные на форуме как «тарифные планы» позволяют настроить количество доменов, баз данных, задач в кроне, объём трафика, диска и т.д. Это позволяет превращать панель в что-то вроде админки хостинга, устанавливая определенные категории прав и лимитов для разных пользователей.


    Статистика и логи


    Их тут много, и они тоже удобные. Панель даёт сводную статистику использования диска/трафика/доменов/крона и всего остального, есть красивые графики ресурсов. А ещё можно смотреть журнал событий и логи access/error, не вылезая из браузера.

    Логи смотреть полезно, но графики симпатичнее

    Управление серверами


    Nginx, httpd, почтовые сервера, NS, ftp, сервера БД, файрвол и крон управляются из той же админки, что позволяет не лезть перезапускать нужный сервис из консоли при малейшем изменении в конфиге. Который тоже можно править прямо в браузере в той же вкладке, win!

    Шорткаты


    Наверное, ни один обзор Весты не обходится без упоминания горячих клавиш. Их преподносят как некую киллер-фичу, переворачивающую наше представление об управлении панельками… стоп, что? Окей, я понимаю что это может быть удобно при работе с файловым менеджером, тем более что там комбинации позаимствованы из Midnight Commander, но в чём их преимущество в управлении самой Вестой, я так и не понял. Панель это не терминал и в ней не зависаешь часами напролёт, взаимодействие как правило ограничивается быстрыми подходами по несколько кликов в разных разделах — заглянуть в лог, поправить конфиг. Управление с клавиатуры как замена 5-10 кликов мышкой для меня довольно избыточно, но смотрится прикольно.

    Шорткаты панели

    Шорткаты файлового менеджера

    Проблемы


    Прежде всего надо помнить, что Веста — это GPL продукт, и деньги приносит только за платные модули, интеграции у хостеров и поддержку. Разработчиков, по моим оценкам, от 4 до 11 человек плюс энтузиасты-контрибьюторы, поэтому сравнивать её с крупными проектами вроде ISPManager или Plesk не совсем корректно. Однако, с такой небольшой командой Веста смогла занять приличный кусок рынка «простых» панелей, это здорово и достойно уважения. Теперь можно перейти к минусам.

    Поддержка


    Формально поддержка осуществляется только платно по приличной цене. Когда админ Весты сталкивается с проблемами, он идёт на официальный форум или создаёт issue. Если повезёт, ему помогут. Если не повезёт (и это не редкость), его топик или issue останется без ответа навеки.

    Обновления


    Они прилетают редко. Например, за последний год год вышло два обновления: одно с security bugfixes, другое состоит из одной строчки
    *** WHATS NEW in 0.9.8-26 ****
    Let's Encrypt HTTP/2 support

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

    Совместимость


    Ещё одна проблема с внезапными обновлениями — неизвестно, что и где они могут сломать. Цитата из пропитанного болью поста:
    … разработка версии 0.9.8-18 велась больше года. За это время пользователи, уставшие от того, что панель толком не работает с новыми версиями PHP 7.x, успели по 100500 раз самостоятельно переписать скрипты панели, сделать свои костыли, чтобы актуальный софт работал правильно.

    И вдруг аккурат перед новогодними праздниками VestaCP обновилась у тех, кто забыл выключить автообновление. Да, релиз 0.9.8.-18 состоялся не 9 января, как можно судить по форуму, а 29 декабря 2017-го! Не могу представить, что было в голове у разработчиков, решивших выкатить обновление ПО, от которого зависит работа сайтов, во время новогодних отпусков.

    Кроме того, Веста может конфликтовать с точечными обновлениями (или откатом на предыдущую версию) у отдельных модулей, что может быть очень неприятно при обнаружении свежей уязвимости. В таких случаях придётся идти в конфиги и вручную менять все зависимости и вхождения (и надеяться что ближайшее обновление будет содержать эти фиксы, а не просто снесёт ваш кастом).

    Кстати, VDSina давно предлагает шаблон с VestaCP и выбором версии PHP для конкретного домена:



    Продвинутые сценарии использования


    Ручная модификация панели тоже дело неблагодарное, так как заключается в правках конфигов и скриптов, которые при обновлении благополучно заменятся оригинальными. Некоторые интеграции и плагины можно писать с помощью API, но в целом всё равно получается сложно поддерживать свой код.

    Выводы


    Веста — это панель для простых задач. Она позволяет быстро публиковать сайты и даёт весь необходимый функционал для их администрирования, и в этом её сильная сторона. Она проста в освоении и отлично подойдёт для небольших проектов, вроде корпоративного сайта или небольшого интернет-магазина, здесь она во многом даёт фору тому же ISP, оставаясь при этом бесплатной. В общем, если вы хотите «просто захостить» без лишнего геморроя, вышеперечисленные проблемы, скорее всего, вас не касаются.

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

    И напоследок, Веста — это open source проект с минимумом коммерции с небольшой командой и отличным результатом. Превозмогая трудности, skid с командой прошел путь от дерзкой идеи до популярного, востребованного продукта, и это круто. Попробуйте его, если еще не успели.

    VDSina.ru
    Серверы в Москве и Амстердаме

    Комментарии 44

      +6

      Стараюсь избегать панелей, потому что когда нужно что-то руками написать в том же конфиге Nginx, это ломает панели и потом получается бардак. Панели подходят только для очень типовых задач или тем кто совсем не разбирается и хочет получить подобие шаред-хостинга на своем сервере

        0

        Хорошая статья. Очень подробно освещает проблемы этой чудесной (это так ) панели. Что ещё не сказано — что под капотом у Весты баш скрипты (это ужасно, тем более в 2020), но это и означает, что любое действие в вебке продублировано соответствующим консольным скриптом. Это бывает полезно при ремонте сломавшейся панели. Ещё конфиги текстовые. А вот что точно не стоит делать — не стоит обновлять уже установленный с вестой сервер. Это регулярно вызывает проблемы. Чистая инсталляция — почти никогда (т.е. как правило она работает).
        В остальном — если пользователь продвинутый — он сам все сделает и без панели, напишет какую-то минимальную автоматизацию через тот же ansible. Если же юзер не шарит вовсе, то Веста для него будет очень сложной и он скорее уйдет на виртуальный хостинг.

          0

          Веб тоже на баш-скриптах?

          0
          А вот что точно не стоит делать — не стоит обновлять уже установленный с вестой сервер. Это регулярно вызывает проблемы.

          За несколько лет использования — уже, наверное, лет семь — ни разу не сталкивался со проблемами, часто поднимающимися на форме. С обновлениями тоже все всегда нормально.
          При том, что под Вестой (на разных серверах) крутится много постороннего — приложения в контейнерах (Gitea, Azuracast, Seafile), Gitlab, Redmine, чистый RoR, nodejs-приложения, OpenVPN AS и прочее.

          И еще не сказано о таком нюансе, что Веста малопригодна для организации shared-хостинга, что некоторые пытаются сделать, получая, в итоге, неприятные сюрпризы, по типу отсутствия возможности сменить админа/добавить еще одного или невозможности обычным юзером сменить apache/nginx-шаблон своего сайта.
            0

            Мы скрестили весту с докером. Что не понравилось — не хватило гибкости в настройке файрволла весты — это раз. Два — это практически ручная работа по настройке upstream в nginx. В остальном можно жить.


            невозможности обычным юзером сменить apache/nginx-шаблон своего сайта.

            это отдельная боль — менеджмент шаблонов. Или подключение LE. Кривое и косое. Оба. Ах, да — забыл — возможность установить несколько разных версий php. То же как будто не очень сделано.


            При всем при этом — Веста — это единственная БЕСПЛАТНАЯ вменяемая панель. Причем даже с какой-то мало-мальской поддержкой.

              +1

              CWP.
              Не благодарите.

                0
                Не будем. Не за что.
                Тот же php селектор — только в Pro версии. (Хотя лично мне он не нужен.)
                Как и некоторые другие функции. Так что не такая уж она и бесплатная.
                  0

                  Там бесплатно все, что нужно для хостинга.
                  Более того — оно работает и прекрасно кастомизируется.


                  Доп. фишки за деньги, как у всех.
                  Только 1 доллар — это точно те деньги?

                0
                Или подключение LE. Кривое и косое.

                И тут я вспомнил LE «из каробки» у BitrixEnv… Который не работает (внезапно!) при включении HTTPS only ))
                В принципе для типовых штук типа сайт на WP веста очень даже хороша.
                Шаблоны юзер менять и не должен — у него половина вариантов типа php-fpm+nginx приведет к падению сайта.
                  0
                  Шаблоны юзер менять и не должен — у него половина вариантов типа php-fpm+nginx приведет к падению сайта.

                  а если свои специализированные rewrite? ну, например, веста нужна для веб-студии? Это реальная боль, не фантомная.

                    0
                    а если свои специализированные rewrite? ну, например, веста нужна для веб-студии? Это реальная боль, не фантомная.

                    Ну на apache+nginx все rewrite в htaccess или средствами PHP.
                    ИМХО, обычный сайт написаной любой «веб студией» должен вставать на любой хостинг без танцев с бубном. Все варианты танцев с бубном это прям БОЛЬШОЙ вопрос. Нужно ли это или без этого можно обойтись в угоду совместимости.
                      +1

                      Забудьте про апач наконец-то (злой смайлик)
                      Предположим речь про nginx +php-fpm ради быстродействия. Или Вы думаете, что Веста не про это ?

                        +1
                        Ну на apache+nginx все rewrite в htaccess

                        .htaccess не имеет отношения к Nginx, это файл дополнительной конфигурации Apache. Если апача нет, как написал уже gecube — не встанет не то, что «обычный сайт написаной любой «веб студией»», но и практически любой современный фреймворк.
                        Плюс к тому, практически все панели из коробки используют конкретную папку, например, в cPanel — ~/home/public_html как document root, что не подходит для многих современных фреймворков.
                0

                Вот скажем задействовали вы изкоробочное получение Let's Encrypt сертификатов, а Let's Encrypt что-то поменяли — на старой версии весты автоматический перевыпуск сертов сломается. А в новой версии весты всё уже поддержали. Так что не совсем не обновляться не выйдет.

                  +1

                  и что это означает?


                  Так что не совсем не обновляться не выйдет.

                  а еще нужно ставить security patch на остальные компоненты ОС, чтобы не оставить систему уязвимой. И как vesta будет взаимодействовать с остальной ОС (учитывая, что она не менеджит ее компоненты) — неизвестно (можно проверить только на практике)


                  мой посыл был очень простой — если ты не хочешь проблем с вестой, то самый прямой путь — это полный ре-сетап с нуля (скажем, каждые полгода) + миграция данных. Иначе там, как в любой сложной системе, могут возникать странные погрешности.

                    +1

                    Это означает "глуый Newbilius переписывал фразу 3 раза и в результате написал фигню" :-/


                    Фраза должна была быть "Так что совсем не обновляться не выйдет".


                    Всё так, система вокруг Весты меняется, обновлять нужно и то и другое, иначе никак. Ну или ставить с нуля и мигрировать, да, тоже вариант, но звучит несколько неудобно...

                0

                А еще vestaCP работает от рута

                  +1

                  Это прекрасно.

                  +1
                  Как-то ммм…

                  # Download installation script
                  curl -O http://vestacp.com/pub/vst-install.sh
                    +1
                    Из всех панелей наиболее адекватная — directadmin. Все билдит сама, никаких привязок к окружению дистрибутива.
                      0

                      раньше ДА был ужасен. Сейчас вроде он поднялся… но все равно… ощущения не те

                        0
                        8 лет — ни одной проблемы
                          0
                          Возможно, вы про внешний вид, да сейчас есть новый красивый скин доступный из коробки (но всегда можно было использовать свой), но по технической части, как мне кажется, там как было хорошо, так и осталось.
                          Для персонального использования (1 аккаунт до 10 доменов) стоит 2$ в месяц. За стабильность, поддержку и пр. мне кажется, не плохая замена бесплатным панелям.
                            0

                            раньше — он был дорогой, беспонтовый и, да, некрасивый. Какая-нибудь ajenti с точки зрения функционала давала фору DA. Сейчас возможно, что все поменялось )


                            Для персонального использования (1 аккаунт до 10 доменов) стоит 2$ в месяц. За стабильность, поддержку и пр. мне кажется, не плохая замена бесплатным панелям.

                            согласен, что это конкурентноспособный прайс. Ну, и сейчас интереснее — https://habr.com/ru/post/471220/ + автоматизация на каком-нибудь ansible. Но тут все очень сильно зависит от уровня пользователя. И, да, полному нубу проще пойти на какой-нибудь REG.RU или Timeweb.ru и заказать у последних услугу виртуального хостинга, чем настраивать свой сервер

                        0
                        Скажем честно, как ни прискорбно, но проект скорее мёртв, чем жив.
                        В последние годы практически не развивается.
                        SFTP — через платный плагин.
                        Управление пользователями — убогое.
                        Список можно продолжать и продолжать.
                          0
                          Вот как раз поэтому на девелоперских серверах стал пользоваться форком VestaCP — панелью Hestia Control Panel. Пока доволен, но с установкой на продакшен подожду.

                            0
                            Пробовал. Шило на мыло.
                              0
                              Тут смотря зачем панель. На девелоперских серверах она позволила нам заменить хорошую, но платную ISPmanager 5.

                              И причина замены не только в бесплатности HestiaCP, но и в том, что похоже развитие ISPmanager остановлено в пользу непонятной пока панели VEpp. В итоге нет ясности ни со сроками возможности использования ISPmanager, ни с ценами на VEpp для виртуального хостинга.
                            0
                            SFTP — через платный плагин.

                            Наверное, SFTP Chroot.
                            При желании можно настроить самостоятельно.
                            0
                            Уже больше месяца авторы не закрывают 0day, так как автор пропал, я думаю стоит вынести эту информацию в статью.

                            github.com/serghey-rodin/vesta/issues/1984
                              +1
                              В VestaCP нет смысла, когда есть отличные альтернативы — Webinoly например.
                                +1
                                Опять же, все зависит от области применения. Мне, например, для хостинга интернет-магазинов на девелоперских серверах очень пригодились такие возможности HestiaCP, как шаблоны, различные возможности управления из консоли, легкая установка сертификатов и т.п.

                                Я не использую Wordpress и сайты на PHP. От панели мне требуется намного больше, чем просто создание площадок для личных сайтов. Насколько я понял при беглом знакомстве, Webinoly больше подходит именно для создания личных сайтов на PHP (или я ошибаюсь?), а это совсем не мой вариант.
                                  0
                                  очень пригодились такие возможности HestiaCP, как шаблоны, различные возможности управления из консоли, легкая установка сертификатов и т.п

                                  а в чем тут принципиальная разница с VestaCP?

                                    0
                                    С точки зрения функциональности разница не очень принципиальная.
                                    Но в отличие от HestiaCP, разработка VestaCP заброшена уже очень давно, поэтому я не буду использовать ее в своих проектах.

                                    К сожалению, поддержка HestiaCP возможна через форум только на английском языке, но для меня это не имеет принципиального значения.
                                      0
                                      разработка VestaCP заброшена уже очень давно

                                      Иенно на это и похоже: Latest commit 18 days ago.
                                        0
                                        Да, здесь закрыли уязвимость и опубликовали патч на github. Но предыдущий коммит был 7 месяцев назад, а вот что написал ScIT по поводу проблемы с уязвимостью https://forum.vestacp.com/viewtopic.php?f=10&t=19800:

                                        «Basicly, dpeca has already patched the issues on github, but Serghey seems to be offline since a long time — he's the only one who can publish a new version to the repository.

                                        Disclaimer: I stopped any work on vesta due to my work on my own fork — just want that users are aware of the possible fixes of the current exploits.»

                                        В кратком изложении: dpeca закрыл проблему, разместив патч на github. Но только Сергей [Родин] может опубликовать новую версию в репозитории, а он уже давно в оффлайне.

                                        Так что увы…
                                          0
                                          Все же, проект пока что не заброшен. Автор не имеет возможности им заниматься нормально, но ежегодно обновления появляются — это никак нельзя назвать заброшенностью )
                                          Ну да я не защищаю, конечно, проблем там накопилось столько, что одно-два обновления в год ничего не решат, увы.
                                            0
                                            Да, хорошо что есть энтузиасты, которые закрывают хотя бы проблемы с уязвимостью. Ведь наверное много у кого установлена эта панель.
                                            Я же выбрал HestiaCP, т.к. она обновляется гораздо чаще. Это, насколько я понимаю, проект процитированного выше ScIT.
                                              +1
                                              Хотя да, соглашусь — толку от патча на гитхабе, если репозиторий не обновляется. Так что да, проект скорее мертв, чем жив, увы, (с) ITMatika, вынужден согласиться…
                                              Тут были комментарии по Весте, по работе из-под рута и прочее — так HestiaCP все их унаследовала, к сожалению.
                                                0
                                                Тут были комментарии по Весте, по работе из-под рута и прочее

                                                Ваши предложения — как сделать лучше? :-)

                                                  0
                                                  Я не админ, не девопс, я вообще не в курсе, почему плохо из-под рута )
                                +1
                                Вот, кстати, еще один форк весты: https://github.com/myvesta/vesta

                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                Самое читаемое