Files
AdrianoDev 867180f4bf feat(gateway): TLS auto + rate limit + IP allowlist su write endpoint
Configura il gateway Caddy per il deploy su cerbero-mcp.tielogic.xyz:

- Build custom Caddy con plugin mholt/caddy-ratelimit (Dockerfile +
  build via xcaddy).
- TLS automatico via Let's Encrypt (richiede DNS A record + porte
  80/443 raggiungibili), HSTS preload, header di sicurezza.
- Rate limit per IP (60 req/min sui read, 10 req/min sui write,
  sliding window).
- Allowlist IP sui write endpoint (place_*, cancel_*, set_*, close_*,
  transfer_*, amend_*, switch_*): IP non in WRITE_ALLOWLIST → 403.
- Default WRITE_ALLOWLIST copre loopback + Docker bridge: bot sulla
  stessa macchina (host o container) funziona senza configurazione,
  IP pubblici esterni vanno aggiunti esplicitamente.
- Smoke test e README aggiornati per il nuovo URL gateway.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 23:24:06 +02:00

26 lines
886 B
Markdown

# Smoke locale Cerbero_mcp
```bash
# da repo root Cerbero_mcp/
docker compose up -d
bash tests/smoke/run.sh
docker compose down
```
Il file `run.sh` verifica:
- `/health` di tutti i 6 MCP (atteso `200`)
- `environment_info` dei 4 exchange (atteso shape `{environment, source, env_value, base_url, max_leverage}`)
- live tool check read-only contro upstream testnet:
- deribit `get_ticker BTC-PERPETUAL`
- bybit `get_ticker BTCUSDT` (linear)
- hyperliquid `get_ticker BTC`
- alpaca `get_clock` (richiede credenziali paper valide)
- macro `get_treasury_yields`
- sentiment `get_funding_rates BTC`
Variabili di ambiente:
- `GATEWAY` — URL base gateway (default `http://localhost`; in produzione `https://cerbero-mcp.tielogic.xyz`)
- `TOKEN_FILE` — path al token bearer di lettura (default `secrets/observer.token`)
Exit code 0 = tutto OK, 1 = uno o più check falliti.