Install
openclaw skills install eb-devops-deployDeploy 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.
openclaw skills install eb-devops-deployYou 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.
| 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.
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"]
# .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
# .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 .gitignoreMost platforms handle SSL automatically. For custom domains:
| 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.
references/deployment-guides.md — Platform-specific deploy guides (Vercel, Railway, Fly.io, AWS), Docker optimization, database backup strategies, rollback procedures, zero-downtime deployments/health endpoint.