← Cloudflare Workers / workers / platform
Кнопки Deploy to Cloudflare
Если вы разрабатываете приложение на Workers и хотите поделиться им с другими разработчиками, добавьте кнопку Deploy to Cloudflare в README, статью блога или документацию, чтобы другие могли быстро развернуть ваше приложение в своём аккаунте Cloudflare. Кнопки Deploy to Cloudflare избавляют от сложной настройки и позволяют разработчикам начать работу с вашим публичным репозиторием GitHub или GitLab всего за несколько кликов.
Что такое кнопки Deploy to Cloudflare?
Кнопки Deploy to Cloudflare упрощают развертывание приложения Workers, позволяя Cloudflare:
- Клонирование репозитория Git: Cloudflare клонирует ваш исходный репозиторий в аккаунт GitHub или GitLab пользователя, где он сможет продолжить разработку после развёртывания.
- Настройка проекта: На единой странице настройки ваши пользователи могут задать основные параметры: имя репозитория, имя Worker и имена нужных ресурсов. Все изменения отражаются в новом Git репозитории.
- Сборка и развёртывание: Cloudflare собирает приложение с помощью Workers Builds и развёртывает его в сети Cloudflare. Все необходимые ресурсы автоматически создаются и привязываются к Worker без дополнительной настройки.
Как настроить кнопки Deploy to Cloudflare
Кнопки Deploy to Cloudflare можно встроить в любом месте, где разработчики могут захотеть запустить ваш проект. Чтобы добавить кнопку Deploy to Cloudflare, скопируйте следующий фрагмент кода и замените URL Git-репозитория на URL вашего проекта. При необходимости можно также указать подкаталог.
[](https://deploy.workers.cloudflare.com/?url=<your git repo URL>)<a href="https://deploy.workers.cloudflare.com/?url=<YOUR_REPO_URL>"><img src="https://deploy.workers.cloudflare.com/button" alt="Deploy to Cloudflare"/></a>https://deploy.workers.cloudflare.com/?url=<YOUR_REPO_URL>Если вы уже развернули приложение с помощью Workers Builds, кнопку Deploy to Cloudflare можно сгенерировать прямо в дашборде Cloudflare: нажмите кнопку share (она находится на странице сведений о Worker) и скопируйте предложенный фрагмент кода.
После получения фрагмента кода вставьте его туда, где должна отображаться кнопка.
Автоматическое выделение ресурсов
Если приложению на Worker требуются ресурсы Cloudflare, они будут автоматически подготовлены в рамках развёртывания. В настоящее время поддерживаются следующие ресурсы:
- Хранилище: Пространства имён KV, Базы данных D1, Бакеты R2, Hyperdrive, Базы данных Vectorize, а также Секреты Secrets Store
- Вычисления: Durable Objects, Workers AI, а также Queues
Cloudflare прочитает файл конфигурации Wrangler в вашем исходном репозитории, чтобы определить требования к ресурсам для вашего приложения. Во время развёртывания Cloudflare выделит все необходимые ресурсы и при необходимости обновит конфигурацию Wrangler для вновь созданных ресурсов (например, ID баз данных и ID пространств имён). Чтобы развёртывание прошло успешно, убедитесь, что исходный репозиторий содержит значения по умолчанию для имён ресурсов, ID ресурсов и других свойств каждой привязки.
Переменные окружения и секреты Worker
Переменные окружения Worker можно определить в файле конфигурации Wrangler обычным способом:
{
"name": "my-worker",
"main": "./src/index.ts",
// Set this to today's date
"compatibility_date": "2026-08-28",
"vars": {
"API_HOST": "https://example.com",
},
}name = "my-worker"
main = "./src/index.ts"
# Set this to today's date
compatibility_date = "2026-08-28"
[vars]
API_HOST = "https://example.com"Секреты Worker можно определить в .dev.vars.example или .env.example файл с dotenv ↗ формат:
COOKIE_SIGNING_KEY=my-secret # commentSecrets Store секреты можно настроить в конфигурационном файле Wrangler обычным образом:
{
"name": "my-worker",
"main": "./src/index.ts",
// Set this to today's date
"compatibility_date": "2026-08-28",
"secrets_store_secrets": [
{
"binding": "API_KEY",
"store_id": "demo",
"secret_name": "api-key"
}
]
}name = "my-worker"
main = "./src/index.ts"
# Set this to today's date
compatibility_date = "2026-08-28"
[[secrets_store_secrets]]
binding = "API_KEY"
store_id = "demo"
secret_name = "api-key"Рекомендации
Настройка команд Build/Deploy: Если вы используете собственные build и deploy scripts в вашем package.json (например, при использовании full-stack фреймворка или выполнении миграций D1), Cloudflare автоматически определит и заполнит поля сборки и развёртывания. Пользователи могут изменить или принять предложенные команды при настройке развёртывания.
Если нет deploy скрипт не указан, Cloudflare предварительно настроит npx wrangler deploy по умолчанию. Если build скрипт не указан, Cloudflare оставит это поле пустым.
Выполнение миграций D1: Если нужно запускать миграции как часть настройки, укажите это в package.json выполняя миграции в рамках deploy script. В команде миграции следует указывать имя привязки, а не имя базы данных, чтобы миграции выполнялись успешно, даже если пользователь указал имя базы данных, отличное от имени в исходном репозитории. Ниже приведен пример настройки раздела scripts в вашем package.json:
{
"scripts": {
"build": "astro build",
"deploy": "npm run db:migrations:apply && wrangler deploy",
"db:migrations:apply": "wrangler d1 migrations apply DB_BINDING --remote"
}
}Укажите описание для привязок: Если хотите добавить дополнительную информацию о bindings, например почему они нужны в этом шаблоне, или подсказки по настройке значения, укажите описание в package.json. Это особенно полезно для переменных окружения и секретов, значения которых пользователям может понадобиться найти вне Cloudflare.
Встроенный markdown `code`, **bold**, __italics__ и [links](https://example.com) поддерживаются.
{
"name": "my-worker",
"private": true,
"cloudflare": {
"bindings": {
"API_KEY": {
"description": "Select your company's [API key](https://example.com/) for connecting to the example service."
},
"COOKIE_SIGNING_KEY": {
"description": "Generate a random string using `openssl rand -hex 32`."
}
}
}
}Ограничения
- Монорепозитории: Cloudflare не полностью поддерживает монорепозитории
- Если URL репозитория указывает на подкаталог, приложение должно быть полностью изолировано внутри этого подкаталога, включая все зависимости. В противном случае сборка завершится ошибкой. Cloudflare рассматривает этот подкаталог как корень нового репозитория, создаваемого в процессе развёртывания.
- Кроме того, если у вас монорепозиторий с несколькими приложениями Workers, вместе они развернуты не будут. Для каждого приложения нужно настроить отдельную кнопку Deploy to Cloudflare. Пользователь вручную создаст отдельное приложение Workers для каждого подкаталога.
- Приложения Pages: Кнопки Deploy to Cloudflare поддерживают только приложения Workers.
- Репозитории, отличные от GitHub/GitLab: Исходные репозитории с любых платформ, кроме github.com и gitlab.com, не поддерживаются. Self-hosted версии GitHub и GitLab также не поддерживаются.
- Приватные репозитории: Репозитории должны быть публичными, чтобы другие могли успешно использовать вашу кнопку Deploy to Cloudflare.