# Deployment

FxSteam is a plain Node/Express app and is ready for Railway-style deployment.

## Requirements

- Node.js 22
- npm 10
- Public HTTPS origin, configured with `PUBLIC_BASE_URL`

## Environment

```bash
PORT=3000
PUBLIC_BASE_URL=https://fxsteam.up.railway.app
CACHE_TTL_SECONDS=900
FETCH_TIMEOUT_MS=8000
NODE_ENV=production
```

Railway provides `PORT` automatically. Set `PUBLIC_BASE_URL` to the exact public origin Discord will crawl.

## Commands

```bash
npm install
npm test
npm start
```

## Deploy Checklist

- `npm test` passes.
- `PUBLIC_BASE_URL` matches the deployed domain.
- `/healthz` returns `{ "ok": true }`.
- `/openapi.json` loads from the public domain.
- A fresh Discord test URL renders the expected Workshop title, description, and image.
