From 4c61ae9456191dbdf361141b3eb436c75ba07c64 Mon Sep 17 00:00:00 2001 From: Olivier Date: Mon, 18 May 2026 14:04:09 +0200 Subject: [PATCH] feat: add custom icons for Zabbix, Centreon, Nagios, PRTG, Eaton, Riello, Vertiv MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit UPS: Eaton (lightning bolt, #E22000), Riello (battery+, #0066B3), Vertiv (server rack, #0079A7) Monitoring: Zabbix (activity line, #D40000), Centreon (bulb/hub, #0071CE), Nagios (magnifier, #2D72D2), PRTG (speedometer, #7AB648) All use thematic SVG paths on 24×24 viewBox, consistent with existing custom icons (ICON_FREE, ICON_BASTION, ICON_MAIL, etc.). READMEs (fr/en/es) updated. Co-Authored-By: Claude Sonnet 4.6 --- README.es.md | 7 +++++ README.fr.md | 7 +++++ README.md | 7 +++++ frontend/src/brandIcons.js | 55 ++++++++++++++++++++++++++++++++++++-- 4 files changed, 74 insertions(+), 2 deletions(-) diff --git a/README.es.md b/README.es.md index ed5b4fc..a07d753 100644 --- a/README.es.md +++ b/README.es.md @@ -288,6 +288,9 @@ Pueden aparecer varios logos simultáneamente si coinciden varias palabras clave | NAS | Synology | `synology`, `dsm` | | NAS | TrueNAS | `truenas`, `freenas` | | SAI (UPS) | Schneider Electric / APC | `apc`, `schneider electric`, `symmetra`, `smart-ups`, `easy ups`, `galaxy ups` | +| SAI (UPS) | Eaton | `eaton`, `powerware`, `eaton ups` | +| SAI (UPS) | Riello | `riello`, `riello ups` | +| SAI (UPS) | Vertiv | `vertiv`, `liebert`, `avocent`, `geist` | | ISP francés | Orange | `orange`, `sosh`, `livebox` | | ISP francés | OVH | `ovh`, `ovhcloud`, `kimsufi`, `soyoustart` | | ISP francés | Free | `freebox`, `free mobile`, `free telecom`, `iliad` | @@ -321,6 +324,10 @@ Pueden aparecer varios logos simultáneamente si coinciden varias palabras clave | Correo | Servidor de correo | `mail`, `smtp`, `imap`, `postfix`, `dovecot`, `mailcow`, `mailu`, `roundcube` | | Base de datos | MariaDB | `mariadb`, `maria db` | | Orquestación | Kubernetes | `kubernetes`, `k8s`, `kubectl`, `k3s` | +| Monitorización | Zabbix | `zabbix` | +| Monitorización | Centreon | `centreon` | +| Monitorización | Nagios | `nagios`, `nagiosxi`, `nagios xi` | +| Monitorización | PRTG | `prtg`, `paessler` | | Monitorización | Prometheus | `prometheus` | | Monitorización | Grafana | `grafana` | | Monitorización | Datadog | `datadog` | diff --git a/README.fr.md b/README.fr.md index e18b8b8..1b7157b 100644 --- a/README.fr.md +++ b/README.fr.md @@ -288,6 +288,9 @@ Plusieurs logos peuvent s'afficher simultanément si plusieurs mots-clés corres | NAS | Synology | `synology`, `dsm` | | NAS | TrueNAS | `truenas`, `freenas` | | Onduleur (UPS) | Schneider Electric / APC | `apc`, `schneider electric`, `symmetra`, `smart-ups`, `easy ups`, `galaxy ups` | +| Onduleur (UPS) | Eaton | `eaton`, `powerware`, `eaton ups` | +| Onduleur (UPS) | Riello | `riello`, `riello ups` | +| Onduleur (UPS) | Vertiv | `vertiv`, `liebert`, `avocent`, `geist` | | FAI français | Orange | `orange`, `sosh`, `livebox` | | FAI français | OVH | `ovh`, `ovhcloud`, `kimsufi`, `soyoustart` | | FAI français | Free | `freebox`, `free mobile`, `free telecom`, `iliad` | @@ -321,6 +324,10 @@ Plusieurs logos peuvent s'afficher simultanément si plusieurs mots-clés corres | Messagerie | Serveur mail | `mail`, `smtp`, `imap`, `postfix`, `dovecot`, `mailcow`, `mailu`, `roundcube` | | Base de données | MariaDB | `mariadb`, `maria db` | | Orchestration | Kubernetes | `kubernetes`, `k8s`, `kubectl`, `k3s` | +| Monitoring | Zabbix | `zabbix` | +| Monitoring | Centreon | `centreon` | +| Monitoring | Nagios | `nagios`, `nagiosxi`, `nagios xi` | +| Monitoring | PRTG | `prtg`, `paessler` | | Monitoring | Prometheus | `prometheus` | | Monitoring | Grafana | `grafana` | | Monitoring | Datadog | `datadog` | diff --git a/README.md b/README.md index a2dd623..5f80999 100644 --- a/README.md +++ b/README.md @@ -288,6 +288,9 @@ Multiple logos can appear simultaneously if several keywords match. | NAS | Synology | `synology`, `dsm` | | NAS | TrueNAS | `truenas`, `freenas` | | UPS | Schneider Electric / APC | `apc`, `schneider electric`, `symmetra`, `smart-ups`, `easy ups`, `galaxy ups` | +| UPS | Eaton | `eaton`, `powerware`, `eaton ups` | +| UPS | Riello | `riello`, `riello ups` | +| UPS | Vertiv | `vertiv`, `liebert`, `avocent`, `geist` | | French ISP | Orange | `orange`, `sosh`, `livebox` | | French ISP | OVH | `ovh`, `ovhcloud`, `kimsufi`, `soyoustart` | | French ISP | Free | `freebox`, `free mobile`, `free telecom`, `iliad` | @@ -321,6 +324,10 @@ Multiple logos can appear simultaneously if several keywords match. | Mail | Mail server | `mail`, `smtp`, `imap`, `postfix`, `dovecot`, `mailcow`, `mailu`, `roundcube` | | Database | MariaDB | `mariadb`, `maria db` | | Orchestration | Kubernetes | `kubernetes`, `k8s`, `kubectl`, `k3s` | +| Monitoring | Zabbix | `zabbix` | +| Monitoring | Centreon | `centreon` | +| Monitoring | Nagios | `nagios`, `nagiosxi`, `nagios xi` | +| Monitoring | PRTG | `prtg`, `paessler` | | Monitoring | Prometheus | `prometheus` | | Monitoring | Grafana | `grafana` | | Monitoring | Datadog | `datadog` | diff --git a/frontend/src/brandIcons.js b/frontend/src/brandIcons.js index 370d0ed..3039583 100644 --- a/frontend/src/brandIcons.js +++ b/frontend/src/brandIcons.js @@ -66,6 +66,50 @@ const ICON_MAIL = { path: 'M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z', } +// UPS custom icons (absents de simple-icons) +const ICON_EATON = { + title: 'Eaton', + hex: 'E22000', + path: 'M11 2L4 13h6v9l7-11h-6z', +} + +const ICON_RIELLO = { + title: 'Riello', + hex: '0066B3', + path: 'M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zm-1.67 9h-1v2h-2v-2H9v-2h2V9h2v2h1v2z', +} + +const ICON_VERTIV = { + title: 'Vertiv', + hex: '0079A7', + path: 'M20 3H4v4h16V3zm0 5H4v4h16V8zm0 5H4v4h16v-4zM6 5h2v2H6zm0 5h2v2H6zm0 5h2v2H6z', +} + +// Monitoring custom icons (absents de simple-icons) +const ICON_ZABBIX = { + title: 'Zabbix', + hex: 'D40000', + path: 'M3.5 18.49l6-6.01 4 4L22 6.92l-1.41-1.41-7.09 7.97-4-4L2 16.99z', +} + +const ICON_CENTREON = { + title: 'Centreon', + hex: '0071CE', + path: 'M12 2C8.13 2 5 5.13 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.87-3.13-7-7-7zm2.85 11.1l-.85.6V16h-4v-2.3l-.85-.6C7.8 12.16 7 10.63 7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 1.63-.8 3.16-2.15 4.1z', +} + +const ICON_NAGIOS = { + title: 'Nagios', + hex: '2D72D2', + path: 'M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z', +} + +const ICON_PRTG = { + title: 'PRTG', + hex: '7AB648', + path: 'M20.38 8.57l-1.23 1.85a8 8 0 0 1-.22 7.58H5.07A8 8 0 0 1 15.58 6.85l1.85-1.23A10 10 0 0 0 3.35 19a2 2 0 0 0 1.72 1h13.85a2 2 0 0 0 1.74-1 10 10 0 0 0-.27-10.44zm-9.79 6.84a2 2 0 0 0 2.83 0l5.66-8.49-8.49 5.66a2 2 0 0 0 0 2.83z', +} + // Ordre : du plus spécifique au plus générique pour éviter les faux positifs. const BRANDS = [ // Hyperviseurs / virtualisation @@ -76,8 +120,11 @@ const BRANDS = [ { kw: ['synology', 'dsm'], icon: siSynology }, { kw: ['truenas', 'freenas'], icon: siTruenas }, - // Onduleurs (UPS) — Eaton, Riello, Vertiv absents de simple-icons + // Onduleurs (UPS) { kw: ['apc', 'schneider electric', 'symmetra', 'smart-ups', 'easy ups', 'galaxy ups'], icon: siSchneiderelectric }, + { kw: ['eaton', 'powerware', 'eaton ups'], icon: ICON_EATON }, + { kw: ['riello', 'riello ups'], icon: ICON_RIELLO }, + { kw: ['vertiv', 'liebert', 'avocent', 'geist'], icon: ICON_VERTIV }, // Réseau { kw: ['ubiquiti', 'unifi', 'usg', 'udm'], icon: siUbiquiti }, @@ -134,7 +181,11 @@ const BRANDS = [ // Orchestration { kw: ['kubernetes', 'k8s', 'kubectl', 'k3s'], icon: siKubernetes }, - // Monitoring / Observabilité — Zabbix, Centreon, Nagios, PRTG absents de simple-icons + // Monitoring / Observabilité + { kw: ['zabbix'], icon: ICON_ZABBIX }, + { kw: ['centreon'], icon: ICON_CENTREON }, + { kw: ['nagios', 'nagiosxi', 'nagios xi'], icon: ICON_NAGIOS }, + { kw: ['prtg', 'paessler'], icon: ICON_PRTG }, { kw: ['prometheus'], icon: siPrometheus }, { kw: ['grafana'], icon: siGrafana }, { kw: ['datadog'], icon: siDatadog },