Back to blog
FILE 0x7D·SKETCHING A ONE-CLICK HONEYPOT INSTALLER

Sketching a one-click honeypot installer

April 26, 2026 · security, honeypots, homelab

Honeypots are useful and almost nobody runs them, because the existing stacks are either too heavy (multi-container threat-intel platforms that need 16 GB of RAM) or too DIY (raw Cowrie, configure your own notifications, hope you remember to look at the logs).

So I've been sketching out a one-click installer that targets the boring middle: a Raspberry Pi or small VPS, a believable persona banner, sane notifications, no ELK.

Existing options I looked at

OpenCanary is the right base. T-Pot is the wrong scope. Cowrie is fine if I'm only ever pretending to be a Linux box.

The minimum viable product

Pi 4 or 5 with 4 GB or better. One installer script. Picks a persona, drops the right OpenCanary config, installs a notifier sidecar, sets a cron to keep things alive, registers webhook URLs.

Three personas to ship first:

The installer is a single bash script wrapping docker-compose and a ~150-line Python notifier sidecar. The notifier reads the OpenCanary log stream, dedupes per-source-IP for a configurable window, and fans events out to webhooks (ntfy, Pushover, Slack, Discord, or plain email — pick at install time).

The rate-limiting problem

Without dedup, a single nmap scan against the box will send 65,535 notifications. That's a great way to get the notifier muted.

Strategy: track first-touch per (source IP, port) tuple. If the same source hits the same port within N minutes, increment a counter on the existing alert instead of generating a new one. Summary line at the end of the window: "1 source hit 1,247 ports in 60 seconds — port scan."

For a single source hitting many ports rapidly, collapse to one "port scan from X" notification and skip per-port detail. For a single source touching a single port repeatedly (brute force), keep the per-event detail but cap rate at one notification per minute.

Tailscale or WireGuard for friend-deployment

The other piece I want: drop one of these on a friend's home network, hook them into my Tailscale, and have alerts come back to me. A honeypot on a residential ISP catches very different traffic than one on a VPS — mostly hands-off scanning.

The notifier already speaks webhooks. As long as the webhook endpoint is reachable from inside the Tailscale, this is free.

Persona scope I'm not shipping in v1

What I'd do differently if I were further in

This is still at the sketch stage — no real LOC committed yet — so the "differently" advice is about the planning, not the build. I'd write the notifier sidecar first, against a mock OpenCanary log stream, and ship that as a usable thing on its own. The notifier is the actual product value here; OpenCanary is just an event source. Anyone running Cowrie or any other honeypot would benefit from the notifier alone. That'd give me a tight feedback loop on the notification UX before I get into persona installer details.