a3920cacd5030d58b55754021e3a8a90d826c191
- npm ci requires a package-lock.json; use npm install --omit=dev instead - Change all port references from 3001 to 3091 (3001 is occupied) - docker-compose.yml: ports, PORT env, healthcheck URL - Dockerfile: EXPOSE - .env.example: PORT default Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Bot Intelligence API
Centralized bot-blocking telemetry server for the InformatiQ Toolkit WordPress plugin.
Quick start
cp .env.example .env
# Edit .env and set a strong API_TOKEN
docker compose up -d
Dashboard available at http://your-server:3001/
API Endpoints
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /api/v1/submit |
Bearer token | Submit a batch of bot events (max 50) |
| GET | /api/v1/stats |
— | Aggregated statistics (cached 30s) |
| GET | /api/v1/stream |
— | SSE live event stream |
| GET | /api/v1/health |
— | Health check |
Submit payload
{
"site_hash": "sha256-of-home-url",
"bots": [
{
"ip": "1.2.3.4",
"bot_type": "malicious_bot",
"action": "blocked",
"reason": "Malicious bot detected",
"user_agent": "BadBot/1.0",
"request_uri": "/wp-login.php",
"logged_at": "2026-01-01 12:00:00"
}
]
}
action is one of: blocked, rate_limited
Environment variables
| Variable | Default | Description |
|---|---|---|
PORT |
3001 |
Listen port |
DB_PATH |
/data/bots.db |
SQLite database path |
API_TOKEN |
(empty) | Bearer token (leave empty for open/dev mode) |
Description
Languages
HTML
62.5%
JavaScript
36.9%
Dockerfile
0.6%