pimenov.ai

База знаний

Codex Sites: как собрать и задеплоить сайт прямо из Codex

Как через Sites в Codex и ChatGPT Work собрать и задеплоить сайт: доступ и публичные ссылки, вход через ChatGPT, БД, домены, лимиты беты и чеклист.

Опубликовано

Sites превращает промпт или готовый проект в размещённый сайт, веб-приложение или игру на хостинге OpenAI. Внутри Codex это отдельный плагин, а тот же инструмент доступен и в ChatGPT Work. Отдельный деплой-пайплайн настраивать не нужно: результат получает живой URL, которым можно поделиться вплоть до публичной ссылки в интернете.

🔄
Актуальность: проверено 17 июля 2026 по официальной документации (developers.openai.com/codex/sites и Help Center OpenAI). Sites в публичной бете, функции быстро меняются: доступность по планам и регионам, лимиты и правила публичного доступа сверяйте на актуальных страницах OpenAI.
📌
Коротко: Sites ставится как плагин в Codex (и доступен в ChatGPT Work) и работает по схеме «сохранить версию → задеплоить версию». Каждый деплой сразу боевой. Аудиторию вы выбираете сами: только вы и админы, конкретные люди, всё рабочее пространство или любой человек в интернете по публичной ссылке. Сайт может подключать собственный вход «Sign in with ChatGPT», а где доступно — свой домен. Сборка идёт под рантайм Cloudflare Workers, встроены файловое хранилище (R2) и реляционная база (D1). Публичная бета открыта на платных планах, кроме Free и Go.
Живой пример: на Sites я собрал публичный шоукейс из пяти интерактивных лендингов за час. Как это устроено и какую роль сыграли skills и Sites — в статье Пять интерактивных лендингов за час: что умеет Codex с правильными skills.

Что такое Sites и чем отличается от no-code

Sites живёт внутри Codex как ещё один плагин. Вы описываете задачу обычным языком, а на выходе получаете не архив с кодом, а задеплоенный сайт с собственным URL, при необходимости с авторизацией и базой данных. Codex умеет создавать сайт, сохранять его версии, деплоить и инспектировать уже развёрнутые проекты.

Главное отличие от привычных ИИ-конструкторов (Lovable, Replit, v0): хостинг, авторизация и хранилище идут «из коробки» и управляются внутри OpenAI. Раньше это привязывало Sites к внутренним инструментам, но в публичной бете добавились публичные ссылки, собственный вход и привязка домена, так что сценарии заметно шире.

ИнструментАвторизация и доступДля чего лучше
Codex SitesГибко: от «только я» и рабочего пространства до публичной ссылки; опционально вход «Sign in with ChatGPT»Внутренние дашборды и ревью-хабы, а также лёгкие публичные лендинги и приложения
Lovable / ReplitОбычная веб-авторизация, код остаётся у васИИ-приложения, которые нужно унести и хостить где угодно
RetoolSSO/SAML, зрелый RBAC, подключение своих БДВнутренние приложения с федеративной авторизацией и своими базами
Notion / AirtableАвторизация рабочего пространстваЛёгкие трекеры и базы без кастомного фронтенда

Кому доступно и как включить

Sites в публичной бете и работает на платных планах, кроме Free и Go. Pro, Pro Lite, Enterprise и Edu получают доступ первыми, Plus и Business подключаются в ближайшие дни. На старте Sites недоступен в EEA, Швейцарии и Великобритании.

  • Business — Sites включён по умолчанию, отдельных действий не требуется.
  • Enterprise — сначала админ включает Sites для нужной роли через role-based access control (RBAC) в admin-настройках ChatGPT. Публичная публикация в Enterprise по умолчанию выключена и тоже включается админом.
  • Регион и роль — если Sites не видно, проверьте план и регион и уточните у админа, включён ли доступ для вашей роли.

Дальше подключаете сам плагин в Codex:

  1. Откройте Plugins в приложении Codex, найдите Sites и добавьте его.
  2. После установки плагина начните новый тред — иначе он не подхватится в текущем.
  3. В треде опишите задачу и при необходимости вызовите плагин явно через @Sites, особенно когда работа должна закончиться деплоем.

Тот же инструмент есть в ChatGPT Work на вебе и в десктоп-приложении: там можно попросить собрать сайт прямо в чате или упомянуть @Sites.


Как устроены проекты, версии и деплой

Проект Sites связывает локальный исходник с хостингом. Codex хранит эту связку и имена storage-биндингов в файле .openai/hosting.json. У свежего локального стартера project_id может ещё не быть — Sites добавит его, когда провижинит хостинг-проект.

{
  "project_id": "<project-id>",
  "d1": "DB",
  "r2": null
}

Публикация состоит из двух отдельных стадий:

  1. Сохранить версию. Codex собирает деплоящийся билд и привязывает версию к git-коммиту, из которого она собрана. Это ваш кандидат на ревью.
  2. Задеплоить версию. Codex публикует сохранённую версию и отдаёт боевой URL. Делайте это только когда действительно готовы открыть сайт выбранной аудитории.
⚠️
Каждый URL деплоя Sites — это production. Если нужно сначала посмотреть сборку, просите Codex сохранить версию без деплоя, а не выкатывать сразу.

Пошагово: от промпта до живого сайта

  1. Опишите сайт. В треде с плагином сформулируйте, что нужно собрать или опубликовать. Для деплоя вызывайте @Sites явно.
  2. Проверьте сборку. Попросите Codex валидировать билд проекта.
  3. Сохраните версию как кандидата на ревью.
  4. Проверьте перед публикацией. Посмотрите изменения исходников и миграции базы в ревью-панели Codex, убедитесь, что выбрана та версия, что нужно.
  5. Задеплойте одобренную версию и дождитесь боевого URL.
  6. Возвращайтесь к проектам через раздел Sites в сайдбаре: там смотрите статус деплоя, сохранённые версии и меняете, кто имеет доступ.

