×Закрыть

DOU Проектор: BrainyCP — бесплатная панель управления сервером/хостингом

В рубрике DOU Проектор все желающие могут презентовать свой продукт (как стартап, так и ламповый pet-проект). Если вам есть о чем рассказать — приглашаем поучаствовать. Если нет — возможно, серия вдохновит на создание собственного made in Ukraine продукта. Вопросы и заявки на участие присылайте на editors@dou.ua.

Привет, я Евгений Шнайдер, мне 26 лет, с детства увлекался программированием, в старших классах создал сайт, посвященный смартфонам, тогда еще под Symbian 9 (пик посещаемости составил 25 000 посетителей в день). Для этого сайта нужен был хостинг, с тех пор хостингом и занимаюсь.

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

Идея

Уже давно занимаясь хостингом, более 8 лет, у нас, как хостеров и как клиентов хостинга, всегда была необходимость в управлении выделенным или виртуальным сервером или хостингом. Сейчас, кстати, более распространена тенденция, когда берут VPS, где арендатор не зависит «от соседей» и полностью может его настраивать под свои нужды, делить мощность уже под свои проекты (если, скажем, это веб-разработка для отдельных клиентов). Всегда нужно ПО, которое поможет все это правильно настраивать и управлять.

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

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

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

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

Реализация

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

Пару слов о команде. Наша команда проекта состоит из 5 программистов (постоянных членов команды) и 2 приглашенных, и еще в команде некоторое время работал дизайнер. Мы все — программисты, и учились на программистов, и даже начинали заниматься веб-программированием в свое время.

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

Самым трудным было то, что называется сделать «движок программы»: ту твердую базу, на которую уже как на фундамент можно было добавлять нужные строения — модули. Были написаны базовые классы и методы для работы с сервером, а также заведены необходимые переменные окружения, которые используются в каждом модуле. Например — имя текущего пользователя, его тариф, группа, ограничения и т. д. Также были подключены смарт-шаблоны. Когда это сделано — каждый последующий модуль становится гораздо легче писать, так как все необходимые инструменты уже автоматически написаны, и можно работать только в рамках функционала самого модуля, не задумываясь, как реализовать ту или иную функцию.

Неверно принятые, на первый взгляд, мелкие решения еще на этапе создания основы дали бы не те результаты в будущем. Поэтому сначала постоянно приходилось исправлять-исправлять-исправлять — то со стороны back-end, то со стороны front-end. К тому же мы замахнулись сразу на широкий функционал, который постоянно приходилось отлаживать. Все это сильно увеличило время разработки. Так как в программе все модули взаимосвязаны, и любые мелочные изменения влекут за собой изменения во всех частях программы. Например, модуль хост-аккаунта должен использовать и модуль базы данных, и модуль веб-сервера и т. д.

Было еще много задач на стыке программирования и дизайна. Например, запуск фоновых процессов на сервере. Пользователь хочет запустить процесс — установка MySQL на сервер. Этот процесс занимает около 10 минут. Но РНР не дает следить за этим процессом в реальном времени, и программа после запуска может сразу сказать «OK», а сам процесс будет завершаться в фоновом режиме или же РНР (панель) будет ждать пока процесс выполнится. В таком случае пользователь не будет понимать, что происходит и будет нажимать на все кнопки, перезагружать сервер и т. д. В результате у нас получилось, что после запуска задачи пользователь видит весь процесс установки, и панель показывает, на каком этапе процесс. Задача не была очень сложной, но мы с ней повозились.

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

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

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

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

Изначально я планировал, что разработка нашего продукта займет 3 месяца и еще 3 месяца на откатку, прямо вот чтобы уже был продакт-релиз, тут я тоже жестоко ошибся :) В итоге процесс разработки занял 1,5 года, но я рад, что инициировал этот проект, очень много для себя открыл и многому научился: и как руководитель проектов, и как ИТ-архитектор, и как программист.

Я считаю, мы сделали классный продукт. Вы можете взять любой раздел по управлению хостингом и сравнить, что доступно в нашей панели и что доступно в бесплатных хостинг-панелях. Вы увидите большую разницу: в бесплатной панели — 2-3 функции и очень неудобное решение по модификации всего — пользователя заставляют проходить одни и те же шаги много раз, много раз вбивать домены, IP-адреса и др. В нашем решении все нужное у администратора/пользователя под рукой.

Какие выводы я сделал

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

Программисты есть под любую задачу — их стоит искать. При поиске столкнулись с тем, что большая часть украинских программистов заточены под иностранные заказы с большими валютными бюджетами, и аппетиты на зарплаты огромны. Но наш проект — это стартап, много денег у нас не было ни тогда, ни сейчас. Монетизации стартапа нет, да и рано о ней даже думать — нужно, чтобы продукт был обкатан не только нами, но и пользователи дали обратную связь. К нашей чести хочу сказать, что мы только один раз за все время поменяли двух приглашенных программистов. Расстались мы с ними мирно, так как важно не только начать с кем-то дело, но и в нормальных отношениях расстаться. Один сошел с дистанции ввиду большой нагрузки, а второй как-то уперся в тупик — писал такой код, в который затем сложно было смотреть всем, не только нам, но и ему самому :) И это еще раз доказывает, что какой бы хороший программист ни был, на начальном этапе над ним нужно «висеть» и смотреть, что он и как делает, или же потом придется постоянно переделывать. Для нас было сложно найти программистов, которых помимо денег заинтересует еще и сама идея нашего проекта, именно тех, которые «самые-самые» под проект. Таких людей нам удалось найти, поэтому всегда есть те, кто подойдет именно для вашего стартапа.

