Installation
Installation en une ligne, options de l'installeur, support DNSOnly, mises à jour et désinstallation d'Astral Toolbox.
Astral Toolbox s'installe sur n'importe quel serveur cPanel/WHM (installations complètes et nœuds DNSOnly) sous AlmaLinux. Tout s'exécute en root.
Prérequis
- Un serveur cPanel/WHM (ou cPanel DNSOnly) — détecté via
/usr/local/cpanel/whostmgr/docroot/cgi/. - Un accès shell root.
- Les binaires :
curl,unzip,sha256sum,install(tous présents sur une installation cPanel standard). - PHP CLI : l'installeur préfère l'interpréteur intégré de cPanel
/usr/local/cpanel/3rdparty/bin/phpet ne se rabat sur lephpdu PATH qu'en dernier recours. Aucun PHP EasyApache/système n'est requis — c'est ce qui permet les installations DNSOnly (voir notes DNSOnly).
Installation rapide
À exécuter en root. Trois variantes, selon le niveau de contrôle souhaité :
# 1) Une ligne — non interactif (pas de TTY à travers le pipe). Installe le noyau seulement.
curl -fsSL https://static.astralinternet.com/WHM-Toolbox/install.sh | bash
# 2) Une ligne avec des extensions Store explicites (activées après l'installation).
# (search-logs est dans le zip du noyau, donc toujours déjà présente.)
curl -fsSL https://static.astralinternet.com/WHM-Toolbox/install.sh \
| bash -s -- --extensions=mail-disk-space,server-monitoring
# 3) Interactif : télécharger puis exécuter. L'installeur récupère le catalogue et
# affiche un menu à cases à cocher des extensions disponibles pour ce serveur
# (flèches pour naviguer, Espace pour cocher, Entrée pour confirmer).
curl -fsSL https://static.astralinternet.com/WHM-Toolbox/install.sh -o install.sh \
&& chmod +x install.sh && ./install.sh
Une fois terminé, connectez-vous à WHM et cherchez Astral Toolbox dans la barre latérale (section Plugins).
Les extensions pour lesquelles l'IP de ce serveur n'est pas autorisée sont ignorées silencieusement — le code de sortie reste 0.
Options de l'installeur
| Drapeau | Effet |
|---|---|
--extensions=slug1,slug2 |
Installer et activer les extensions Store nommées. Le serveur doit y être autorisé. Saute l'invite interactive. |
--non-interactive, -y |
Saute l'invite interactive ; installe le noyau seulement. Implicite quand stdin n'est pas un TTY (ex. curl \| bash). |
--no-autostart |
Installer sans déposer le cron /etc/cron.d/toolbox-auto-update (le noyau s'installe quand même ; les mises à jour deviennent manuelles). |
Ce que fait l'installeur
- Résoudre la dernière version du noyau — interroge
https://static.astralinternet.com/WHM-Toolbox/core/manifest.phppour la version la plus récente, l'URL du zip et celle de la somme de contrôle. Les versions ne sont jamais codées en dur. - Télécharger et vérifier — récupère le zip du noyau et son fichier
.sha256, et abandonne à la moindre somme de contrôle invalide. - Extraire et enregistrer — décompresse vers
/usr/local/cpanel/whostmgr/docroot/cgi/toolbox/, rendtoolbox.phpexécutable (requis sur DNSOnly), pré-active toutes les extensions incluses sur une installation neuve, copie l'icône de la barre latérale, et enregistre le plugin auprès de WHM :/usr/local/cpanel/bin/register_appconfig .../install/toolbox.conf - Installer le cron de mise à jour automatique (sauf
--no-autostart) — dépose/etc/cron.d/toolbox-auto-updateavec une minute aléatoire et un décalage de cycle de 4 h, afin qu'un parc de serveurs ne sollicite pas le serveur de mise à jour simultanément. Relancer l'installeur n'écrase jamais un cron existant (supprimez-le d'abord pour re-randomiser). - Installer les extensions demandées — récupère le catalogue (
.../extensions/catalog.php, filtré par IP de serveur), télécharge chaque<slug>-<version>.zip, vérifie sa SHA-256, valide la structure de l'archive (aucun chemin absolu ni échappement..), extrait dansextensions/<slug>/, et l'active.
Migration depuis l'ancien plugin
Si /usr/local/cpanel/whostmgr/docroot/cgi/toolbox/ héberge déjà l'ancien WHM-Toolbox (v1), l'installeur le détecte (absence de core/Kernel.php) et le nettoie avant d'installer : enregistrements AppConfig hérités (toolbox, toolbox2), anciens crons (toolbox-auto-update, toolbox-mail-scan), le hook Perl de ressources cPanel, les icônes d'extension, et l'arborescence du plugin elle-même. Les exécutions interactives demandent confirmation avant suppression ; les exécutions curl | bash suppriment automatiquement.
Note de sécurité
La commande en une ligne fait confiance à DNS + TLS pour livrer un install.sh authentique. Le script lui-même vérifie ensuite la SHA-256 de chaque archive qu'il télécharge, donc une archive altérée ne peut pas atteindre le disque silencieusement. Si vous opérez dans un réseau hostile où vous ne faites pas confiance à la résolution DNS, utilisez la variante 3 (télécharger, inspecter, exécuter).
Serveurs cPanel DNSOnly
Astral Toolbox est natif DNSOnly depuis le noyau 2.0.12 :
- DNSOnly ne fournit aucun PHP EasyApache / utilisateur — le wrapper
phpdu PATH échoue avec « Default PHP is not configured! ». L'installeur (et chaque cron écrit par le plugin) utilise donc l'interpréteur interne de cPanel/usr/local/cpanel/3rdparty/bin/php, présent sur chaque serveur cPanel et DNSOnly. - Le point d'entrée du plugin porte un shebang
#!/usr/local/cpanel/3rdparty/bin/phpet est installé exécutable, pour que cpsrvd puisse le lancer sans gestionnaire PHP système. - Sur un nœud DNSOnly, la plupart des extensions ont peu à faire (pas de comptes
/home, pas de courriel, pas de sites MySQL). Server Monitoring est l'extension qui y a du sens.
Astuce : si vous miroitez
install.shou les zips de version vers votre propre CDN, téléversez-les en mode binaire. Un téléversement en mode ASCII convertit les fins de ligne en CRLF et casse à la foisbash(\r: command not found) et le shebang PHP.
Mises à jour
Automatique (par défaut)
/etc/cron.d/toolbox-auto-updateexécutecron/auto-update.phptoutes les 4 heures (horaire aléatoire par serveur).- Il met à jour le noyau et chaque extension Store installée, avec la même vérification de somme de contrôle que l'installeur.
- Contrôlé par la bascule Automatic updates dans Options → Version (le cron reste en place ; le script ne fait rien quand désactivé).
Manuelle
Depuis Options → Version :
- Check for updates — vide le cache de version et interroge le serveur de mise à jour.
- Install update — télécharge et applique le nouveau noyau immédiatement (vos données —
var/state.json, surcharges*.user.jsondes extensions — 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.
Les extensions Store se mettent à jour depuis Options → Store (un bouton Update apparaît à côté de toute extension dont le catalogue a une version plus récente).
Ajouter et retirer des extensions
Voir Configuration du noyau → Store pour la marche complète. En bref :
- Ajouter : Options → Store → Install à côté de l'extension. Elle télécharge, vérifie, extrait et active en une étape.
- Retirer : Options → Store → Uninstall. Le dossier de l'extension est supprimé, mais les fichiers de réglages
*.user.jsonsont préservés pour une réinstallation future. - Désactiver sans retirer : Options → Extensions → Disable (conserve fichiers et réglages sur le disque).
Désinstaller Astral Toolbox
Depuis l'interface
Options → Version → Uninstall WHM-Toolbox (zone dangereuse). Cela déclenche le hook onUninstall() de chaque extension active (retrait de leurs crons), puis un script en arrière-plan désenregistre l'AppConfig, supprime tous les fichiers /etc/cron.d/toolbox-*, l'icône, et toute l'arborescence du plugin. Votre navigateur est redirigé vers l'accueil de WHM quelques secondes plus tard.
Depuis la ligne de commande
rm -rf /usr/local/cpanel/whostmgr/docroot/cgi/toolbox/
/usr/local/cpanel/bin/unregister_appconfig toolbox
rm -f /var/cpanel/apps/toolbox.conf
rm -f /etc/cron.d/toolbox-*
Les fichiers journaux écrits par les extensions sous
/var/log/toolbox-*.logsont laissés en place (sans danger) ; supprimez-les manuellement si vous voulez un serveur impeccable.