> ## Documentation Index
> Fetch the complete documentation index at: https://restcountries.francocarballar.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Deploy

This API is designed to be deployed to Cloudflare Workers using the Wrangler CLI.

## Prerequisites

* Node.js and npm/yarn/bun installed.
* A Cloudflare account.
* Wrangler CLI installed globally or as a dev dependency (`npm install -g wrangler` or `bun add -d wrangler`).

## Configuration

1. **Login to Cloudflare:**

   ```bash theme={null}
   wrangler login
   ```

   Follow the prompts to authenticate with your Cloudflare account.

2. **Review `wrangler.jsonc` (or `wrangler.toml`):**
   * Ensure the `name` property reflects the desired name for your Worker service.
   * Verify the `main` property points to the correct entry file (likely related to `src/app/index.ts` after build). *(Exact path depends on build output)*
   * Check `compatibility_date` and update if necessary.
   * Confirm the `account_id` is present or configured via environment variables/secrets if needed.
   * *(Add any specific details found in wrangler.jsonc, like KV namespaces, routes, etc. if they were present)*

## Build

Before deploying, you need to build the TypeScript code into JavaScript suitable for Cloudflare Workers.

```bash theme={null}
# Check package.json for the exact build script
bun run build
# Or: npm run build / yarn build
```

This command typically uses `tsc` or another bundler (like esbuild via Hono's build tools) to compile the code, often outputting to a `dist` directory.

## Deploy

Once built, deploy the worker using Wrangler:

<CodeGroup>
  ```bash bun theme={null}
  bun run deploy
  ```

  ```bash pnpm theme={null}
  pnpm run deploy
  ```

  ```bash npm theme={null}
  npm run deploy
  ```

  ```bash yarn theme={null}
  yarn run deploy
  ```
</CodeGroup>

Wrangler will upload the built code and configure the Worker according to `wrangler.jsonc`. After deployment, it will usually output the URL where the Worker is accessible.

## CI/CD (Continuous Integration / Continuous Deployment)

*(No specific CI/CD configuration (e.g., GitHub Actions, GitLab CI) was detected in the repository structure provided.)*

To set up CI/CD:

1. Create workflow files (e.g., `.github/workflows/deploy.yml`).
2. Configure steps to:
   * Checkout the code.
   * Set up Node.js/Bun.
   * Install dependencies (`bun install`).
   * Build the project (`bun run build`).
   * Deploy using Wrangler (`wrangler deploy`).
3. Store Cloudflare API tokens (`CF_API_TOKEN`) and `CF_ACCOUNT_ID` securely as secrets in your CI/CD environment. The Wrangler deploy command can use these environment variables for authentication.