Какие бы я книги не прочитал по руководству проектами и по разработке программных продуктов — в любом проекте будет то, о чем никогда не пишут в книгах. Не потому, что могут скрывать информацию, а просто потому, что это отдельный проект, даже если что-то подобное много раз делали, не говоря уже о стартапе. Создание чего-то нового — это как творение своего отдельного мира, со своим языком, социумом и микросоциумом. Во время этого проекта я особенно ярко почувствовал правоту Нассима Талеба, что за любой информацией, за любым сообщением нужно стараться увидеть «о чем не говорят». Говоря по-философски: за любым знанием скрывается незнание, так как рассказать обо всем до мелочей невозможно. Именно этому анализу «невидимой» части проекта всегда нужно уделять особое внимание.

Результаты

Наша панель BrainyCP улучшает удобство пользования и администрирования хостинг-услугами как для рядовых пользователей, так и для хостинг-компаний. Уменьшает риск потери данных пользователей, в разы уменьшает нагрузку на техподдержку хостеров и дает более широкую доступность (за счет интуитивного удобства) использования серверов для всех желающих.

С помощью BrainyCP сокращается время настройки даже у опытного админа сервера до 90 %. Наше программное обеспечение сразу создает все необходимое «окружение» для любого сервера, который может быть использован для самых разных задач. Например, в любом сервере будет необходим: веб-сервер, база данных MySQL, почтовый домен, сервисы почты, почтовые ящики, PHP. Все что нужно для работы уже есть в нашем решении сразу, при установке пользователем. Это не говоря уже о многом другом, что у нас устанавливается или активизируется в один клик: сертификаты, приложения СМS, файловый менеджер, FTP-сервер, SHH-сервер, антивирус и многое другое, что доступно сразу и не требует никаких дополнительных плагинов. Из коробки, автоматически, ставится антивирус на сервер, удобно настраиваются бекапы, есть возможность сделать/вернуть бекап, снепшоты и многие другие возможности, которые на данный момент доступны только в платных решениях.

Кроме этого в BrainyCP реализован расширенный функционал для реселлинга хостинга, для администрирования групп пользователей и многие другие функции интересные для хостеров.

Наша панель позволяет мониторить многое: от критических частей технической инфраструктуры самого хостера — какой-то жесткий диск сбоит и требует замены, до разноуровневой (горизонтальной и вертикальной) статистики — сколько пользователей сейчас активны, что и как они используют, не дедосят ли кого, у кого-то из пользователей что-то не работает, кто-то подхватил вирус и его сайт нужно чистить, да и, что греха таить, пользователи бывают разные: иногда кто-то начинает спам рассылать, кто-то еще «всякое разное» делать, и если у хостера даже 100 клиентов — без удобного мониторинга с системой оповещения не обойтись.

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

Наша цель — создать и поддерживать удобное и доступное всем программное обеспечение для управления сервером и хостинг-услугами.

LinkedIn

29 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Выпущена версия 1.03 панели BrainyCP

После анонсирования первой версии нашего продукта и презентации в рубрике DOU Проектор: dou.ua/...​s/dou-projector-brainycp мы получили большое количество замечаний и предложений по улучшению нашего продукта. Это показывает, что наше решение заинтересовало представителей ИТ-сообщества.

Мы рады анонсировать обновление программы, в котором были учтены и исправлены замеченные пользователями ошибки.

Итак, в новом релизе:

— исправлено более 200 мелких недочетов и багов
— изменена конфигурация Brainy mysql для использования меньшего количества ОЗУ
— исправлена ошибка сетевой конфигурации (было актуально для некоторых QEMU VPS)
— усовершенствована система установки вебсервера, почтового сервера и баз MySQL
— исправлена система генерации сертификата Let’s Encrypt
— обновлена система внутренней безопасности панели

В ближайших планах команды разработчиков:

— создание модуля управления mod_security
— создание модуля управления рассылками
— добавление возможности бекапирования на Яндекс.Диск и Dropbox
— добавление в диспетчер файлов возможности менять атрибуты файлов
— интеграция с cloudflare
— добавить webssh
— возможность добавления доменов со звездочкой (*.domain.ru)
— отлаженные автообновления
— создание lite сборки для слабых VPS и интеллектуального установщика

Еще раз благодарны всем, кто написал нам, и будем продолжать улучшение нашего продукта.

Вы можете установить новую версию панели BrainyCP на странице: brainycp.com/download

добавление возможности бекапирования на Яндекс.Диск

він не доступний в Україні, краще б на Google Drive додали

