TTOPM commited on
Commit
ed72f3c
·
verified ·
1 Parent(s): b39be4c

Create README_Dashboard.md

Browse files
belel-shield/dashboard/README_Dashboard.md ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Belel Shield Dashboard
2
+
3
+ A live, privacy-first dashboard for Belel Shield:
4
+ - Global deck.gl map of flagged IPs (optional local GeoIP).
5
+ - Timeline and anomaly charts.
6
+ - Blocklist + checksum status, scanner health, firewall status.
7
+ - Export (CSV/JSON), dark mode.
8
+
9
+ ## Install
10
+ ```bash
11
+ python3 -m pip install -r dashboard/requirements.txt
12
+
13
+ ## RUN
14
+
15
+ streamlit run dashboard/app.py
16
+
17
+ Data sources
18
+ • Alerts: ~/.belel/gideon_alerts.json or ~/.belel/gideon_alerts.jsonl
19
+ • Blocklist cache: ~/.belel/belel-blocklist.json
20
+ • Checksum cache: ~/.belel/belel-blocklist.checksums.json
21
+
22
+ Optional local GeoIP (recommended)
23
+ • Download GeoLite2-City.mmdb (MaxMind, free account).
24
+ • Put it at: ~/.belel/GeoLite2-City.mmdb
25
+ • The app will auto-detect and use it. No external IP APIs are called by default.
26
+
27
+ Privacy
28
+ • No telemetry. Everything is local unless you explicitly enable external lookups in the sidebar.
29
+
30
+ ---
31
+
32
+ ### `dashboard/requirements.txt`
33
+
34
+ streamlit>=1.36
35
+ pandas>=2.0
36
+ pydeck>=0.9
37
+ plotly>=5.22
38
+ psutil>=5.9
39
+ python-dateutil>=2.9
40
+ geoip2>=4.8 ; platform_system != “Windows” or platform_system == “Windows”
41
+
42
+ > `geoip2` is optional—works only if you provide `~/.belel/GeoLite2-City.mmdb`.
43
+
44
+ ---
45
+
46
+ ### `dashboard/styles.css`
47
+ ```css
48
+ :root { --accent:#00b894; }
49
+ .blocklist-ok { color:#2ecc71; font-weight:600; }
50
+ .blocklist-bad { color:#e74c3c; font-weight:600; }
51
+ .small { opacity:.8; font-size:.9rem; }
52
+ hr { border:none; border-top:1px solid #333; margin:1rem 0; }