Astral 360 Astral Toolbox

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/php et ne se rabat sur le php du 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

  1. Résoudre la dernière version du noyau — interroge https://static.astralinternet.com/WHM-Toolbox/core/manifest.php pour 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.
  2. 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.
  3. Extraire et enregistrer — décompresse vers /usr/local/cpanel/whostmgr/docroot/cgi/toolbox/, rend toolbox.php exé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
  4. Installer le cron de mise à jour automatique (sauf --no-autostart) — dépose /etc/cron.d/toolbox-auto-update avec 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).
  5. 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 dans extensions/<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 php du 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/php et 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.sh ou 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 fois bash (\r: command not found) et le shebang PHP.

Mises à jour

Automatique (par défaut)

  • /etc/cron.d/toolbox-auto-update exécute cron/auto-update.php toutes 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.json des 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 → StoreInstall à côté de l'extension. Elle télécharge, vérifie, extrait et active en une étape.
  • Retirer : Options → StoreUninstall. Le dossier de l'extension est supprimé, mais les fichiers de réglages *.user.json sont préservés pour une réinstallation future.
  • Désactiver sans retirer : Options → ExtensionsDisable (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-*.log sont laissés en place (sans danger) ; supprimez-les manuellement si vous voulez un serveur impeccable.