Requirements and Python Versions
The hard requirements for running DECNET, and why the Python ceiling is pinned where it is.
Supported Python versions
| Version | Status |
|---|---|
| 3.10 and below | Not supported. pyproject.toml sets requires-python = ">=3.11". |
| 3.11 | Supported. Minimum version. |
| 3.12 | Supported. Recommended. |
| 3.13 | Supported. |
| 3.14 | Not supported. See warning below. |
Warning: Python 3.14 breaks DECNET under load
Python 3.14's redesigned garbage collector changes finalizer and weakref ordering in ways that destabilise DECNET's concurrency model. Under sustained ingest load (multiple service containers streaming RFC 5424 syslog, the FastAPI dashboard polling the repository, the correlator running background tasks) we observed:
- Deadlocks in the ingest pipeline between the syslog UDP listener and the SQLite repository writer.
- Intermittent loss of weakref'd plugin instances registered by
decnet/services/registry.py. - Unbounded memory growth in long-running
decnet webprocesses.
Until upstream stabilises or we ship a compat shim, DECNET keeps the ceiling below 3.14. If you manually lift requires-python and run under 3.14, do not open a bug report — it is expected to break.
System packages
| Package | Minimum | Notes |
|---|---|---|
| Linux kernel | 5.x | Needs MACVLAN/IPvlan drivers. WSL has known MACVLAN limitations — prefer bare metal or a VM. |
| Docker Engine | 24.0 | Compose v2 plugin, BuildKit, stable MACVLAN driver. |
iproute2 |
any recent | ip link, ip addr, ip route — used for interface/subnet detection. |
Root / sudo |
— | Network namespace + MACVLAN setup require privilege. |
On Debian/Ubuntu:
sudo apt install docker.io docker-compose-plugin iproute2 python3.12 python3.12-venv
On Fedora/Rocky:
sudo dnf install docker docker-compose-plugin iproute python3.12
NIC requirements
MACVLAN needs the host NIC to accept frames for MAC addresses it does not own (effectively: promiscuous-capable and not behind a MAC-filtering upstream). WiFi access points typically filter unknown MACs, so use IPvlan L2 there:
sudo decnet deploy --interface wlp6s0 --ipvlan --deckies 3 --randomize-services
See Networking for driver selection guidance and troubleshooting.
Verifying your environment
python --version # 3.11, 3.12, or 3.13
docker --version # 24+
docker compose version # v2 plugin
ip link # ensure target NIC is listed
If any of these fail, fix them before running decnet deploy — the CLI will refuse or error confusingly on a missing prerequisite.
Next
- Installation — venv + extras + verification.
- Quick Start — shortest path to a running deployment.
- Networking — MACVLAN vs IPvlan choice.
DECNET
User docs
- Quick-Start
- Installation
- Requirements-and-Python-Versions
- CLI-Reference
- INI-Config-Format
- Custom-Services
- Services-Catalog
- Service-Personas
- Archetypes
- Distro-Profiles
- OS-Fingerprint-Spoofing
- Networking-MACVLAN-IPVLAN
- Deployment-Modes
- SWARM-Mode
- MazeNET
- Remote-Updates
- Environment-Variables
- Teardown-and-State
- Database-Drivers
- Systemd-Setup
- Logging-and-Syslog
- Service-Bus
- Web-Dashboard
- REST-API-Reference
- Mutation-and-Randomization
- Troubleshooting
Developer docs
DECNET — honeypot deception-network framework. Pre-1.0, active development — use with caution. See Sponsors to support the project. Contact: samuel@securejump.cl