### Configure build and start for Fastify

Configure build and start for a Fastify app on Ample. Fastify must listen with host 0.0.0.0 on process.env.PORT. Ample detects the runtime, installs dependencies, runs the build when present and starts the app on the node-22 template behind a public HTTPS URL.

---

#### Prerequisites
- A package.json with build and start scripts
- A server that listens on process.env.PORT and 0.0.0.0
- An Ample account token with servers:write

---

#### Tested Configuration
- **Template:** node-22  
- **Runtime:** node  
- **Size:** s-1vcpu-1gb  
- **Install:** npm install  
- **Build:** npm run build --if-present  
- **Start:** npm run start

---

### Workflow Steps
1. **Make the start command bind correctly**  
   Fastify must listen with host 0.0.0.0 on process.env.PORT.

2. **Deploy**  
   Run the existing synchronous deploy once from the project directory and read the result. Exit 0 is live, 1 is failed, 2 is blocked on a required preflight action. Re-running with no change is a content-addressed no-op.  
   **Command:** `ample deploy . --name  --public --format json`

3. **Verify**  
   Fetch the live URL and run the success checks below. On failure read the build log, then the runtime log, fix the cause and deploy again; do not blind-retry.  
   **Command:** `ample logs  --kind build`

---

### Examples
- **fastify-basic canary**  
   Minimal Fastify server deployed with the detected npm commands.

---

### Success Checks
- **Description:** Page or root route responds  
   **Kind:** http_get  
   **Path:** /  
   **Expect:** ample canary fastify basic

---

### Limitations
- Verified on the node-22 template at s-1vcpu-1gb; other templates and sizes are not verified by this recipe.
- Region, compliance attestations and request-duration limits are unknown and not claimed.
- Apps auto-pause when idle and wake on the next request; always-on is an operator setting, not a plan feature.

---

### Cost Estimate
- **Currency:** USD  
- **Monthly Amount:** 5.0  
- **Basis:** Size prices from pricing.toml (loaded by the API) at build revision 1ac5595375130d45290090e82ed0f554ccd45405-dirty  
- **Components:**  
  - **Name:** app server  
    **Size:** s-1vcpu-1gb  
    **Quantity:** 1.0  
    **Monthly Amount:** 5.0  
- **Note:** Apps and managed databases auto-pause when idle; the estimate is the always-on monthly price of the tested sizes. Plan quotas and budgets apply.

---

### Evidence Summary
- **Kind:** canary_run  
  **Summary:** Fastify app deployed on node-22 and served the expected response.  
  **Observed At:** 2026-09-19T23:55:33Z  
  **Implementation Revision:** 1764076-tls-account-903d345  
  **Expires At:** 2027-03-18T23:55:33Z  
  **Scope:**  
    - **CLI Version:** 0.1.20  
    - **Platform:** hosted-beta  
    - **Template:** node-22

---

### Next Actions
- **Browse Catalog**: Search published recipes by intent, stack and constraints.
- **Prepare Deployment Plan**: Create a side-effect-free deployment plan for an authorized project.
