thinkst

opencanary: Deploy a Python Multi-Protocol Honeypot

OpenCanary is a lightweight, Python-based network honeypot that imitates common services to detect activity after a breach of a non-public network. It runs on Linux and macOS, with some features limited to particular operating systems.

ActivePythonBSD-3-ClauseSecurityNetworkingCybersecurity
Stars
3.1k
Forks
423
Last commit
14 days ago
Contributors
56
Releases, 12 months
4

Our take

Activeregular commits and releases

Health score

56/100

How it is scored
Activity
52
Community
76
Issues
47
Pull requests
47

OpenCanary is an actively maintained, lightweight honeypot with a broad contributor base, though recent issue-closure data is limited.

Good fit if

  • You need alerts when someone interacts with decoy network services inside a network.
  • You want a Python honeypot that can run with modest resources and can tailor modules to Linux, macOS, or a Linux Docker host.
  • You value a project with regular recent commits and releases and contributions from many people.

Look elsewhere if

  • You need the port-scan module on a non-Linux system or in a Docker deployment.
  • You need the Windows file-share module on macOS, or do not want to install and configure Samba for it.
  • You need a honeypot that does not require Python 3.10 or later.
All health signals
Last commit2026-10-27 (14 days ago)
Commits, last 90 days15
Releases, last 12 months4 (latest v0.9.10, 2026-09-21)
Contributors56 (top contributor: 33% of commits)
Issues closed, last 90 days1
Pull requests merged, last 90 days14 (typically merged in 1 day)
Project age11 years

Checked on 2026-11-10 with the GitHub API.

Project history

Daily GitHub snapshots since Nov 11, 2026. History covers stars and forks; health signals are not tracked historically.

Selected snapshot

Stars

3,098

Forks

423

More snapshots will appear as the daily collection continues.

Overview

OpenCanary is a lightweight, Python-based multi-protocol network honeypot from Thinkst. It imitates common network services so defenders can detect and receive alerts when someone interacts with a decoy inside a non-public network.

The core is cross-platform, though feature availability depends on the operating system. Linux provides the broadest set of options, and the project is designed to run with modest resources, including on a small computer or a minimally provisioned VM.

Key Features

  • Emulates multiple common network protocols as decoy services.
  • Sends alerts when potential threats interact with the honeypot, including the source IP address and where the breach may have occurred.
  • Runs as a daemon and can drop root privileges after binding to ports.
  • Offers optional SNMP, port-scan detection, and Windows file-share modules, with platform and dependency requirements.
  • Can be installed as a Python package or run with Docker on Linux hosts.
  • Supports configurable services and logging through a JSON configuration file.

Use Cases

  • A network defender can place a decoy service on a non-public network to be alerted to suspicious access after a breach.
  • A small security team can run a low-resource honeypot on a VM or Raspberry Pi without dedicating a large server to it.
  • A Linux administrator can enable protocol and port-scan modules to observe interactions with a broader set of decoy services.
  • A team using containers can deploy OpenCanary with Docker Compose on a Linux Docker host, while accounting for the disabled port-scan module.

What you need

Detected in the repository

  • Python >= 3.10 (from pyproject.toml)
  • A Compose file to run it with its related services
  • Automated checks on GitHub Actions

License in plain words

BSD-3-Clausepermissive

  • Commercial use: yes
  • Modify and redistribute: yes
  • You must keep: the copyright and license notice; the authors' names cannot endorse your product
  • Share your changes: no

A summary, not legal advice: the LICENSE file is what applies.

Getting Started

On Ubuntu, create and activate a virtual environment, then install the package:

virtualenv env/
. env/bin/activate
pip install opencanary

See the README for configuration, optional modules, and Docker instructions.

Considerations

  • OpenCanary requires Python 3.10 or later. Optional capabilities add dependencies: SNMP needs Scapy, the Windows file-share module needs Samba, and port-scan detection uses iptables and is supported only on Linux.
  • The README warns that the configuration file is read with root privileges and can enable privilege escalation if writable by regular users. Keep it root-owned and writable only by root.
  • Docker deployment requires a Linux host using host networking for accurate network information. The port-scan module is automatically disabled in Docker.
  • Recent health data shows regular commits and releases, but only one issue closure in the measured recent period, so there is little recent issue-closure history to assess.
  • The core project is cross-platform, but its modules are not uniformly available across operating systems.

Found this useful?

Share it with someone who would like opencanary.