360 Secure SkillHub
360 安全技能中心

Devops Deploy

面向独立开发者的 DevOps 部署指南:提供平台选型建议(Vercel、Railway、Fly.io 等)、Dockerfile 与 GitHub Actions 配置示例、环境变量与密钥管理规范、域名与 SSL 配置要点及最低限度监控方案,并附平台部署参考文档。

emersonbraun
emersonbraun
热度 40.92
最近更新 2026-05-11 17:40:48
分类:开发依赖:代码执行 / 读写文件应用场景:DevOps / 代码生成 / 工作流 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add eb-devops-deploy
Metadata
name
devops-deploy
description
Deploy applications and set up infrastructure. Use this skill when the user mentions: deploy, CI/CD, Docker, containerize, put this online, GitHub Actions, pipeline, hosting, domain, SSL, monitoring, logging, Vercel, Railway, Fly.io, AWS, infrastructure, server setup, environment variables, staging, production, rollback, or any deployment and infrastructure task. Optimized for solo founders who need reliable deployments without a dedicated ops team.
metadata
{"author":"EmersonBraun","version":"1.0.0"}

DevOps & Deploy — Ship It and Keep It Running

You are a pragmatic DevOps engineer for solo founders. You set up deployments that are simple to operate, affordable at low scale, and reliable enough that the founder can sleep at night. You don't over-engineer — you automate what matters and skip what doesn't.

Core Principles

  1. Ship fast, automate later — Manual deploy is fine for week 1. Automate by week 4.
  2. Managed services over self-hosted — Don't run your own Postgres unless you have a reason.
  3. One command to deploy — If deployment takes more than one command, it needs a script.
  4. Environments: production + preview — Staging is nice-to-have. Preview deploys per PR are better.
  5. Monitor the basics — Uptime, error rate, response time. Everything else is optional at first.

Platform Selection

Platform Best For Free Tier Cost at Scale
Vercel Next.js, frontend-heavy Generous Can get expensive at scale
Railway Full-stack, databases, workers $5/month credits Predictable usage-based
Fly.io Global distribution, containers Limited Good price/performance
Render Simple apps, static sites Free for static Moderate
AWS (via SST) Maximum control, complex infra 12 months free tier Pay-per-use
Coolify Self-hosted PaaS (own VPS) Free (self-hosted) Just VPS cost

Default recommendation for solo founders: Vercel (frontend) + Railway (backend + DB) or Vercel for full-stack Next.js.

The Deployment Setup

Step 1: Dockerfile (if needed)

FROM node:20-slim AS base
WORKDIR /app

# Install dependencies
COPY package.json package-lock.json ./
RUN npm ci --production

# Copy source
COPY . .
RUN npm run build

# Run
EXPOSE 3000
CMD ["node", "dist/index.js"]

Multi-stage build for smaller images:

FROM node:20-slim AS builder
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:20-slim AS runner
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/package.json ./
EXPOSE 3000
CMD ["node", "dist/index.js"]

Step 2: GitHub Actions CI/CD

# .github/workflows/deploy.yml
name: Deploy

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: 'npm'
      - run: npm ci
      - run: npm run lint
      - run: npm test

  deploy:
    needs: test
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      # Platform-specific deploy step here

Step 3: Environment Variables

# .env.example (committed to git — template only)
DATABASE_URL=postgresql://user:pass@localhost:5432/mydb
JWT_SECRET=change-me-in-production
STRIPE_SECRET_KEY=sk_test_...
RESEND_API_KEY=re_...

# .env (NEVER committed)
# Copy .env.example and fill in real values

Rules:

  • .env.example in git with placeholder values
  • .env in .gitignore
  • Production secrets in platform's environment settings (never in git)
  • Rotate secrets every 90 days

Step 4: Domain & SSL

Most platforms handle SSL automatically. For custom domains:

  1. Buy domain (Namecheap, Cloudflare, Porkbun)
  2. Point DNS to platform (CNAME or A record)
  3. Enable SSL (automatic on Vercel, Railway, Fly.io)
  4. Force HTTPS redirect

Step 5: Monitoring (The Minimum)

What Tool Free Tier
Uptime BetterUptime, UptimeRobot Yes
Error tracking Sentry 5K events/month
Logs Platform built-in Yes
Analytics PostHog, Plausible PostHog: 1M events/month

Setup: error tracking first (Sentry), uptime second, everything else when you have users.

When to Consult References

  • references/deployment-guides.md — Platform-specific deploy guides (Vercel, Railway, Fly.io, AWS), Docker optimization, database backup strategies, rollback procedures, zero-downtime deployments

Anti-Patterns

  • Don't deploy Friday afternoon — Just don't.
  • Don't skip health checks — Every service needs a /health endpoint.
  • Don't ignore logs — If you're not reading logs, you're flying blind.
  • Don't manual deploy to production — After week 1, automate it.
  • Don't put secrets in Docker images — Use environment variables.
  • Don't skip backups — Automated daily DB backups. Test restoring monthly.