Пример промпта, который сразу метит в деплой:

@Sites Добавь в эту игру сохранение очков игроков и загрузку аватаров. Используй подходящее хранилище Sites и задеплой обновлённую версию.

Какой сайт умеет Sites

Sites хостит проекты, чья сборка выдаёт совместимый с Cloudflare Workers вывод в виде ES-модулей. Для нового проекта можно стартовать с рекомендованного стартера. Для существующего сайта сначала попросите Codex подтвердить, что билд собирает совместимые артефакты, иначе деплой не пройдёт.

Что нужноО чём просить Sites
Контентный сайт или лендингСайт без постоянного состояния, если оно реально не требуется
Внутренний сайт с личностью текущего пользователяИдентичность через авторизацию рабочего пространства
Публичный вход или внешний провайдер идентичностиПроект Sites с включённой авторизацией

Про хранение данных есть простое правило. Не просите durable storage под временное состояние вроде выбранной темы или закрытого баннера. Просите его для продуктовых данных, которые сайт должен помнить: прогресс пользователя, записи, загруженные файлы. Под структурированные данные используется реляционная база D1, под файлы — хранилище R2.


Управление доступом и секретами

Аудиторию задавайте до того, как поделиться ссылкой. Для нового сайта держите доступ на уровне владельца и админов, пока не проверили контент, работу с данными и то, кому сайт вообще предназначен.

Режим доступаКто видит сайт
admins_onlyВладелец сайта и админы рабочего пространства
customКонкретные пользователи или группы, которых вы выбрали; владелец сохраняет доступ всегда
workspace_allВсе активные пользователи рабочего пространства
Публичный доступЛюбой человек в интернете по ссылке, без аккаунта в рабочем пространстве. В Enterprise публичную публикацию сначала включает админ

Пример смены доступа:

@Sites Поменяй доступ этого сайта на всех в моём рабочем пространстве после того, как покажешь текущую версию и подтвердишь боевой URL.

Публичные сайты и вход через ChatGPT

Публичный сайт открывается по ссылке без доступа к рабочему пространству. Важно, что это две независимые настройки: аудитория сайта (кто может его открыть) и встроенный вход внутри самого сайта.

  • Аудитория задаётся режимом доступа из таблицы выше, вплоть до «любого человека в интернете».
  • Sign in with ChatGPT — отдельная функция, которую сайт может использовать для авторизации посетителей. Если включаете её, честно опишите на сайте, какие данные посетителя он получает и как их использует; за соответствие законам о персональных данных отвечаете вы.

Перед публикацией откройте сайт глазами будущего посетителя и убедитесь, что доступ и вход ведут себя так, как задумано.

Секреты и переменные окружения настраиваются в панели Sites (раздел Sites в сайдбаре, выбор проекта), а не в .openai/hosting.json.

💡
Локальные .env и .env.example держите в синхроне по ключам для локальной разработки, но не коммитьте значения секретов. После изменения хостинговых переменных попросите Codex передеплоить одобренную версию, чтобы новая конфигурация подхватилась.

Ограничения беты

  • Регионы и планы. Sites недоступен на Free и Go, а также в EEA, Швейцарии и Великобритании на старте. Публичная публикация в Enterprise по умолчанию выключена.
  • Лимиты использования. В публичной бете действуют лимиты по плану, конкретные цифры OpenAI не публикует: свои значения смотрите прямо в панели Sites для вашего плана или воркспейса, а ChatGPT предупредит по мере приближения к потолку. Лимиты считаются суммарно по всем сайтам аккаунта и могут меняться в ходе беты. При достижении лимита можно не суметь создать новый сайт, добавить хранилище или удержать публичный сайт доступным, пока не снизите нагрузку; существующие сайты остаются доступны для правок. Поверх этого работает обычная квота Codex: сборка и деплой идут через агента, поэтому тяжёлые задачи расходуют и её.
  • Кастомные домены с оговорками. Свой домен подключается там, где функция доступна, и только если он уже ваш и вы управляете его DNS. В Enterprise кастомные домены на старте недоступны.
  • Рантайм Cloudflare Workers. Не всякое существующее приложение переносится без правок; часть фреймворков, приватных сетей, баз и фоновых сервисов может не поддерживаться. Совместимость проверяйте заранее.
  • Нет residency данных. Data residency и inference residency на старте не поддерживаются, включая код сайта, данные D1/R2, артефакты и логи.
  • Запрещённые сценарии. Нельзя обрабатывать медицинские данные (PHI) и данные платёжных карт, проводить финансовые транзакции, таргетировать детей младше 13 лет, распространять вредонос или фишинг и выдавать себя за других.

Чеклист перед публикацией

Изменения исходников и миграции базы просмотрены в ревью-панели Codex.
Билд собрался, выбрана именно та сохранённая версия, что нужно.
Аудитория задана: доступ открыт только тем, кому положено.
Секреты настроены через панель Sites, а не в файлах исходников.
После деплоя статус и боевой URL подтверждены до того, как поделиться ссылкой.
Для внешних посетителей осознанно выбран режим доступа (публичная ссылка или вход) и, при необходимости, вход «Sign in with ChatGPT».

Полезные ссылки


По теме

Если вы прикидываете внутренний дашборд, лендинг или небольшой инструмент для команды и не уверены, где проходит граница между Sites и привычными конструкторами, это как раз тот случай, когда полезно разобрать конкретный сценарий.

Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov