Deploy Presets
Docker Compose and Cloudflare deploy recipes for starters.
Skill metadata
| Source | Bundled (installed by default) |
| Path | skills/devops/deploy-presets |
| Version | 1.1.0 |
| Author | VibeOS |
| License | MIT |
| Platforms | linux, macos, windows |
| Tags | deploy, docker, cloudflare, compose, internet, fly |
| Related skills | internet-starter, docker-management, cloudflare-temporary-deploy, fly-deploy, docker-vps-ship, browser-network-assert |
Reference: full SKILL.md
The following is the complete skill definition that VibeOS loads when this skill is triggered. This is what the agent sees as instructions when the skill is active.
Deploy Presets
Take an internet-starter (or similar) app to a runnable remote URL using
Docker Compose locally/on a VPS, Cloudflare Workers temporary deploy,
Fly.io, or docker-vps-ship.
When to Use
- User asks to deploy, dockerize, or put a starter online
- After
vibeos project new next|fastapi
Prerequisites
- Docker + Compose for the docker path
- For Cloudflare: install optional skill
cloudflare-temporary-deploywhen needed - Never commit secrets; use
.envfrom.env.example
How to Run
FastAPI via Compose
From the project root (has Dockerfile from internet-starter):
# write compose if missing
cat > docker-compose.yml <<'EOF'
services:
api:
build: .
ports:
- "8000:8000"
env_file:
- .env
EOF
cp -n .env.example .env 2>/dev/null || true
docker compose up --build -d
curl -sf http://127.0.0.1:8000/health
Next.js via Compose (Node image)
Prefer platform hosts for Next when possible. For a simple container:
# production build inside node image — adjust as needed
docker run --rm -p 3000:3000 -v "$PWD":/app -w /app node:22 \
bash -lc 'npm ci && npm run build && npm start'
Cloudflare temporary Worker
Load the optional cloudflare-temporary-deploy skill and follow its scripted
flow. Use only for previews, not production secrets.
Fly.io
Install optional fly-deploy and follow fly launch / fly deploy +
parse_fly_deploy.py. Verify with browser-network-assert.
Docker on a VPS
Install optional docker-vps-ship: rsync → docker compose up →
compose_health_wait.py.
Quick Reference
| Target | Health check |
|---|---|
| FastAPI compose | curl http://127.0.0.1:8000/health |
| Next local | curl http://127.0.0.1:3000/api/health |
| Cloudflare | claim URL from deploy skill output |
Procedure
- Confirm the app health-checks locally first.
- Choose docker (VPS/local) or Cloudflare (preview).
- Deploy with
terminal; capture URL. - Verify health; report URL + how to tear down (
docker compose down).
Pitfalls
- Do not expose DB ports publicly without auth.
- Cloudflare
--temporaryis short-lived — say so in the reply. - Timeweb/custom VPS: use SSH + docker compose; do not invent panel APIs.
Verification
- Health endpoint returns
{"status":"ok"}(or equivalent). - User has a concrete URL or
localhostport.