Hermes + Cloudflare: автоматизация DNS и деплоя из терминала
Как AI-агент Hermes управляет DNS-записями, деплоит статику на Cloudflare Pages и настраивает SSL — всё через CLI, без Dashboard.
Hermes + Cloudflare: автоматизация DNS и деплоя из терминала
У меня десятки субдоменов: блог, лендинги, API, нотификационные сервисы. Управлять всем этим через Cloudflare Dashboard — больно. Каждый раз логиниться, искать нужную запись, кликать, ждать...
Решение — дать это дело AI-агенту. Hermes Agent умеет работать с Cloudflare через CLI и API. Вот как я настроил этот pipeline.
Зачем агенту Cloudflare?
Типичный сценарий: я ставлю новый сервис на VPS и хочу, чтобы он был доступен по HTTPS на своём субдомене. Раньше это было:
- Зайти в Cloudflare Dashboard
- Создать DNS-запись
- Дождаться пропагации
- Проверить SSL
- Настроить Caddy/nginx
Теперь я говорю Hermes: «Подними ntfy на субдомене notify и проксируй через Cloudflare». Агент делает всё сам.
Инструмент: flarectl
flarectl — официальная CLI-утилита от Cloudflare. Установка:
go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest
Авторизация через переменные окружения:
export CF_API_TOKEN=your-api-token
export CF_ACCOUNT_ID=your-account-id
Токен создаётся в Dashboard → My Profile → API Tokens. Нужны permissions: Zone:DNS:Edit, Zone:Zone:Read.
Базовые операции
Создание DNS-записи
A-запись (субдомен → IP сервера):
flarectl dns create --zone example.com \
--type A --name myservice --content 203.0.113.1 --proxied
CNAME (субдомен → Cloudflare Pages проект):
flarectl dns create --zone example.com \
--type CNAME --name blog --content my-project.pages.dev --proxied
Флаг --proxied включает оранжевый облако — Cloudflare кеширует, защищает от DDoS, terminates SSL.
Обновление записей
flarectl dns update --zone example.com \
--id RECORD_ID --type A --name myservice --content 203.0.113.2
Удаление
flarectl dns delete --zone example.com --id RECORD_ID
Cloudflare Pages: деплой статики
Для Nuxt, Astro, Next.js и других SSG/SSR фреймворков Cloudflare Pages — бесплатный хостинг с CDN. Деплой через wrangler CLI:
npm install -g wrangler
# Авторизация
wrangler login
# Деплой из папки dist/
wrangler pages deploy dist --project-name=my-blog
Кастомный домен привязывается через API:
curl -s -X POST \
"https://api.cloudflare.com/client/v4/accounts/$CF_ACCOUNT_ID/pages/projects/my-blog/domains" \
-H "Authorization: Bearer $CF_API_TOKEN" \
-H "Content-Type: application/json" \
--data '{"name": "blog.example.com"}'
Wrangler v4.94+ может не поддерживать
wrangler pages domain add. Используйте API напрямую.
SSL: Flexible vs Full
SSL:Flexible — Cloudflare terminates SSL на своём edge, до вашего origin идёт plain HTTP. Не нужен сертификат на сервере. Идеально для сервисов, которые не работают с HTTPS нативно.
SSL:Full — Cloudflare terminates SSL на edge, но до origin тоже идёт SSL. Нужен сертификат на сервере (можно Cloudflare Origin CA — бесплатный).
Для self-hosted сервисов на одном VPS обычно хватает Flexible. Но если сервис передаёт чувствительные данные — ставьте Full.
Автоматизация через Hermes
Вот как это работает в реальной жизни. Hermes Agent имеет доступ к терминалу и может выполнять команды. Я говорю:
«Поставь Grafana на монитор.example.com»
Агент:
- Проверяет, что Grafana установлена
- Создаёт DNS A-запись через flarectl
- Настраивает Caddy reverse proxy
- Проверяет HTTPS
Всё в одном диалоге, без переключения в Dashboard.
Cron-мониторинг
Hermes может проверять DNS-записи по расписанию:
flarectl dns list --zone example.com --type A
Если запись изменилась или пропала — агент отправляет уведомление.
Подводные камни
Proxy status. Если запись не proxied (серое облако), Cloudflare не terminates SSL и не кеширует. Для сервисов, которые должны быть за CDN — всегда proxied.
Cache purge. После деплоя нового билда Cloudflare может отдавать старый кеш. Очистка:
curl -s -X POST \
"https://api.cloudflare.com/client/v4/zones/$ZONE_ID/purge_cache" \
-H "Authorization: Bearer $CF_API_TOKEN" \
--data '{"purge_everything":true}'
Rate limits. Cloudflare Free план имеет лимиты на API-вызовы. Для автоматизации это редко проблема, но если агент делает десятки запросов в минуту — может словить 429.
DNS пропагация. После создания записи DNS пропагируется за 1-5 минут. Hermes проверяет через dig или flarectl dns list перед тем, как считать задачу выполненной.
Итог
Cloudflare Free + Hermes Agent = полная автоматизация инфраструктуры из терминала. Никакого Dashboard, никаких ручных кликов. Агент управляет DNS, деплоит статику, настраивает SSL, мониторит записи.
Для self-hosted проектов это идеальный стек: бесплатно, надёжно, и всё через CLI.