Привет! Меня зовут Виталий, я управляю небольшой компанией коммерческой разработки и сегодня хочу поделиться нашим прототипом сервиса публикации веб–приложений:
https://dploy.ru
За последнее время практически все наши российские клиенты озадачились переносом серверов в Россию — для соблюдения закона о хранении персональных данных и снижения риска остаться без связи из–за блокировок.
Если раньше для публикации мы использовали Heroku, то не найдя аналогичных продуктов в России, мы взялись за "голые" виртуальные машины. Не обошлось без обидных ошибок, случайных удалений и леденящих душу историй про chmod на корневой путь. Накопив наработоки, мы решили создать сервис для российских разработчиков, призванный избавить от рутины, соблюдая закон.
Мы приглашаем разместить ваши проекты на dploy: нам очень интересно узнать ваши впечатления, и что ещё вам необходимо для полноценной работы.
Внутри dploy вы найдёте: пакет сборки для nodejs, пользовательские скрипты, периодические задачи, журнал текущих запросов, монитор производительности, базовую авторизацию, выписку SSL–сертификатов, основные СУБД (
Redis,
Postgres,
MySQL,
MongoDb,
Elasticsearch), инструмент хранения публичных файлов (с возможностью получать изображение с изменёнными размерами по ссылке) и отправку уведомлений в
Slack.
Мы взяли за основу логику Heroku и если вы с этой площадкой знакомы, то вам не составит труда разобраться в нашем сервисе.
В dploy используется формат Procfile для объявления процессов:
%название_процесса%: %команда%
Например:
web: node build/server.js
Два названия процессов web и release являются зарезервированными.
Процесс web подключается к прокси–серверу по порту 8080.
Команда из процесса release не создаёт отдельный процесс, но указанная команда запускается последней при сборке образа.
Для задания регулярных задач мы ввели понятие файла Cronfile, аналогичного Procfile, но с указанием периода в формате
cron:
%название_процесса%: %период_в_формате_cron% %команда%
Пример задания регулярной задачи:
each_15_min: */15 * * * * node myscript.js
При публикации процесса устанавливается задача для cron, а команда процесса дополняется перенаправлением результатов вызова в стандартный вывод контейнера:
> /proc/1/fd/1 2> /proc/1/fd/2
Из пакетов сборки на сегодня поддерживается только nodejs. Пакет сборки устанавливает заданную в
package.json версию
node, выполняет установку
yarn и
bower, а также запускает скрипты:
heroku–prebuild, и один из найденных —
heroku–postbuild или
build.
Для установки дополнительных компонентов вы можете использовать
Пользовательский пакет сборки. При его указании, dploy ищет в корне репозитория два скрипта:
dploy–build.sh (будет вызван до копирования репозитория) и
dploy–postbuild.sh (после). Обратите внимание: скрипты должны быть в unix–формате и без использования символа переноса строки
\r.
Я буду рад любым комментариям и вопросам: здесь, в форме поддержки на сайте, или на почте
vk@dploy.ru. Использование dploy полностью бесплатно и будет таким, пока площадка не будет доведена до готовности к реальному применению.
Хэв фан!