<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Deployment on KnightLi Blog</title>
        <link>https://knightli.com/en/tags/deployment/</link>
        <description>Recent content in Deployment on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Mon, 13 Jul 2026 07:39:00 +0800</lastBuildDate><atom:link href="https://knightli.com/en/tags/deployment/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>How to use ChatGPT Sites: From prompt words to hosted website publishing and
security checks</title>
        <link>https://knightli.com/en/2026/07/13/chatgpt-sites-hosted-website-publish-guide/</link>
        <pubDate>Mon, 13 Jul 2026 07:39:00 +0800</pubDate>
        
        <guid>https://knightli.com/en/2026/07/13/chatgpt-sites-hosted-website-publish-guide/</guid>
        <description>&lt;p&gt;ChatGPT Sites is a managed website building workflow in ChatGPT: it can create, host, modify and share websites, web applications or mini-games. It is suitable for quickly making internal tools, demo pages and lightweight product prototypes, but it cannot be used as a &amp;ldquo;one-click go online without checking after generation&amp;rdquo; tool - each deployment URL is the address of the production environment.&lt;/p&gt;
&lt;p&gt;This article is based on [OpenAI official Sites document] (&lt;a class=&#34;link&#34; href=&#34;https://learn.chatgpt.com/docs/sites&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://learn.chatgpt.com/docs/sites&lt;/a&gt;) to organize a practical process from requirement description to release acceptance. Sites is currently a public beta feature, and actual availability is affected by plan, region, and workspace settings.&lt;/p&gt;
&lt;h2 id=&#34;first-distinguish-sites-codex-and-ordinary-chatgpt-dialogue&#34;&gt;First distinguish: Sites, Codex and ordinary ChatGPT dialogue
&lt;/h2&gt;&lt;p&gt;Sites&amp;rsquo; responsibility is to manage hosting projects and releases. You can enter through &amp;ldquo;More &amp;gt; Sites&amp;rdquo; on the ChatGPT Work web page, or use it on the ChatGPT desktop side. Codex CLI and IDE extensions can edit and test local projects, but there is no independent Sites management interface; when you need to create, save, deploy or adjust access permissions, you still return to the ChatGPT web or desktop.&lt;/p&gt;
&lt;p&gt;This means that a sound division of labor is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use Codex to check the code, dependencies and build results locally;&lt;/li&gt;
&lt;li&gt;Use Sites to generate a hosted version or connect to a compatible local project;&lt;/li&gt;
&lt;li&gt;Review content and data processing in Sites preview;&lt;/li&gt;
&lt;li&gt;After confirming the audience and permissions, deploy the production URL.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Don&amp;rsquo;t confuse Sites with ChatGPT Project. A Site is a hosted product that can be continuously opened, modified, configured, and shared; it persists after the initial Work task ends.&lt;/p&gt;
&lt;h2 id=&#34;before-creation-write-the-requirements-into-acceptable-prompt-words&#34;&gt;Before creation: Write the requirements into acceptable prompt words
&lt;/h2&gt;&lt;p&gt;At a minimum, the prompt should describe the audience, page purpose, core interactions, and data sources. It&amp;rsquo;s usually not enough to just say &amp;ldquo;make a project management website&amp;rdquo;. It&amp;rsquo;s better to add who uses it, what to save, and how to control permissions.&lt;/p&gt;
&lt;p&gt;For example, the following prompt clearly states the functional boundaries and acceptance conditions:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;为运营团队创建一个项目需求看板。成员可以提交需求、查看负责人、更新状态并按状态筛选。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;仅限工作区成员登录；需求记录必须在刷新页面后保留。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;先生成可审查版本，不要发布；同时列出需要我确认的数据字段和权限设置。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The last sentence is important: it explicitly requires saving the version first rather than going live. If it is just a display landing page, it should also indicate &amp;ldquo;no persistent data required&amp;rdquo; to prevent the system from introducing unnecessary storage for temporary UI state.&lt;/p&gt;
&lt;h2 id=&#34;choose-the-right-data-and-identity-capabilities&#34;&gt;Choose the right data and identity capabilities
&lt;/h2&gt;&lt;p&gt;According to official documentation, Sites can access different capabilities based on product form:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;need&lt;/th&gt;
          &lt;th&gt;Competencies that should be clearly stated&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Landing page, content station&lt;/td&gt;
          &lt;td&gt;No need to persist state by default&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;User records, progress, scores&lt;/td&gt;
          &lt;td&gt;D1 relational database&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Upload pictures, documents, audio and video&lt;/td&gt;
          &lt;td&gt;R2 object storage&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Upload files and their searchable metadata&lt;/td&gt;
          &lt;td&gt;D1 saves metadata, R2 saves files&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;For internal employee use only&lt;/td&gt;
          &lt;td&gt;Workspace authentication&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Public facing and login required&lt;/td&gt;
          &lt;td&gt;Authentication-enabled Site&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The criterion for persistent data is simple: whether the user expects to see it the next time they visit. Temporary display states such as theme colors and closed banners are generally not required; orders, form records, uploaded files, and game scores are.&lt;/p&gt;
&lt;h2 id=&#34;practical-operations-describe-review-modify-save&#34;&gt;Practical operations: describe, review, modify, save
&lt;/h2&gt;&lt;p&gt;A repeatable workflow is as follows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Describe Site&lt;/strong&gt;: Enter clear requirements and attach reference documents, brand materials or existing projects;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Review Preview&lt;/strong&gt;: Check whether the page text, interaction, and data are as expected;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Iterative modification&lt;/strong&gt;: Select Edit in the preview and describe the changes in natural language; add screenshots or files if necessary;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Save version&lt;/strong&gt;: Let ChatGPT build a deployable version, but not publish it yet;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deploy version&lt;/strong&gt;: Only after confirming the content, permissions and audience, the approved saved version is required to be deployed.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;ldquo;Save version&amp;rdquo; and &amp;ldquo;Deploy version&amp;rdquo; are two stages. For local projects, the saved version will be associated with the Git commit used for building, so check the workspace status before committing to avoid bringing unverified changes online.&lt;/p&gt;
&lt;p&gt;If you want to bring an existing project online, you can ask this question:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;检查当前项目能否生成兼容的 Sites 部署产物；修复必要的兼容性问题，
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;保存一个可审查版本并说明改动。不要部署，等我确认后再发布。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;four-checks-before-publishing&#34;&gt;Four checks before publishing
&lt;/h2&gt;&lt;p&gt;Release is not a final button press, but a round of acceptance. Check at least the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Content and Behavior&lt;/strong&gt;: Whether the page uses correct information, and whether forms, filters, jumps and error states are available;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data and files&lt;/strong&gt;: Whether the uploaded content, database records and access scope meet expectations;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Access Rights&lt;/strong&gt;: Prioritize the narrowest sharing scope, such as only yourself, invited members, workspace members, and finally &amp;ldquo;anyone with the link&amp;rdquo;;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Real access test&lt;/strong&gt;: Open the shared production URL and confirm whether it can be accessed with the permissions of the target audience.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Workspace administrators can restrict public sharing. Even if a shared link is obtained, visitors will only have browsing permissions and will not automatically have permission to edit the Site.&lt;/p&gt;
&lt;h2 id=&#34;dont-give-the-key-to-the-prompt-word&#34;&gt;Don’t give the key to the prompt word
&lt;/h2&gt;&lt;p&gt;Runtime environment variables and keys should be added, updated, or removed in Sites&amp;rsquo; settings. Do not put keys in prompts, attachments, site content, &lt;code&gt;.openai/hosting.json&lt;/code&gt;, or Git commits.&lt;/p&gt;
&lt;p&gt;Local projects should still use &lt;code&gt;.env&lt;/code&gt; and &lt;code&gt;.env.example&lt;/code&gt; to manage variable names required for the development environment; &lt;code&gt;.env.example&lt;/code&gt; only retains key names and safe examples, not real values. After changing the managed environment variables, you need to redeploy the reviewed version before the new configuration can take effect in the production environment.&lt;/p&gt;
&lt;p&gt;For projects connected to local source code, &lt;code&gt;.openai/hosting.json&lt;/code&gt; is used to record managed project associations and optional storage bindings, such as the binding name of &lt;code&gt;project_id&lt;/code&gt;, D1, or R2. It&amp;rsquo;s not a secret profile.&lt;/p&gt;
&lt;h2 id=&#34;faq&#34;&gt;FAQ
&lt;/h2&gt;&lt;h3 id=&#34;why-cant-i-find-sites&#34;&gt;Why can&amp;rsquo;t I find Sites?
&lt;/h3&gt;&lt;p&gt;Sites is still in public beta and availability is tied to plan, region, and workspace settings. First confirm that you are using ChatGPT Work web client or ChatGPT desktop client; if it is not visible in the managed workspace, then confirm the functions and sharing policies with the administrator.&lt;/p&gt;
&lt;h3 id=&#34;can-i-manage-releases-using-just-the-codex-cli&#34;&gt;Can I manage releases using just the Codex CLI?
&lt;/h3&gt;&lt;p&gt;cannot. Codex CLI can modify and test local projects, but creating, saving, deploying and managing Sites must be completed on the ChatGPT web or desktop.&lt;/p&gt;
&lt;h3 id=&#34;why-do-i-find-that-the-content-is-incorrect-after-deployment-is-successful&#34;&gt;Why do I find that the content is incorrect after &amp;ldquo;deployment is successful&amp;rdquo;?
&lt;/h3&gt;&lt;p&gt;Because the deployment URL is already the production address. Next time, ask to save the reviewable version first, check the preview and source code changes before deploying; if it is already online, tighten the access scope immediately, then fix and release a new reviewable version.&lt;/p&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;The value of ChatGPT Sites is to put &amp;ldquo;conception, generation, hosting, and iteration&amp;rdquo; into the same workflow, but the release responsibility remains with the user. Fixing the process as &amp;ldquo;clear requirements → save version → preview review → least privilege sharing → real access acceptance&amp;rdquo; can significantly reduce the risks of direct exposure of prototypes, improper data configuration and key leaks.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
