Бесплатные панели управления хостингом. Богиня Vesta
Когда ты работаешь в хостинг-компании большинство друзей и знакомых, все свои вопросы касательно хостинга решают через тебя. Это позволяет быть в тренде последних новинок, а также не только приумножать свои скиллы, но и держать их в тонусе. Как только спец. задачи ребят стало сложно решать на хостинг-сервере, как правило из-за отсутствия возможности установить необходимый софт для работы того или иного скрипта, я сразу подумал о недорогом виртуальном сервере, тем более они у нас появились. Также мы понимали, что работать с сервером будет проще через удобный веб-интерфейс, и хорошая панель управления будет, как-ни-как, кстати. А если она будет еще и бесплатной, то мы будем только в плюсе. Не долго думая, открыл браузер и начал гуглить бесплатные панели управления хостингом.
Понимая, что изучение каждой потребует время, я решил также спросить совета у нашего опытного администратора, на что получил короткий ответ:
Смотрите в сторону Vesta.
С моей стороны была попытка обратить его внимание на то, что есть и другие бесплатные продукты:
Да, слышал , а вообще их достаточно: Ajenti, CentOS Web Panel и т.п.
Но руководитель тех. отдела дал довольно ожидаем ответ:
Эти не очень популярны в наших кругах.
Вот так произошло мое первое знакомство с одной из самых популярных бесплатных панелей управления хостингом в рунете — Vesta CP. Мне бы хотелось рассказать Вам, как решение поставленных задач приводит не только к написанию туториалов, но и позволяет познакомиться с интересными людьми, которые вкладывают свою душу в то дело, которые реально приносит им удовольствие. И как следствие, мы с Вами получаем замечательный программный продукт. Ну разве это не чудесно? Приятного и конструктивного Вам чтения…
Предисловие
Так как панель Vesta и в самом деле для меня была малознакома я начал собирать информацию. Нашел несколько неплохих публикаций, в том числе на ресурсе Хабрахабр, после чего даже задумался над тем, что же еще можно рассказать об этой панели, так как материала по ней в рунете реально достаточно. Но как же все может изменить один разговор?! После прочтения хорошей статьи я решил написать автору, и узнать его мнение не только о панели Vesta, но и в целом о нише бесплатных панелей управления хостингом. На мое удивление ответ не заставил себя долго ждать, а сам диалог продолжает длиться и сейчас… Много чего удалось обсудить, но это была лишь малая часть того, о чем еще предстоит поговорить. Да, скорей всего это материал для отдельной статьи, но не будем забегать наперед и вернемся к самой панели Vesta.
Установка
Не буду изменять своим привычкам — установлю на виртуальный сервер CentOS (также панель имеет поддержку Debian, Ubuntu) и подключусь к нему по SSH. Для этого, если Вы используете MacBook, запускаем Терминал и вводим следующую команду:
ssh root@xxx.xxx.xxx.xxx
Подтверждаем подключение, указываем пароль суперпользователя, и после всех этих действий мы попадаем в консоль. Если Вы пользователь Windows, то используйте для работы с сервером эмулятор терминала PuTTY.
Далее загружаем на сервер необходимые установочные файлы с помощью команды:
curl -O http://vestacp.com/pub/vst-install.sh
Перед тем, как приступить к самому процессу установки, хотелось бы сообщить, что установщик панели автоматически классифицирует серверы на следующие 4-е группы:
- micro — менее 1 ГБ ОЗУ;
- small — менее чем 3 ГБ ОЗУ;
- medium — менее 7 ГБ ОЗУ;
- large — более чем 7 ГБ ОЗУ.
В зависимости от технических характеристик Вашего сервера, в данном случае количества оперативной памяти, установщик автоматически произведет установку определенного набора пакетов и конфигов панели Vesta. Например, пакет антивирусов будет корректно работать (согласно рекомендаций разработчиков) начиная с версии medium, а поддержка php cgi, в свою очередь, доступна для всей группы серверов кроме micro. Но ничего не мешает Вам установить недостающее программное обеспечение вручную.
Продолжаем процесс установки панели, для этого запускаем скрипт с помощью команды:
bash vst-install.sh
На экране Вы должны получить следующее сообщение:
_| _| _|_|_|_| _|_|_| _|_|_|_|_| _|_|
_| _| _| _| _| _| _|
_| _| _|_|_| _|_| _| _|_|_|_|
_| _| _| _| _| _| _|
_| _|_|_|_| _|_|_| _| _| _|
Vesta Control Panel
Following software will be installed on your system:
- Nginx Web Server
- Apache Web Server (as backend)
- Bind DNS Server
- Exim mail server
- Dovecot POP3/IMAP Server
- MySQL Database Server
- Vsftpd FTP Server
- Iptables Firewall + Fail2Ban
Would you like to continue [y/n]:
Подтверждаем свои действия с помощью клавиши y (yes). Далее необходимо будет указать свой email:
Please enter admin email address: xxxxxxxxxx@domain.com
После чего установщик может запросить ввести имя хоста:
Please enter FQDN hostname [XXXX1669]: xx1669.ua-hosting.company
Сам же процесс установки может занят около 15 минут. Немного забегая вперед, хотелось бы сказать, что если Вы устанавливаете панель Vesta на один сервер, то ввод всех необходимых данных во время установки не должен занять много времени. Но если же Вам необходимо подготовить несколько десятков серверов с данной панелью, совсем недавно один из наших клиентов поставил такую задачу, то советуем запустить установочный скрипт с ключом h (help):
bash vst-install.sh -h
И ознакомиться с полным списком доступных опций:
Usage: vst-install-rhel.sh [OPTIONS]
-a, --apache Install Apache [yes|no] default: yes
-n, --nginx Install Nginx [yes|no] default: yes
-w, --phpfpm Install PHP-FPM [yes|no] default: no
-v, --vsftpd Install Vsftpd [yes|no] default: yes
-j, --proftpd Install ProFTPD [yes|no] default: no
-k, --named Install Bind [yes|no] default: yes
-m, --mysql Install MySQL [yes|no] default: yes
-g, --postgresql Install PostgreSQL [yes|no] default: no
-d, --mongodb Install MongoDB [yes|no] unsupported
-x, --exim Install Exim [yes|no] default: yes
-z, --dovecot Install Dovecot [yes|no] default: yes
-c, --clamav Install ClamAV [yes|no] default: yes
-t, --spamassassin Install SpamAssassin [yes|no] default: yes
-i, --iptables Install Iptables [yes|no] default: yes
-b, --fail2ban Install Fail2ban [yes|no] default: yes
-r, --remi Install Remi repo [yes|no] default: yes
-q, --quota Filesystem Quota [yes|no] default: no
-l, --lang Default language default: en
-y, --interactive Interactive install [yes|no] default: yes
-s, --hostname Set hostname
-e, --email Set admin email
-p, --password Set admin password
-f, --force Force installation
-h, --help Print this help
Которые, в свою очередь, позволят произвести установку «под себя», а также помогут ускорить процесс настройки целого «автопарка машинок». Самый простой способ пропустить ввод дополнительных данных во время установки панели — это деактивировать интерактивный режим, как следствие запустить установочный скрипт с ключом y (interactive) и параметром no.
bash vst-install.sh -y no
Если есть еще и желание самостоятельно задать пароль доступа к панели, то добавьте ключ p (password) со своим вариантом пароля:
bash vst-install.sh -y no -p xxxxxxxxx
Для тех пользователей кому не в кайф проводить «разбор полетов» в консоли разработчики сделали удобный веб-конфигуратор опций, что значительно упрощает процесс кастомной установки. Просто в секции Advanced Install Settings задаем необходимые параметры, после чего нажимаем кнопку Generate Install Command и вставляем уже готовую команду в консоль. Как Вам такой вариант установки?
После завершения установки на экран выведется следующее сообщение:
_| _| _|_|_|_| _|_|_| _|_|_|_|_| _|_|
_| _| _| _| _| _| _|
_| _| _|_|_| _|_| _| _|_|_|_|
_| _| _| _| _| _| _|
_| _|_|_|_| _|_|_| _| _| _|
Congratulations, you have just successfully installed Vesta Control Panel
https://xxx.xxx.xxx.xxx:8083
username: admin
password: xxxxxxxxxx
Веб-интерфейс
Ну что, Вы готовы к встрече с «богиней»? Тогда открываем браузер и авторизируемся в панели. Обращаю Ваше внимание на то, что имя пользователя — admin.
Сразу после входа мы попадаем на страничку USER и видим информацию пока что о единственном пользователя admin с правами системного администратора. Если кому-то более приятно работать с русским интерфейсом, то открываем настройки пользователя admin и в поле Language выбираем необходимый язык. Не забываем нажать кнопку Save, чтобы сохранить изменения.
Также в работе с панелью очень помогают горячие клавиши (SHORTCUTS), которые упрощают навигацию по меню и позволяют производить управления с помощью клавиатуры. Для открытия списка всех доступных SHORTCUTS воспользуйтесь клавишей h на клавиатуре или одной из кнопок в правом нижнем углу экрана.
Пользователи
Для повышения безопасности разработчики не рекомендуют осуществлять управление сайтами из под пользователя admin, потому давайте создадим нового юзера. Переходим в меню USER и нажимаем зеленую круглую кнопку с плюсом (ДОБАВИТЬ АККАУНТ). Не забываем, что это также можно делать с помощью горячих клавиш, предыдущий скриншот должен подсказать, что в этом нам поможет клавиша — a.
Здесь Вы можете указать язык интерфейса для пользователя, а также его почтовый ящик, на который будут отправлены доступы. После заполнения необходимых полей нажимаем кнопку «Добавить». Как следствие в меню USER у нас будет уже два пользователя и воспользовавшись клавишей ВОЙТИ КАК мы можем авторизироваться под нужным нам юзером. Стоит добавить, что разработчики позаботились о «большой миграции народов» и предоставили возможность переноса пользователей с одного сервера на другой.
Домены
Теперь можем добавлять свой сайт. Для этого переходим в меню WEB и с помощью клавиши n вызываем окно в котором заполняем необходимые данные.
Сразу рекомендую раскрыть ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ и активировать дополнительный FTP-аккаунт заполнив соответствующие поля. А для любителей статистики есть также возможность подключения Вашего ресурса к Webalizer или AWStats.
Базы данных
Пришла очередь создать базу данных (БД) для Вашего проекта. Все довольно просто — идем в меню DB и снова с помощью горящей клавиши n вызываем окно, где заполняем необходимые поля.
Не забываем все внесенные данные сохранить с помощью кнопки «Добавить». Далее можете спокойно заливать на хостинг нужную CMS или скрипт на котором будет «крутиться» Ваш проект, и проводить дополнительную настройку для выпуска сайта в продакшн.
Администрирование СУБД MySQL осуществляется с помощью веб-приложения phpMyAdmin кнопка запуска которого появится в меню DB сразу после создания хоть одной БД.
Также панель Vesta позволяет размещать БД на удаленном сервере, как вариант можно построить решение из нескольких веб-сервером и осуществлять их обслуживание с помощью одного более производительного сервера.
Почта
Вот на дополнительной настройке можно остановиться более подробно, и пожалуй начнем мы с почты, а точнее — с настройки почтового домена. Если мы перейдем в меню MAIL, то увидим, что у нас уже есть почтовый домен, который создался автоматически вместе с добавлением самого домена в панель.
При редактировании данных этого домена обратите пожалуйста внимание, что в поле «Ловушка почты» Вы по желанию можете указать почтовый аккаунт (не обязательно локальный) куда будет перенаправляться почта с несуществующих аккаунтов. По умолчанию там указан файл /dev/null, что означает лишь одно — вся поступающая почта должна удаляться.
Поехали дальше, настала очередь создать почтовый ящик. Выбираем необходимый почтовый домен и нажимаем кнопку ДОБАВИТЬ АККАУНТ.
Здесь можете раскрыть вкладку ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ и указать квоту по размеру почтового ящика в МБ, а также аккаунт для переадресации почты. Как обычно сохраняем указанные данные с помощью кнопки «Добавить».
Для работы с электронной почтой используется клиент Roundcube, кнопка которого (ОТКРЫТЬ ВЕБ-ПОЧТУ) становиться доступной в меню MAIL сразу после заведения в панель хотя бы одного почтового домена.
DNS
Наверное одним из самых сложных моментов работы с панелью управления хостингом для начинающих пользователей есть настройка DNS. Но и здесь команда разработчиков попыталась максимально упростить задачу, создав шаблон. После того, как мы произведем нужные настройки на стороне регистратора доменного имени, необходимо в меню DNS для конкретного домена нажать кнопку РЕДАКТИРОВАТЬ.
И в поле Шаблон выбрать child-ns, а затем сохранить изменения.
После чего с под пользователя admin зайти в меню Пакеты.
И редактировать пакет default, указав при этом серверы имен своего домена.
Также одной из возможностей панели есть создание DNS кластера, что позволит зонам автоматически копироваться на другие серверы.
Cron
В разделе меню CRON можно ознакомиться со всем списком заданий и в случае необходимости внести в него изменения (добавить/удалить/заблокировать задание).
Резервное копирование
Панель управления Vesta имеет удобный веб-интерфейс для настройки резервного копирования на удаленный FTP/ SFTP сервер. Для этого переходим в меню BACKUP и с помощью клавиши n запускаем создание нового архива, на экране выведется следующее сообщение:
После того, как Вы получите уведомление на свой почтовый ящик, вернитесь в данное меню и с помощью кнопки СКАЧАТЬ сохраните бэкап на локальном компьютере. Также данный функционал доступен из консоли.
Безопасность
Как Вы может уже заметили панель имеет фаервол, а также поддержку Fail2ban, который автоматически будет пресекать подбор паролей по разным протоколам (FTP, SSH), и в том числе к самой панели Vesta. Для настройки фаервола необходимо с под пользователя admin выбрать соответствующий пункт меню.
Где с помощью доступного функционала есть возможность провести необходимую настройку, в том числе и для Fail2ban.
Отчеты
В панеле управления Vesta очень хорошо реализован сбор статистики и разных данных, которые могут помочь Вам в анализе работы Вашего сервера. Например в меню Сервер Вы можете посмотреть какой объем оперативной памяти потребляет тот или иной процесс.
Также, если Вы захотите изучить показатели процессора (ов), памяти, сети, диска (ов) и т.п., то сможете получить более развернутые данные по разным параметрам: технические характеристики сервера, какие запросы отправляются на веб-сервер и в БД, есть возможность сделать отчет по отправленным письмам и многое другое.
Не стоит забывать о графиках нагрузки, которые также могут помочь Вам в анализе работы сервера.
А для тех, кому этого недостаточно, есть возможность просмотра логов доменов вживую — меню WEB, кнопка ПОСМОТРЕТЬ ЛОГИ.
API
В панели Vesta есть API, который можно использовать в качестве фреймворка для создания собственных интерфейсов. Например Вы можете создать площадку блогов или интернет магазинов. Как сообщили мне разработчики, несколько их крупных клиентов используют панель именно таким образом.
Обновления
Обновления панели управления Vesta могут проходить автоматически, но эта функция по умолчанию отключена. Все управление обновлениями осуществляется через соответствующее меню.
Когда выходит обновление, пакеты в данном разделе меню начинают подсвечиваться красным, а также появляется кнопка Обновить. При необходимости Вы делаете один клик и все готово.
Немного терпения и я вместе с Вами загляну в ближайшее будущее «богини». Вы ведь хотите увидеть какие «плюшки» готовят для Вас разработчики в ближайшем релизе панели Vesta?
Плюшки
Думаю, практически каждый программный продукт имеет свои особенности. О некоторых из них мы уже упомянули ранее, а вот есть те, которые я специально оставил на «десерт».
В свое время ребята выпустили несколько платных расширений, что б хоть как-то покрыть расходы по поддержке и разработке данной панели.
Первый из них — это волшебный, другим словом я просто не смогу передать удобство его UI, файловый менеджер. Как только Вы активируете плагин, появится пункт меню Файлы, при переходе на которое откроется следующее окно:
Согласен, что первое впечатление может быть немножко преувеличено, но Вы ведь еще не видели набор доступных SHORTCUTS и даже не начали работать с самим менеджером файлов, правда?
Команда разработчиков и не скрывает, что горячие клавиши были заимствованы из великолепного файл менеджера GNU Midnight Commander. Ну правда, а почему не приметь то, что реально удобно? И поверьте мне, у Вас будет возможность убедится в этом самостоятельно.
Вторым платным расширением является SFTP Chroot. Этот плагин может быть более интересен тем из Вас, кто предоставляет услуги хостинга, а также делит свой сервер с другими пользователями. Далее мне бы хотелось привести цитату самого разработчика, касательно данной дополнительной «фичи» для повышения безопасности:
FTP протокол небезопасен, поскольку все пароли передаются в чистом виде без шифрования. Сидя в кафе на публичном Wi-Fi, есть риск, что данные кто-то перехватит. Чтобы включить SFTP, нужно выдать пользователю системный шелл, однако, это позволит юзеру просматривать не только его собственные каталоги, но и системные, вроде /etc, /sbin или /bin. Это не проблема, если сервер используется 2–3 разработчиками. А вот когда уже идет речь о том, чтобы выдать доступ людям, к которым нет полного доверия, появляется дилемма. Модуль SFTP Сhroot помогает ее решить. Если модуль активирован, то на всех аккаунтах без реального шелла (/sbin/nologin), включается особый режим SFTP соединения. Такие аккаунты могут увидеть файлы только в своей домашней директории и все.
После активации данного расширения необходимо для конкретно взятого пользователя в настройках аккаунта выбрать из выпадающего списка нужный параметр, как показано на скриншоте ниже:
Вы еще думаете над тем, какую панель выбрать? Тогда я продолжаю, и перехожу к самым «вкусным плюшкам» ближайшего релиза панели Vesta.
Появятся дополнительные горячие клавиши, которые позволят полностью управлять панелью с помощью клавиатуры — это ведь круто.
Также появится возможность получить бесплатный SSL сертификат от проекта Let’s Encrypt буквально в один клик. И как заверил меня сам skid это функционал уже на финальной стадии тестирования.
Не стану раскрывать всех деталей грядущего релиза, а лучше оставлю немного «пищи для размышлений» Вам, дорогие наши читатели. Все детали в конце публикации.
В качестве благодарности хочу перечислить по имени каждого из команды разработчиков этой «богини»:
- Дмитрий Наумов — UI, тот самый интерфейс, который мы все любим: простота и удобство;
- Дмитрий Малышев — JS, то без чего взаимодействие с интерфейсом не было бы интерактивным;
- Антон Реутов — поддержка пользователей, тестирование, разбор и сортировка багов;
- Павел Галкин — поддержка пользователей, тестирование;
- Сергей Родин — человек, который поведал мне все «тайны» этого замечательного программного продукта.
А также сообщить, что в разработке данного продукта принимают участие люди из разных уголков мира, о чем свидетельствует количество языковых версий панели, а также статистика аккаунта на проекте GitHub. Да и сами разработчики признают, что приятно удивлены интересом и желанием некоторых пользователей поддержать их проект.
Так держать, ребята!
P.S. Чтобы поддержать проект со своей стороны мы совместно с командой разработчиков решили предоставить каждому нашему клиенту, который арендует услугу облачный VPS возможность разово активировать оба платных расширения совершенно бесплатно для одной услуги с доступом суперпользователя. Для этого после проведения заказа просто создайте тикет в отдел продаж и мы активируем для Вас плагин (ы).
P.P. S. Разработчики же со своей стороны решили также провести акцию и предоставить Вам возможность при заказе вечных версий лицензий получить дополнительно 30% скидки. При оформлении заказа просто используйте купон HABR, который будет действовать до 15-го января.