Development uses the same Docker baseline as deployment: Docker Engine 23.0
or newer with the Buildx and Compose plugins. Verify docker buildx version
and docker compose version before starting the stack.
Running P-BitM through Docker does not require Node.js or npm on the host.
They are needed only for direct frontend development. The supported range is
Node.js ^22.18.0 || >=24.11.0; no exact npm version is imposed.
CI follows the current Node.js 24 LTS line. Local development can use any
environment in the supported range.
CLI environment
Set app.environment: development in config.yaml, then provision and start:
Development Compose adds MailHog:
- SMTP:
localhost:1025
- Web UI:
http://localhost:8025
Repository boundaries
cli/ and p-bitm.py own local lifecycle tooling.
server/backend/ is the trusted admin control plane.
server/backend-phishing/app/ is the per-campaign service.
server/frontend/ is the Vue dashboard.
bitm-images/ contains browser runtimes.
modules/ contains seedable module definitions.
Do not commit generated .env, DNS secret files, certificates, storage, or
campaign artifacts.
Extend assessment behavior
To contribute a new browser assessment capability, follow the
attack-vector contribution guide. It explains
when to use a Firefox plugin or client module, their runtime contracts, test
requirements, and review standard. Last modified on August 28, 2026