技能 硬件工程 静态页面云端部署

静态页面云端部署

v20260416
static-deploy
用于将静态网站文件(包括HTML、CSS、JS、图片等)部署到指定的云端域名。该技能通过Cloudflare Pages实现自动化部署,适用于单页应用、作品集、登陆页或文档网站。它能处理文件分阶段和缓存规则,确保部署后的内容是最新的。
获取技能
76 次下载
概览

Static Deploy

Deploy static files to <project-slug>.nexu.space via Wrangler + Cloudflare Pages.

The deploy script stages a temporary copy of the site and injects a _headers file (if needed) with cache revalidation rules for HTML/CSS/JS to reduce stale asset issues after redeploys. Source files are not modified.

What it deploys

Any static files: HTML, CSS, JS, images, fonts, etc. Common use cases:

  • Single-page apps (React, Vue, etc. — deploy the dist/ or build/ folder)
  • Landing pages, portfolios, documentation sites
  • Quick prototypes or demos
  • Any folder with an index.html

Usage

  1. Identify the directory containing files to deploy (must have an index.html)
  2. Derive a project-slug from context (e.g., "family budget" → family-budget)
    • Lowercase alphanumeric + hyphens only, max 63 characters
    • Reuse the same slug for redeployments
    • Ask user to confirm if ambiguous
  3. Run deploy with the inbound structured context:
"$SKILL_DIR/scripts/deploy.sh" <project-slug> <directory> <agent-id> <chat-id> [thread-id] [message-ref] [account-id] [channel] [chat-type] [sender-ref]

agent-id is required. The script uses it to resolve the corresponding botId from nexu-context.json when recording deployment artifacts.

chat-id is the raw inbound chat identifier from the message context.

  • DM example: U0AHLMC6C8G
  • Channel example: C0AJKG60H6D

chat-type tells the script whether to send that id to Nexu as user:<chat-id> or channel:<chat-id>. The script does that translation; do not concatenate those prefixes yourself.

thread-id is optional — pass it when deploying from within a thread context. 4. Parse the JSON output and report to user:

  • Brief summary of what was deployed
  • Live URL from the url field
  • Important: Tell the user that Cloudflare Pages propagation takes ~3 minutes. The URL may not work immediately after the first deploy. For redeployments, it's usually faster.

Example reply

Deployed! Your site is live at https://family-budget.nexu.space

Note: First-time deploys take ~3 minutes to propagate on Cloudflare. If you see a "not found" page, wait a few minutes and refresh.

Rules

  • Never read, echo, or log SKILL_API_TOKEN, CLOUDFLARE_API_TOKEN, or CLOUDFLARE_ACCOUNT_ID
  • Never pass credentials as command arguments
  • Always use the bundled deploy.sh — do not call Cloudflare API directly
  • Do not set DEPLOY_BACKEND or any other env overrides — the script handles everything
  • Always pass the caller <agent-id> as arg #3 to deploy.sh
  • Always pass raw inbound <chat-id> as arg #4
  • Never pass <agent-id> as <chat-id>; they are different values
  • If deploying from a thread, pass <thread-id> as arg #5
  • Always pass <channel> and <chat-type> when available so Nexu can resolve the correct session deterministically
  • Do not try to look up or persist a canonical session key in this skill; Nexu resolves it server-side
  • Do not hand-edit source files just to add cache-busting query params; the deploy script handles cache revalidation via a staged _headers file
  • If the script fails, show the message field from the JSON error to the user
  • Cloudflare credentials are fetched at runtime via the scoped secrets API using SKILL_API_TOKEN from env — do not attempt to read or inject them manually

Output Format

Success:

{
  "status": "success",
  "url": "https://<slug>.nexu.space",
  "deployment_url": "https://<id>.<slug>.pages.dev",
  "files_total": 10,
  "files_uploaded": 2,
  "files_cached": 8
}

Error:

{
  "status": "error",
  "message": "Description of what went wrong"
}
信息
Category 硬件工程
Name static-deploy
版本 v20260416
大小 9.36KB
更新时间 2026-04-28
语言