Configuration du noyau (Options)
Les cinq onglets d'Options — Extensions, General, Store, Notifications, Version — et comment ajouter ou retirer des extensions.
Tout ce qui relève du noyau (par opposition à une extension précise) se configure sous Options dans la barre latérale du plugin. Options est une page à onglets : Extensions, General, Store, Notifications et Version.
Onglet Extensions

Liste chaque extension trouvée sur le disque (extensions/<slug>/manifest.php), qu'elle soit incluse ou installée depuis la Store.
| Colonne | Signification |
|---|---|
| Name / Version / Description | Directement issu du manifest.php de l'extension. |
| Status | Active (vert) — l'extension est chargée : son entrée de barre latérale, ses routes et ses crons sont actifs. Disabled (gris) — les fichiers restent sur le disque mais rien n'est chargé. |
| Home tile | Shown / Hidden — ne contrôle que la tuile du tableau de bord. Une extension masquée continue de fonctionner (crons, alertes, etc.) ; seule sa tuile n'est pas affichée à l'accueil. |
Actions :
- Enable / Disable — bascule l'extension sans toucher à ses fichiers ni à ses réglages. Désactiver est la bonne façon de mettre une extension en pause temporairement.
- Hide / Show — bascule la tuile d'accueil.
Les tuiles de l'accueil peuvent aussi être réordonnées par glisser-déposer ; l'ordre est enregistré automatiquement.
Onglet General

| Champ | Défaut | Comportement |
|---|---|---|
| Landing page | Home | La page qui s'ouvre quand vous cliquez sur le plugin dans la barre latérale de WHM. Seules les extensions activées apparaissent dans la liste. Si vous désactivez plus tard l'extension choisie, le plugin revient à Home — et restaure votre préférence quand vous la réactivez. |
Onglet Store

