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

# Deploy Express + WebDecoy Bot Detection

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

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

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

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

## Template content

### railway-express-starter

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

## Documentation

 Deploy and Host Express + WebDecoy Bot Detection on Railway

An Express 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 few lines in `server.js` into your own app.

## About Hosting Express + 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 middleware starts in monitor mode, so detections are recorded and every request is still served. It reads the real visitor IP from Railway's proxy headers: Railway's `X-Forwarded-For` holds the client address followed by its own edge address, so the app 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 reading your API or site, and which ones are forging a known crawler's user agent
- Catch scrapers with a hidden honeytoken link that people never see or follow
- Start in monitor mode, then switch to enforce and return a 403 to automated traffic once you trust what it flags

## Dependencies for Express + 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
app.set('trust proxy', 2); // Railway: client, then Railway's edge

app.use(webdecoy({
  apiKey: process.env.WEBDECOY_API_KEY,
  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 Express + WebDecoy Bot Detection on Railway?

<!-- Recommended: Keep this section as shown below -->
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 Express + 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.
<!-- End recommended section -->

## 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/express-webdecoy-bot-detection
