Автономный бэкенд: обзор
Автономный бэкенд — репозиторий одного сайта, которым владеете вы: API Worker со своей D1, сайт Astro, опубликованный контент, миграции и скрипты развёртывания. API читает только собственную базу. Статически собранным страницам ничего не нужно от Dee Wan. Маршруты Blog, поиск по сайту, секции «Последние записи», комментарии посетителей, формы и необязательный предпросмотр обращаются к Dee Wan при каждом запросе: см. Что по-прежнему зависит от Dee Wan. Эта страница описывает генерируемые исходники, а не развёртывание в Cloudflare, прошедшее приёмку.
API и статически собранные страницы — это снимок. В них то, что было опубликовано на момент генерации, а последующие публикации попадают в них, только когда вы снова сгенерируете и развернёте проект. Актуальный контент возвращают публичный API CMS и маршруты сайта, которые его читают.
Сгенерированный API проверяет длину и шаблон текста по заданным правилам. После изменения правил нужно заново сгенерировать и развернуть бэкенд; подробнее — в справочнике API.
Для настройки отключаться не нужно. Расширение бэкенда описывает реестр собственных расширений и работу с подключённым репозиторием. Контракт отключения описывает остановку управляемой регенерации.
Генерация, передача исходников и развёртывание
Заголовок раздела «Генерация, передача исходников и развёртывание»Это разные шаги. Исходники генерируются на вашей машине. CMS их не компилирует.
| Шаг | Способ | Что происходит |
|---|---|---|
| Сгенерировать автономный бэкенд | npm run backend:generate (ниже) |
Локальная SQLite-копия CMS открывается только для чтения. Проект генерируется и проверяется на временной целевой базе. Нет push или развёртывания. --model <id> ограничивает результат одной моделью. |
| Впервые сгенерировать и опубликовать | npm run backend:deliver |
Локально генерирует проект, отправляет его в ваш репозиторий и запускает первое развёртывание. --media переносит публичные медиа в ваше хранилище. |
| Опубликовать уже сгенерированный коммит | npm run wire:github -- --managed (публикация через GitHub) |
Отправляет уже сгенерированный проект, проверяет удалённый коммит и запускает развёртывание именно этого коммита. |
| Развернуть из существующего репозитория | Настройки → Код и публикация → Развернуть | Вызывает build webhook. dee-wan-build.yml в репозитории забирает определения, запускает уже закоммиченный в нём регенератор, создаёт коммит и развёртывает. Нужен репозиторий, где уже есть сгенерированные исходники. |
| Генерация исходников на стороне CMS | Настройки → Код и публикация → Сгенерировать исходники через GitHub | Недоступна. У Worker CMS нет среды сборки исходников, он отвечает source_build_runtime_unavailable. |
npm run backend:generate -- --site <site-id> --source <cms.sqlite> --dest <output-directory> --db <scratch.sqlite>Сайту с активным релизом управляемого рендерера нужен ещё --template-artifacts <dir>: локальная копия артефактов шаблона этого релиза. Каждый артефакт должен быть обычным файлом в настоящем каталоге по своему ключу (managed/<site>/<candidate>/<role>.json). Генератор не переходит по символическим ссылкам. Без этого параметра генерация отклоняется с managed_release_custody_unavailable. npm run backend:deliver принимает тот же флаг. Генерация с --model не экспортирует управляемый рендерер. Команда npm run backend:generate:all не позволяет передать этот флаг, поэтому генерация такого сайта этой командой отклоняется.
Каждый из этих способов сохраняет исходники в каталог или отправляет их в Git-репозиторий. Скачивания архива нет. npm run backend:deliver использует авторизацию GitHub через устройство, данные доступа Cloudflare и токен записи, проверяет развёртывание и предлагает отключение.
Эти команды выполняются в репозитории Dee Wan. У генерируемого репозитория свои команды, они перечислены в разделе Снимок, миграции, развёртывание и откат. Публикация через GitHub разделяет GitHub App административного интерфейса и авторизацию CLI через устройство.
Сохранить подключение или отключиться
Заголовок раздела «Сохранить подключение или отключиться»Подключённый репозиторий обновляется через управляемую регенерацию, которую нужно запускать явно. dee-wan-build.yml забирает определения сайта с токеном сборки, регенерирует, проверяет, создаёт коммит и вызывает deploy-from-repository.yml для этого точного коммита. Пока подключение сохранено, разработчики могут менять собственные и совместно используемые части проекта (owned/shared), коммитить и развёртывать их.
Отключённый репозиторий прекращает эти управляемые обновления. Репозиторный workflow развёртывает закоммиченные исходники, не загружая определения CMS. Отключение не добавляет точек расширения. Следуйте руководству по отключению: наличие репозитория само по себе не доказывает независимое хранение медиа или успешное развёртывание.
Astro предварительно рендерит модели страниц из генерируемого pages.json и обслуживает их через Worker сайта. Секции hero, rich text, media/text, feature-grid и call-to-action используют принятые оформление и тему. Репозиторий создаёт навигацию, footer, redirects, robots и необязательный sitemap. Статически собранные страницы используют закоммиченный снимок страниц. Маршруты Blog, страницы поиска и страницы с секцией «Последние записи», секцией «Поиск по сайту» или комментариями посетителей отдаются на каждый запрос с данными из публичного API Dee Wan (/v1 на хосте сайта), поэтому во время работы им нужен Dee Wan; самому сгенерированному API — нет. См. что по-прежнему зависит от Dee Wan и флаг совместимости.
Собственные компоненты head/body, слоты макета, обёртки и замены секций, интеграции Astro, интерактивные компоненты islands и страницы /owned/ позволяют расширять сайт без отключения. Предпросмотр выключен до настройки previewApiOrigin. Формат страницы описан в контракте документа страницы.
Что не входит
Заголовок раздела «Что не входит»Репозиторий не воспроизводит административный интерфейс CMS, систему пользователей, процесс согласования, хост плагинов, импорт, генерацию с помощью ИИ, исходящие вебхуки, черновики или историю. В нём нет самих медиафайлов, произвольных прикладных маршрутов или автоматического создания привязок, которые вы добавляете сами. Собственную бизнес-логику и маршруты с проверкой по схеме размещайте в предназначенных для этого частях проекта (owned).
Справочник и детали
Заголовок раздела «Справочник и детали»- Справочник API: маршруты, аутентификация, токены чтения, проверки доступа, ошибки, OpenAPI, вход в бэкенд, развёртывание и откат.
- Детали реализации: файлы, зависимости, ресурсы Cloudflare, отображение таблиц, экспортированный управляемый рендерер и кеш ответов.
- Расширение бэкенда: куда помещать собственный код.
- Отделение и проверка и восстановление автономного сайта.
Следующий шаг
Заголовок раздела «Следующий шаг»Пройдите четыре пошаговых руководства, начиная с правки и публикации.
Стабильная версия ещё не выпущена (pre-MVP)
Коммит исходного кода: fe23db481c422b40e317b92fc98116b4c0c26a87 (с локальными изменениями)
Дата сборки (UTC): 2026-10-18T09:22:34.630Z
Коммит для обновления: не определён: в рабочей копии есть изменения. Примечания к выпуску