возможность добавления доменов со звездочкой (*.domain.ru)

*.domain.ru ??

Извините, забыли сказать, что конечно наш самый-самый GoogleDrive будет тоже, само собой.

Не внушает доверия

Вопрос (возможно, глупый): как проект финансируется? Из собственных средств, добровольных пожертвований? Если нет монетизации, как держитесь на плаву?

Чи організовано тут система міграцій, наприклад з ISP? І чи можна доменами керувати?

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

Це було би чудово. В мене 4 друзів хотіли би перейти на вашу панель, але треба срипт міграцій.(

Система підтримує тільки PHP?

Добрый день. Пока да. А поддержка чего именно Вам нужна? Подготовим в будущих билдах.

Мы можем добавить установку питона в менеджер приложений. Возможно вы подскажете, какой графический интерфейс управления питоном вам нужен? Сами на питоне никогда не писали. поэтому не знаем, что нужно разработчикам. Или достаточно просто установки его из графического интерфейса?

Зараз користуюсь Heroku. Було б добре мати +/- такий самий функціонал.
Зокрема інтеграцію з популярними VCS (Github, Bitbucket) з Continuous Integration.
Візуалізація логів і сповіщення про проблеми.
Керування змінними середовища.
Можливість в пару кліків доставити інші програмні продукти (наприклад: сховища даних Postgres, MongoDB, Redis, тощо.)

Принято! Будет сделано в будущих релизах

сравнение с популярными системами позволит принять решение поставить и поюзать ваш продукт на очередной практический сервер, в частности интересует ISPmanager

Обязательно подготовим технические статьи по сравнению с популярными панелями. Спасибо за Ваш комментарий.

Не уверен, что оно того стоит (даже уверен, что оно того не стоит к сожалению). В плане хостинга популярность набирают cloud решения (AWS, Azure, Heroku, DigitalOcean, Amazon Lightsail, Google Cloud Platform). Зачем сейчас такое решение не совсем понятно. Если это было сделано для «набирания опыта» — то да, отличная практика, уверен, что столкнулись с большинством технологий, используемых в разработке серверных приложений. Но если цель была воплотить бизнес-идею, то её я здесь не вижу.

Яке відношення мають всі ці модні набори буков до панелі управління сервером/хостингом?

Самое прямое. Каждый из указанных сервисов и предоставляет хостинг по сути под самые разные нужды и размеры проекта. Указанные преимущества типа «веб-сервер», «база данных», «приложения в один клик» в указанных сервисах тоже есть (возможно не во всех, но в AWS и DigitalOcean точно знаю, что есть).

В діджітал оушн купляєте голий дроплет за 5 доларів з Убунтой , і шо далі? Особливо якшо ви ламо, жодної команди не вивчили, а вебсайт хочете. Іменно відсутність подібного інструмента стримує звичайних людей від використання VPS, тому деякі xостери тулять в нагрузку паралелівське гавнішко плєск або навить сранєль. За додаткові гроші звичайно.

Не согласен.

Особливо якшо ви ламо, жодної команди не вивчили, а вебсайт хочете.

В таком случае можно и shared хостингом обойтись, коих масса, стоимость низкая и весь функционал, указанный выше есть.

Возможно конечно, для более нагруженных проектов, которым нужен VPS, и кто не разбирается в настройках сервера, такое решение и пригодится — не спорю. Но кто за него будет отвечать? Правильно, никто. А если будет ответственность — то скорее всего в платной подписке или в платной поддержке. В чем тогда будет разница с существующими проверенными платными решениями?

Вернусь в вашему комментарию

В діджітал оушн купляєте голий дроплет за 5 доларів з Убунтой , і шо далі?

Не нужно сейчас покупать голый дроплет. Если вы не хотите разбираться в установке и настройках — выбирайте дроплет с готовым решением www.digitalocean.com/products/one-click-apps

там уже есть wordpress, drupal, mysql, lamp, mean и целый ряд других готовых приложений.

Ну допустимо Magento не дуже то ви і запустите на

shared

хостінгу, та і ізоляція там ніяка, общага. Та і багато ще чого. Голий дроплет — це для прикладу. Опшим, спор безпредметний, інструмент, звичайно, потрібний, автору респект.

Magento на DigitalOcean есть в списке — www.digitalocean.com/...​s/one-click-apps/magento. Быстро и недорого.

На счет инструмента — интересует конечно сравнительная характеристика с существующими решениями и поддержка MEAN стека. Без него на сегодняшний день инструмент не вызывает интереса.

www.1and1.com/vps-hosting > Available in all packages > Plesk Onyx. Вот вам пряма заміна, звичайно, якщо автор буде серйозно ставитися до свого продукту.

Спасибо Вам за интерес к продукту. Скажите, а вы представитель хостинга Ihor или просто логин такой?) Я думаю хостеры понимают, что еще одна панель управления, особенно бесплатная, никогда не будет лишней)

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

Убедили. Попробую. Планируется ли поддержка node, npm, mongo в панеле?

Да, планируем. Все запросы записываем и в поддержку пишем.

Подписаться на комментарии