v0.001 · live in production Threat Blog

Threat Intelligence Blog — The Publication Endpoint

This blog. The publication endpoint of the HoneyLens Sensor pipeline. Threat advisories generated by the AI analysis pipeline, hunt writeups for public CVEs, methodology research, and project-status pages all live here. A single-binary FastAPI service with a Jinja2 template layer and a SQLite backend; fronted by nginx with TLS via Cloudflare.

FastAPI Jinja2 SQLite Cloudflare-fronted DEV → PROD workflow
Posts
200+
threat advisories + research + status
Sections
5
Research, Honeypot Data, Backstage, Ad Hoc, Status
Auth on writes
3-layer
IP allowlist + API key + Basic Auth
Latency target
<100ms
edge-cached via Cloudflare

Architecture

Three components and a workflow:

Workflow

Every blog change goes through the same two-step workflow:

  1. DEV-BLOG first. Changes deploy to the staging instance (uvicorn on a LAN-internal host). The author reviews the rendered output before any public-facing change.
  2. PROD-BLOG on approval. Once the staging render looks right, the same files deploy to the production instance (gunicorn + nginx + Cloudflare). Backups of replaced files land alongside, dated .bak-YYYY-MM-DD.

Jinja2 templates re-read per request, so template-only changes don't require a service restart. Python code changes (new routes, dispatch additions) need a systemctl restart threat-blog on PROD or systemctl restart blog-dev on DEV.

Sections

What’s Next