Кнопка «Deploy on Dada» в вашем репозитории
Зачем это нужно
У вас публичный репозиторий на GitHub — стартовый шаблон, бот, демо, опенсорсный инструмент — и вы хотите, чтобы любой читатель мог запустить его без терминала. Бейдж «Deploy on Dada» в README делает ровно это: один клик собирает репозиторий и выкатывает его в аккаунт читателя на Dada Cloud.
Читателю не нужно владеть репозиторием или форкать его, не нужно ставить GitHub App и не нужно проходить мастер настройки. Идея та же, что у кнопок «Deploy on Railway» и «Deploy to Render», только деплой происходит на российской платформе и оплачивается рублями.
Как добавить кнопку
- Откройте приложение в консоли — или просто возьмите сниппет ниже и замените
OWNER/REPOна путь своего репозитория, напримерDadaDevelopment/dadatuda-starter. - Вставьте markdown в
README.md:
[](https://console.dada-tuda.ru/deploy?repo=OWNER/REPO)
- Если ваш сайт документации не рендерит markdown, используйте HTML-вариант:
<a href="https://console.dada-tuda.ru/deploy?repo=OWNER/REPO">
<img src="https://console.dada-tuda.ru/deploy-button.svg" alt="Deploy on Dada" height="40">
</a>
- Закоммитьте и запушьте. Бейдж работает сразу: ничего не надо регистрировать, нет ни листинга в маркетплейсе, ни этапа модерации.
Как взять сниппет из консоли
Если репозиторий уже подключён к приложению, консоль напишет сниппет за вас:
- Откройте Applications и нажмите на приложение.
- Пролистайте до карточки «Deploy on Dada» button.
- Скопируйте markdown или HTML — оба уже заполнены вашим репозиторием.
Параметры
Ссылка принимает несколько query-параметров:
repo— обязательный, в форматеowner/name. Полный URL GitHub или SSH-remote тоже подойдут, хвост.gitотрезается.branch— ветка для сборки. По умолчаниюmain.rootDir— подкаталог для сборки в монорепозитории. По умолчанию корень репозитория.
Пример для монорепозитория:
[](https://console.dada-tuda.ru/deploy?repo=OWNER/REPO&branch=develop&rootDir=services/api)
Что видит читатель
- По клику на бейдж он попадает на карточку подтверждения: репозиторий, определённый фреймворк, имя приложения и порт.
- Если он не залогинен, сперва открывается регистрация и возвращает его на ту же карточку.
- Он может переименовать приложение или поменять порт и нажать Deploy.
- Лог сборки стримится на странице деплоев, а после сборки приложение получает HTTPS-адрес вида
name-hash.dada-tuda.ru.
Подводные камни
- Только публичные репозитории. Клон анонимный, поэтому приватный репозиторий не соберётся. Для приватного кода подключайте GitHub в консоли — см. деплой приложения из GitHub.
- Определение фреймворка приблизительное. Оно читает репозиторий через анонимный API GitHub, а тот ограничивает частоту запросов по адресу источника; результат кешируется на шесть часов. Если в этот момент определить не удалось, порт просто становится
8080, а сборка всё равно идёт: читатель поправит порт до деплоя или потом в настройках приложения. - Автодеплой выключен у приложений, созданных таким способом. Читатель не владелец репозитория, поэтому приложение — снимок вашего кода на момент клика, а не подписка на ваши пуши. Позже он может подключить собственный форк и получить push-to-deploy.
- Совпадение имён получает суффикс. Если в проекте читателя уже есть приложение с таким именем, добавится короткий случайный суффикс, а не перезапись или пересборка существующего.
- Картинка бейджа отдаётся консолью, поэтому рендерится где угодно — GitHub, GitLab, сайт документации, пост в блоге.
Чего пока нет
- Предзаполненных переменных окружения и манифеста в духе
dada.json: секреты читатель настраивает сам после первого деплоя. - Режима «выкатить подкаталоги как несколько приложений» — один клик создаёт одно приложение.
- Своей стилизации бейджа и бейджа с вашими цветами под конкретный репозиторий.
Куда дальше
- Деплой приложения из GitHub — путь для приватного кода.
- Сборки — что происходит после клика.