← Back to Skills
DevOps

web-deploy

cmanfre7 By cmanfre7 👁 27 views ▲ 0 votes

Build and deploy websites, web apps, and APIs to production.

GitHub
# web-deploy

Build and deploy websites, web apps, and APIs to production.

## Local Preview Workflow

```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
```

## Deployment Targets

### 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
```

**Best for:** Next.js apps, React SPAs, static sites, serverless functions.

**Config:** `vercel.json` (usually not needed for 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
```

**Best for:** Backend APIs, databases, long-running processes, Docker containers.

### GitHub Pages (Static Sites)

```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
```

**Best for:** Documentation, simple static sites, project pages.

### Canvas (Clawdbot Workspace)

Deploy to `~/clawd/canvas/` for local serving through the clawdbot gateway.
```bash
cp -r ./dist/* ~/clawd/canvas/my-project/
```

## Pre-Deploy Checklist

- [ ] Build succeeds locally (`npm run build` / `python -m build`)
- [ ] No TypeScript/lint errors
- [ ] Tests pass
- [ ] Environment variables set on target platform
- [ ] `.env` / secrets NOT in git
- [ ] `robots.txt` and `sitemap.xml` if public site
- [ ] Favicon and meta tags set
- [ ] HTTPS configured (automatic on Vercel/Railway)
- [ ] Error pages (404, 500) configured
- [ ] Performance: images optimized, code split, no huge bundles

## Rollback

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

# Railway — redeploy previous
railway rollback

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

## Domain Setup

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

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

Comments

Sign in to leave a comment

Loading comments...