ClawSkills logoClawSkills

Web Deploy

使用 Vercel、Railway、GitHub Pages 或本地 Canvas 环境构建、预览和部署网站、Web 应用和 API。

介绍

# web-deploy

构建网站、Web 应用和 API 并将其部署到生产环境。

## 本地预览工作流

```bash # Static site npx http-server ./dist -p 8080 -c-1

# Next.js npm run dev # Development (hot reload) npm run build && npm run start # Production preview

# FastAPI uvicorn app.main:app --reload --port 8000

# Vite-based npm run dev # Dev server npm run build && npx serve dist # Production preview ```

## 部署目标

### Vercel (Frontend / Next.js / Static)

```bash # First time setup npx vercel link

# Preview deployment npx vercel

# Production deployment npx vercel --prod

# Environment variables npx vercel env add SECRET_KEY ```

**适用于:** Next.js 应用、React SPA、静态站点、无服务器函数。

**配置:** `vercel.json`(通常 Next.js 不需要) ```json { "buildCommand": "npm run build", "outputDirectory": "dist", "framework": "nextjs" } ```

### Railway (Backend / APIs / Databases)

```bash # First time setup railway login railway init

# Deploy railway up

# Add database railway add --plugin postgresql

# Environment variables railway variables set SECRET_KEY=value

# View logs railway logs ```

**适用于:** 后端 API、数据库、长时间运行的进程、Docker 容器。

### GitHub Pages (静态站点)

```bash # Using gh-pages package npm install -D gh-pages # Add to package.json scripts: "deploy": "gh-pages -d dist" npm run build && npm run deploy ```

**适用于:** 文档、简单的静态站点、项目页面。

### Canvas (Clawdbot 工作区)

部署到 `~/clawd/canvas/` 以通过 clawdbot 网关进行本地服务。 ```bash cp -r ./dist/* ~/clawd/canvas/my-project/ ```

## 部署前检查清单

- [ ] 本地构建成功 (`npm run build` / `python -m build`) - [ ] 无 TypeScript/lint 错误 - [ ] 测试通过 - [ ] 在目标平台上设置了环境变量 - [ ] `.env` / 密钥**未**提交到 git - [ ] 如果是公开站点,需配置 `robots.txt` 和 `sitemap.xml` - [ ] 设置了 Favicon 和 meta 标签 - [ ] 配置了 HTTPS(Vercel/Railway 上自动配置) - [ ] 配置了错误页面 (404, 500) - [ ] 性能:图片已优化、代码已拆分、无巨大打包文件

## 回滚

```bash # Vercel — redeploy previous npx vercel rollback

# Railway — redeploy previous railway rollback

# Git-based — revert and push git revert HEAD && git push ```

## 域名设置

```bash # Vercel npx vercel domains add mydomain.com

# DNS: Point CNAME to cname.vercel-dns.com # Or A record to 76.76.21.21 ```

更多产品