Ninja-Shield v2 — Static Mockup

Offline-first dashboard mockup with real log-derived data from backbone & nullfeld.

This is a static preview — no server, no fetch, no ninjad. Just open www/index.html and it works. The data is baked in from actual ninja.sh reports.


What's inside

File Purpose
www/index.html Dashboard with embedded static data (backbone node)
samples/backbone_ninja.json Parsed backbone access.log → JSON
samples/nullfeld_ninja.json Parsed nullfeld access.log → JSON
samples/multi_node.json Both nodes combined
bin/access2ninja.py Parser (run once, save JSON, embed)
bin/crumbmidi_bridge.py MIDI event generator
bin/ninja.sh Original triage tool

How to update the mockup data

  1. Get a fresh access.log from a server (or use ninja.sh output)
  2. Run the parser:
./bin/access2ninja.py /var/log/nginx/access.log <node> <self_ip> > samples/<node>_ninja.json
  1. Edit www/index.html → replace the STATIC_MOCKUP object with the new JSON

Test on servers (Ansible/Netbox required)

Once Ansible + Netbox are in place:

  1. Run access2ninja.py on each server, save JSON to a shared location
  2. Dashboard loads JSON via ?log= parameter (feature flag, currently disabled)
  3. Or: ninjad serves live JSON on each node (requires firewall rules)

Current state: Mockup only. No server deployment without Ansible/Netbox.


License

CKL-Dojo — see Ninja-Shield-v1 for the full license stack.