---
title: "Deploy Fastify + WebDecoy Bot Detection"
description: "Fastify app with WebDecoy bot and AI-scraper detection on every route"
category: "Starters"
url: https://railway.com/deploy/fastify-webdecoy-bot-detection
---

# Deploy Fastify + WebDecoy Bot Detection

Fastify app with WebDecoy bot and AI-scraper detection on every route

**[Deploy Fastify + WebDecoy Bot Detection on Railway](https://railway.com/template/fastify-webdecoy-bot-detection)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/fastify-webdecoy-bot-detection/manifest.json

- **Creator:** Chris Portscheller's Projects
- **Category:** Starters

## Template content

### railway-fastify-starter

- **Source:** WebDecoy/railway-fastify-starter
- **Public domain:** Yes

## Documentation

# Deploy and Host Fastify + WebDecoy Bot Detection on Railway

A Fastify 5 app with WebDecoy bot detection already wired in. WebDecoy records the scrapers, AI crawlers, and automated tools hitting your routes, flags crawlers that fake their identity, and plants a hidden honeytoken link that only bots follow. Deploy it as a starting point, or copy the plugin registration in `server.js` into your own app.

## About Hosting Fastify + WebDecoy Bot Detection

The template is a single Node.js service built from a public GitHub repo, with a `/health` route for Railway's healthcheck. It needs one variable: `WEBDECOY_API_KEY`, which you create for free at app.webdecoy.com under Settings, API Keys. The plugin starts in monitor mode, so detections are recorded and every request is still served. Railway's `X-Forwarded-For` holds the client address followed by its own edge address, so the plugin trusts two hops rather than one. Without a key the app still runs, with local rules only.

## Common Use Cases

- See which AI crawlers and scrapers are calling your API, and which ones are forging a known crawler's user agent
- Catch scrapers with a hidden honeytoken link injected into your HTML responses
- Start in monitor mode, then switch to enforce and return a 403 to automated traffic once you trust what it flags

## Dependencies for Fastify + WebDecoy Bot Detection Hosting

- A free WebDecoy account and API key (app.webdecoy.com)
- Node.js 20 or later (Railway's builder provides it)

### Implementation Details

```javascript
import webdecoyPlugin from '@webdecoy/fastify';

await app.register(webdecoyPlugin, {
  apiKey: process.env.WEBDECOY_API_KEY,
  trustProxy: 2, // Railway: client, then Railway's edge
  skipPaths: ['/health'],
});
```

Prove it reports: `curl -A "WebDecoy-Test/1.0" https://YOUR-APP.up.railway.app/` fires a detection labeled Test in your WebDecoy dashboard, excluded from stats and billing.

## Why Deploy Fastify + WebDecoy Bot Detection on Railway?


Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Fastify + WebDecoy Bot Detection on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


## Similar templates

- [open-excalidraw](https://railway.com/deploy/open-excalidraw) — Self-hostable collaborative drawing built on Excalidraw
- [caring-vibrancy](https://railway.com/deploy/caring-vibrancy) — Deploy and Host caring-vibrancy with Railway
- [Appsmith](https://railway.com/deploy/appsmith-1) — Low-code platform for internal tools, dashboards, and admin panels.

Open this page in a browser: https://railway.com/deploy/fastify-webdecoy-bot-detection