La Store liste les extensions disponibles pour ce serveur depuis le catalogue distant (https://static.astralinternet.com/WHM-Toolbox/extensions/catalog.php). Le catalogue est filtré par IP de serveur — les extensions auxquelles votre serveur n'est pas autorisé n'apparaissent tout simplement pas. La réponse du catalogue est mise en cache localement 1 heure ; le bouton Refresh vide le cache.
| Badge de statut | Signification |
|---|---|
| Not installed | Disponible à l'installation. |
| Installed | Présente sur le disque, à la version du catalogue. |
| Update available | Le catalogue a une version plus récente que celle sur le disque. |
Actions :
- Install — télécharge
<slug>-<version>.zip, vérifie sa somme de contrôle SHA-256, valide la structure de l'archive (aucun échappement de chemin), l'extrait dansextensions/<slug>/, et l'active immédiatement. - Update — même chaîne avec la version plus récente. Vos surcharges de réglages
*.user.jsonsont préservées. - Reinstall — réapplique la version courante (répare les fichiers corrompus/manquants).
- Uninstall — désactive l'extension et supprime son dossier. Les fichiers
*.user.jsonsont préservés, pour qu'une réinstallation future retrouve vos réglages.
Si le catalogue est injoignable, l'onglet affiche Catalog offline avec l'erreur et un bouton Retry.
Onglet Notifications

Cet onglet configure le Notifier central utilisé par le noyau et toutes les extensions. Comprendre le modèle de livraison rend les champs évidents :
Comment fonctionne la livraison
Chaque notification (sujet + corps texte + corps HTML optionnel) est expédiée sur un maximum de deux canaux indépendants :
- Courriel — toujours, via PHPMailer. Le rapport HTML complet est envoyé par le plugin lui-même :
- Avec un relais SMTP configuré → connexion socket directe vers votre relais (hôte/port/chiffrement ci-dessous). Les connexions TLS imposent la validation du certificat (pas de certificats auto-signés).
- Sans relais → le message est construit par PHPMailer et acheminé vers le MTA local du serveur (
/usr/sbin/sendmail -t -oiviaproc_open, ce qui fonctionne même sur les PHP durcis oùpopen/mail()sont désactivés). - Il n'y a aucune limite de taille — les rapports HTML complets passent toujours.
- Contact Manager (SMS / Slack / Pushbullet / …) — seulement si la bascule est active. Une version texte courte est expédiée via l'
icontactde cPanel, qui diffuse vers les canaux configurés dans WHM → Server Contacts. Le corps est plafonné à 8 000 octets (sous le seuil de rejet silencieux d'icontact).
Aucun canal n'est un repli pour l'autre : un échec de courriel ne bascule pas vers le SMS, et vice-versa. Les échecs sont journalisés (voir diagnostics plus bas).
Éviter les courriels en double : si « Contact Manager channels » est actif et que la méthode Email est aussi activée dans WHM → Server Contacts, vous recevrez le courriel deux fois (une fois riche via PHPMailer, une fois courte via icontact). Désactivez la méthode Email dans Server Contacts et n'y gardez que SMS/Slack.
Canaux détectés
Un tableau en lecture seule montrant la destination actuelle de chaque canal et s'il semble configuré — ex. Email (PHPMailer): admin@example.com via SMTP smtp.example.com:587 (tls).
Courriel et canaux (formulaire)
| Champ | Défaut | Notes |
|---|---|---|
| Notification tag | AstralToolbox |
Identifiant d'événement utilisé pour les filtres par canal dans Contact Manager et dans le journal de débogage. Lettres, chiffres, soulignés seulement. |
| Default priority | High | Appliquée quand une extension n'en précise pas. Disabled est un coupe-circuit maître : toute notification est supprimée (pratique en maintenance). |
| Email recipient | (vide) | Adresses séparées par des virgules. Vide → revient au CONTACTEMAIL du serveur (depuis /etc/wwwacct.conf). |
| From address | (vide) | Vide → root@<hostname>. Avec un relais SMTP, mettez ici un expéditeur autorisé par votre relais (SPF/DKIM). |
| From name | Astral Toolbox |
Nom affiché dans la ligne From. |
| Use an authenticated SMTP relay | off | Off → sendmail local ; on → les champs SMTP ci-dessous s'appliquent. |
| SMTP host | — | Nom d'hôte du relais (requis quand le relais est activé). |
| Port & encryption | 587 / TLS |
587 = STARTTLS (tls), 465 = SMTPS (ssl), ou none. TLS/SSL imposent la validation du certificat. |
| Server requires a username and password | off | Active les champs nom d'utilisateur/mot de passe. |
| Username / Password | — | Le mot de passe est stocké dans var/notifications.json (root seulement, 0600). Laisser le champ mot de passe vide lors d'un ré-enregistrement conserve le mot de passe existant. |
| Also dispatch SMS / Slack / Pushbullet via Contact Manager | on | Le second canal décrit plus haut. |
Les sujets sont préfixés automatiquement : [<hostname>] Astral Toolbox - <sujet>.
Tester la livraison
Les deux boutons utilisent les réglages enregistrés en dernier — enregistrez d'abord, puis testez :
- Send test email — exerce uniquement le chemin PHPMailer/courriel et indique le destinataire + le transport utilisé (ou l'erreur exacte).
- Send test notification (SMS / Slack) — exerce uniquement le chemin icontact.
Diagnostics
Le Notifier conserve un journal glissant des 20 dernières tentatives de livraison (var/notifier-debug.log, root seulement) avec horodatages, transport, destinataires, codes de sortie et stderr — le premier endroit à regarder quand une notification « a été envoyée mais jamais reçue ».
Onglet Version

État courant
- Installed version (depuis
version.txt), Latest available (depuis le serveur de mise à jour), horodatage Last check, et un badge : Up to date / Update available / Offline.
Mises à jour automatiques
Quand activées (par défaut), le cron /etc/cron.d/toolbox-auto-update interroge toutes les 4 heures et installe les mises à jour du noyau et de vos extensions Store installées. Désactivez pour prendre les mises à jour manuellement (le fichier cron reste ; le script ne fait rien).
Actions manuelles
- Check for updates — vide la version en cache et interroge le serveur de mise à jour immédiatement.
- Install update (vX.Y.Z) — apparaît quand une mise à jour est disponible ; télécharge, vérifie la somme de contrôle et l'applique. Les données utilisateur sont préservées.
- Reinstall current version — remplace tous les fichiers du noyau sur le disque ; utile si une mise à jour précédente a été corrompue.
Désinstallation (zone dangereuse)
Uninstall WHM-Toolbox retire tout le plugin du serveur — voir Installation → Désinstaller pour le détail exact de ce qui est nettoyé.
Où vit l'état du noyau
| Fichier | Contenu | Permissions |
|---|---|---|
var/state.json |
Extensions activées, tuiles masquées, ordre des tuiles, page d'accueil par défaut, indicateur de mise à jour auto, dernière vérification | 0600 |
var/notifications.json |
Tout l'onglet Notifications, y compris les identifiants SMTP | 0600 |
var/notifier-debug.log |
20 dernières tentatives de notification | 0600 |
.remote-version.cache / .remote-catalog.cache |
Caches du serveur de mise à jour et du catalogue Store (TTL 6 h / 1 h) | — |
Ces fichiers ne sont jamais écrasés par une mise à jour ou une réinstallation.