diff --git a/package/secubox/secubox-app-webapp/Makefile b/package/secubox/secubox-app-webapp/Makefile index b7f2a463..244aacbb 100644 --- a/package/secubox/secubox-app-webapp/Makefile +++ b/package/secubox/secubox-app-webapp/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=secubox-app-webapp -PKG_VERSION:=1.0.0 +PKG_VERSION:=1.2.0 PKG_RELEASE:=1 PKG_LICENSE:=MIT PKG_MAINTAINER:=CyberMind.FR diff --git a/package/secubox/secubox-app-webapp/files/www/secubox-dashboard/index.html b/package/secubox/secubox-app-webapp/files/www/secubox-dashboard/index.html index 028b8a21..c82e37d5 100644 --- a/package/secubox/secubox-app-webapp/files/www/secubox-dashboard/index.html +++ b/package/secubox/secubox-app-webapp/files/www/secubox-dashboard/index.html @@ -1016,6 +1016,18 @@ font-size: 1rem; font-weight: 600; font-family: 'JetBrains Mono', monospace; + transition: color 0.3s ease; + } + + /* Value update animation */ + .value-update { + animation: valueFlash 0.3s ease; + } + + @keyframes valueFlash { + 0% { transform: scale(1); } + 50% { transform: scale(1.05); } + 100% { transform: scale(1); } } .bandwidth-unit { @@ -1499,6 +1511,348 @@ } } + /* Tab Pages */ + .tab-page { + display: none; + animation: fadeIn 0.3s ease; + } + + .tab-page.active { + display: block; + } + + @keyframes fadeIn { + from { opacity: 0; transform: translateY(10px); } + to { opacity: 1; transform: translateY(0); } + } + + /* Info Grid */ + .info-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 1rem; + margin-bottom: 1.5rem; + } + + .info-item { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0.75rem 1rem; + background: var(--bg-secondary); + border-radius: 0.5rem; + border: 1px solid var(--border); + } + + .info-label { + color: var(--text-secondary); + font-size: 0.8rem; + } + + .info-value { + font-family: 'JetBrains Mono', monospace; + font-size: 0.85rem; + color: var(--text-primary); + } + + /* Service List */ + .service-list { + display: flex; + flex-direction: column; + gap: 0.5rem; + } + + .service-item { + display: flex; + align-items: center; + justify-content: space-between; + padding: 1rem; + background: var(--bg-secondary); + border: 1px solid var(--border); + border-radius: 0.75rem; + transition: all 0.2s; + } + + .service-item:hover { + border-color: var(--border-hover); + } + + .service-info { + display: flex; + align-items: center; + gap: 0.75rem; + } + + .service-icon { + width: 36px; + height: 36px; + display: flex; + align-items: center; + justify-content: center; + background: var(--bg-primary); + border-radius: 0.5rem; + color: var(--cyan); + } + + .service-icon.running { + color: var(--emerald); + } + + .service-icon.stopped { + color: var(--rose); + } + + .service-name { + font-weight: 500; + font-size: 0.9rem; + } + + .service-status { + font-size: 0.75rem; + color: var(--text-muted); + } + + .service-actions { + display: flex; + gap: 0.5rem; + } + + .service-btn { + padding: 0.5rem; + background: var(--bg-primary); + border: 1px solid var(--border); + border-radius: 0.5rem; + color: var(--text-secondary); + cursor: pointer; + transition: all 0.2s; + } + + .service-btn:hover { + border-color: var(--cyan); + color: var(--cyan); + } + + .service-btn.danger:hover { + border-color: var(--rose); + color: var(--rose); + } + + .service-btn.success:hover { + border-color: var(--emerald); + color: var(--emerald); + } + + /* DHCP Leases Table */ + .leases-table { + width: 100%; + border-collapse: collapse; + font-size: 0.8rem; + } + + .leases-table th, + .leases-table td { + padding: 0.75rem; + text-align: left; + border-bottom: 1px solid var(--border); + } + + .leases-table th { + color: var(--text-muted); + font-weight: 500; + font-size: 0.7rem; + text-transform: uppercase; + } + + .leases-table td { + font-family: 'JetBrains Mono', monospace; + } + + /* Traffic Graph */ + .traffic-graph { + height: 150px; + background: var(--bg-secondary); + border-radius: 0.75rem; + padding: 1rem; + position: relative; + overflow: hidden; + } + + .traffic-canvas { + width: 100%; + height: 100%; + } + + .traffic-legend { + display: flex; + gap: 1.5rem; + margin-top: 0.75rem; + justify-content: center; + } + + .traffic-legend-item { + display: flex; + align-items: center; + gap: 0.5rem; + font-size: 0.75rem; + color: var(--text-secondary); + } + + .traffic-legend-color { + width: 12px; + height: 3px; + border-radius: 2px; + } + + /* Firewall Zones */ + .zone-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 1rem; + } + + .zone-card { + padding: 1rem; + background: var(--bg-secondary); + border: 1px solid var(--border); + border-radius: 0.75rem; + border-left: 3px solid var(--cyan); + } + + .zone-card.lan { + border-left-color: var(--emerald); + } + + .zone-card.wan { + border-left-color: var(--rose); + } + + .zone-card.guest { + border-left-color: var(--amber); + } + + .zone-name { + font-weight: 600; + font-size: 0.9rem; + margin-bottom: 0.5rem; + text-transform: uppercase; + } + + .zone-policy { + font-size: 0.75rem; + color: var(--text-muted); + } + + .zone-interfaces { + margin-top: 0.5rem; + font-size: 0.8rem; + font-family: 'JetBrains Mono', monospace; + color: var(--text-secondary); + } + + /* WiFi Status */ + .wifi-card { + padding: 1rem; + background: var(--bg-secondary); + border: 1px solid var(--border); + border-radius: 0.75rem; + margin-bottom: 0.75rem; + } + + .wifi-header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 0.75rem; + } + + .wifi-ssid { + font-weight: 600; + display: flex; + align-items: center; + gap: 0.5rem; + } + + .wifi-band { + padding: 0.25rem 0.5rem; + background: var(--cyan); + color: white; + border-radius: 0.25rem; + font-size: 0.65rem; + font-weight: 600; + } + + .wifi-stats { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 0.5rem; + font-size: 0.75rem; + } + + .wifi-stat { + text-align: center; + padding: 0.5rem; + background: var(--bg-primary); + border-radius: 0.375rem; + } + + .wifi-stat-value { + font-family: 'JetBrains Mono', monospace; + font-weight: 600; + color: var(--cyan); + } + + .wifi-stat-label { + color: var(--text-muted); + font-size: 0.65rem; + } + + /* Logs Filter */ + .logs-header { + display: flex; + gap: 0.5rem; + margin-bottom: 1rem; + flex-wrap: wrap; + } + + .logs-filter { + padding: 0.5rem 1rem; + background: var(--bg-secondary); + border: 1px solid var(--border); + border-radius: 0.5rem; + color: var(--text-secondary); + font-size: 0.8rem; + cursor: pointer; + transition: all 0.2s; + } + + .logs-filter:hover, + .logs-filter.active { + border-color: var(--cyan); + color: var(--cyan); + } + + .logs-search { + flex: 1; + min-width: 200px; + padding: 0.5rem 1rem; + background: var(--bg-secondary); + border: 1px solid var(--border); + border-radius: 0.5rem; + color: var(--text-primary); + font-size: 0.8rem; + } + + .logs-search:focus { + outline: none; + border-color: var(--cyan); + } + + /* Full Logs Container */ + .full-logs-container { + max-height: 500px; + overflow-y: auto; + } + /* Loading Skeleton */ .skeleton { background: linear-gradient(90deg, var(--bg-secondary) 25%, var(--border) 50%, var(--bg-secondary) 75%); @@ -1557,7 +1911,7 @@ Serveur SecuBox - +
@@ -1729,6 +2083,8 @@
+ +
@@ -1967,10 +2323,427 @@
+
+ + +
+
+
+
+ + Informations Système +
+
+
+
+
Hostname--
+
Modèle--
+
Architecture--
+
Kernel--
+
OpenWrt--
+
Uptime--
+
Date locale--
+
Fuseau horaire--
+
+
+
+ +
+
+
+
+ + Stockage +
+
+
+
+
Racine (/)--
+
/tmp--
+
/overlay--
+
+
+
+ +
+
+
+ + Mémoire +
+
+
+
+
Total--
+
Utilisée--
+
Libre--
+
Buffers--
+
+
+
+
+
+ + +
+
+
+
+
+ + Réseaux WiFi +
+
+
+
Chargement...
+
+
+ +
+
+
+ + Trafic Réseau +
+
+
+
+ +
+
+
+ + Download +
+
+ + Upload +
+
+
+
+
+ +
+
+
+ + Interfaces Réseau +
+
+
+ + + + + + + + + + + + +
InterfaceAdresse IPPasserelleDNSÉtat
+
+
+ +
+
+
+ + Baux DHCP +
+
0 clients
+
+
+ + + + + + + + + + + +
HostnameAdresse IPAdresse MACExpire
+
+
+
+ + +
+
+
+
+ Décisions +
+
+
--
+
actives
+
+
+
+ Alertes 24h +
+
+
--
+
dernières 24h
+
+
+
+ Bouncers +
+
+
--
+
connectés
+
+
+
+ Machines +
+
+
--
+
enregistrées
+
+
+ +
+
+
+ + Décisions Actives +
+ +
+
+ + + + + + + + + + + + +
IP / RangeRaisonTypeDuréeActions
+
+
+ +
+
+
+ + Actions CrowdSec +
+
+
+
+ + + + +
+
+
+
+ + +
+
+
+
+ + Zones Firewall +
+
+
+
+
+
+
+ +
+
+
+ + Règles de Forwarding +
+
+
+ + + + + + + + + + +
SourceDestinationAction
+
+
+ +
+
+
+ + Actions Firewall +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + Journaux Système +
+
+ + Live +
+
+
+
+ + + + + +
+
+
+
+
+
+ + +
+
+
+
+ + Services Système +
+ +
+
+
+
+
+
+
+ + +
+
+
+
+ + Paramètres Dashboard +
+
+
+
+ + +
+
+
+ +
+
+
+ + Liens Utiles +
+
+ +
+ +
+
+
+ + Actions Système +
+
+
+
+ + +
+
+
+
+
+ + +