Persistent data
The host storage/ directory contains the SQLite database and campaign data,
including screenshots, uploaded files, and browser-profile exports. It is
mounted into the admin backend at /storage.
Runtime service and container logs are Docker-managed rather than stored under
storage/. Collect them separately when the engagement requires log
retention; a storage backup does not include them.
Consistent backup
- Stop or pause active campaigns.
- Stop the complete runtime with
python3 p-bitm.py down; this terminally
completes running, paused, and scheduled campaigns.
- Copy the complete
storage/ directory to an approved encrypted location.
- Record the application version and backup checksum.
- Restart with
python3 p-bitm.py up.
Copying only p-bitm.db can omit artifacts referenced by database rows.
Restore
Restore the database and campaign directories as one set while the stack is
stopped. Preserve directory accessibility for the host operator and container
UID used by the backend. Run doctor before starting.
Capacity
Exports and screenshots can grow independently of the database. Monitor both
free disk space and the engagement retention deadline.
Deletion
Use dashboard lifecycle controls and approved retention procedures. Do not use
unreviewed recursive shell commands against the repository or storage root.Last modified on August 28, 2026