跳到主要内容

Fly Deploy

Deploy a starter app to Fly.io with flyctl.

Skill metadata​

SourceOptional — install with vibeos skills install official/web-development/fly-deploy
Pathoptional-skills/web-development/fly-deploy
Version1.0.0
AuthorVibeOS
LicenseMIT
Platformslinux, macos
Tagsfly, flyio, deploy, hosting, internet, docker
Related skillsinternet-starter, ship-web-service, deploy-presets, 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.

Fly Deploy

Ship an internet-starter (or similar) app to Fly.io with flyctl. Secrets only via fly secrets / .env — never invent tokens in chat.

When to Use​

  • User wants a durable public URL (not Cloudflare temporary)
  • After local health is green (vibeos project servers, browser-network-assert)

Prerequisites​

  • flyctl installed (curl -L https://fly.io/install.sh | sh or brew)
  • User logged in: fly auth login (or FLY_API_TOKEN in .env)
  • App has a Dockerfile (FastAPI starter includes one) or a Fly-compatible build
  • Install this optional skill: vibeos skills install official/web-development/fly-deploy

How to Run​

From the app root (e.g. apps/api or a FastAPI starter):

# once per app
fly launch --no-deploy --name <app-name> --region <region>
# review fly.toml, then:
fly deploy 2>&1 | tee /tmp/fly-deploy.log
python3 scripts/parse_fly_deploy.py /tmp/fly-deploy.log

Resolve scripts/parse_fly_deploy.py to this skill’s absolute path. JSON fields: app, url, hostname, deployed.

Verify:

python3 …/browser-network-assert/scripts/assert_network.py \
--probe "$URL/health" --require-ok /health --max-5xx 0

Quick Reference​

StepCommand
Loginfly auth whoami
Launchfly launch --no-deploy
Secretsfly secrets set KEY=value
Deployfly deploy
Parse URLparse_fly_deploy.py
Healthassert_network.py --probe …/health

Procedure​

  1. Local health green; do not deploy broken apps.
  2. Prefer staging app name (*-staging) when unsure.
  3. Set secrets from .env.example keys the user provides — never invent.
  4. Capture deploy log; parse URL; probe health remotely.
  5. Report URL + health result.

Pitfalls​

  • Do not commit FLY_API_TOKEN.
  • Do not enable billing/scale surprises without asking.
  • Next.js on Fly needs a Node Dockerfile — FastAPI starter is the default path; for Next, add a production Dockerfile first or use another host.

Verification​

  • parse_fly_deploy.py exits 0 with "deployed": true.
  • Remote /health returns 2xx via assert_network.py.