Plugin WHMCS · v1.0.0

Duck Stats pour WHMCS — faites de l’uptime serveur un produit d’hébergement.

Installez notre addon WHMCS et chaque serveur que vous vendez apparaît dans le panneau d’administration avec son statut up/down en direct. Chaque client connecté ne voit que les moniteurs associés aux produits, serveurs ou groupes de clients qu’il possède réellement. Gratuit avec n’importe quelle offre Duck Stats — votre palier plafonne le nombre de moniteurs que vous pouvez exposer (50 / 200 / 1000 / illimité).

Demander une licence → nécessite WHMCS ≥ 8.0 · PHP ≥ 8.1
Démonstration Duck Monitor : l’admin assigne des moniteurs à des produits, le client voit le statut par serveur
L’admin assigne des moniteurs → le client voit l’uptime par serveur, le temps de réponse, l’historique de 90 jours
01 · À quoi ça ressemble

Trois écrans. Aucun bidouillage de thème.

Les trois s’affichent dans votre interface WHMCS — barre latérale admin, portail client, widget de tableau de bord. Aucune surcharge de template nécessaire.

Admin : panneau d’édition par moniteur avec tuiles d’uptime, heartbeats et association aux produits
Admin · association par moniteur (produits, serveurs, groupes, ID utilisateurs)
Client : page État du réseau avec pourcentages d’uptime, graphique de réponse et bande de heartbeats
Client · État du réseau (uniquement ses moniteurs autorisés)
Tableau de bord client : la carte Problèmes détectés liste chaque moniteur avec le statut En ligne / Hors ligne
Tableau de bord client · carte Problèmes détectés sur l’accueil
02 · Fonctionnalités

Tout ce que fait Duck Monitor, expliqué simplement.

Synchronisation auto depuis votre compte Duck Stats

Le plugin lit les moniteurs depuis un slug de page de statut via votre clé API Duck Stats. Les nouveaux moniteurs apparaissent automatiquement dans la grille admin à chaque chargement de page — aucun bouton de synchro manuel à surveiller. Un bouton Synchroniser depuis Duck Stats est là si vous voulez en forcer une.

Association aux produits par moniteur

Chaque moniteur peut être réglé sur Tous les utilisateurs, ou restreint par n’importe quelle combinaison de produits WHMCS, de serveurs (tblservers), de groupes de clients ou d’une liste libre d’ID clients. La visibilité est une union — un moniteur s’affiche si au moins une règle correspond.

Vue filtrée par client

Un client connecté obtient une entrée de menu État du réseau sur /index.php?m=duckmonitor. Il ne voit que les moniteurs liés à ses services / addons / groupe actifs. Aucune fuite entre clients.

Détails riches par moniteur

Pastille Up/Down/En pause, tuiles d’uptime 24h / 7j / 30j / 365j, latence du dernier ping, un mini-graphique de temps de réponse en Chart.js et une bande de heartbeats des 30 dernières vérifications.

Noms d’affichage personnalisés

Renommez un moniteur pour l’affichage client sans toucher à l’original. Pratique quand votre nom interne est node-07-fra-emby mais que vous voulez que les clients voient Frankfurt Streaming Node.

Ordre de tri & activation

Ordonnez les moniteurs avec un champ de tri numérique. Masquez-en un temporairement sans supprimer l’association grâce à une case Activé par ligne.

Mis en cache pour un faible coût API

La liste des moniteurs est mise en cache dans WHMCS pendant un intervalle configurable (2 min par défaut). Augmentez-le pour réduire les appels à l’API Duck Stats sur un portail chargé ; baissez-le pour une fraîcheur quasi temps réel.

Visibilité publique ou connectée

Basculez tout le panneau entre loggedin (par défaut) et public. Le mode public transforme votre WHMCS en une page de statut destinée aux clients, disponible sur your-billing-host/index.php?m=duckmonitor.

Protégé par licence, ne plante jamais WHMCS

Contacte license.duckingstats.com une fois tous les 7 jours. Si le serveur de licence est injoignable, le plugin continue de fonctionner pendant une fenêtre de tolérance de 30 jours. Si la licence est invalide, le panneau affiche un encadré courtois — vos pages de facturation continuent de fonctionner.

Enregistrements groupés & AJAX

Un seul Tout enregistrer écrit toutes les associations en un POST, ou enregistrez un moniteur individuel sur place via AJAX. Les deux voies sont protégées contre le CSRF via la session admin de WHMCS.

Traces dans le journal d’activité

Tous les échecs (erreurs curl de licence, réponses API non-200, JSON invalide) sont écrits dans Utilities → Logs → Activity Log de WHMCS avec le préfixe duckmonitor: / duckmonitor api:.

Désinstallation propre

Cliquez sur Désactiver et les deux tables internes (duck_monitor_map, duckmonitor_license) sont supprimées. Supprimez ensuite le dossier du module. Aucun schéma résiduel, aucun paramètre résiduel.

Installation protégée par licence

Le zip du plugin est délivré par installation WHMCS — ce n’est pas un téléchargement public. Chaque installation est liée à un seul nom d’hôte ; le runtime du panneau revérifie auprès de license.duckingstats.com tous les 7 jours.

03 · Prérequis

Si votre WHMCS tourne, le plugin tourne.

Aucune extension exotique. Juste cURL et du HTTPS sortant.

WHMCS

≥ 8.0
Testé sur 8.10 / 8.11 / 8.12 / 8.13

PHP

≥ 8.1
8.1 · 8.2 · 8.3

MySQL

≥ 5.7
ou MariaDB ≥ 10.3

Ext. PHP

curl, json
Fournies par défaut

Sortant

stats.duckingstats.com
license.duckingstats.com
:443 HTTPS

Licence

par installation WHMCS
Une licence = un nom d’hôte. Nous vous envoyons le zip + la clé de licence par e-mail après demande.
04 · Installation

Du zip au live en 5 minutes.

  1. Demandez votre licence + le zip du plugin

    Écrivez à [email protected] avec le nom d’hôte de votre WHMCS. Nous vous renvoyons par e-mail votre clé de licence + un lien de téléchargement signé à usage unique lié à ce nom d’hôte.

  2. Téléversez vers votre installation WHMCS

    Décompressez et téléversez pour que duckmonitor.php se trouve dans /modules/addons/duckmonitor/duckmonitor.php. L’arborescence complète :

    modules/addons/duckmonitor/
      duckmonitor.php
      install.php
      lib/{License,ApiClient,ServerSync,ClientPanel}.php
      templates/status.tpl
      lang/english.php
  3. Activez dans WHMCS

    Admin WHMCS → Setup → Addon Modules → trouvez Duck MonitorActivate. Le hook d’activation crée automatiquement les tables duck_monitor_map et duckmonitor_license.

  4. Collez deux clés dans Configure

    Ouvrez Duck Monitor → Configure et renseignez :

    • Clé de licence — format DS-XXXX-XXXX-XXXX-XXXX, depuis votre compte Duck Stats.
    • Clé API Duck Stats — générez-la sur stats.duckingstats.comSettings → API Keys.
    • Slug de la page de statut — la page de statut Duck Stats depuis laquelle lire les moniteurs.

    Accordez le contrôle d’accès aux rôles admin qui doivent voir la page de l’addon.

  5. Associez les moniteurs aux produits

    Ouvrez la page de l’addon (barre latérale → Duck Monitor). Pour chaque moniteur, choisissez Tous les utilisateurs ou Sélectionnés, puis cochez les produits, serveurs, groupes ou ID clients qui doivent le voir. Cliquez sur Tout enregistrer. Terminé.

05 · Licence

Deux clés, à dessein.

Une clé de licence active le plugin. Une clé API distincte lit votre compte Duck Stats. Les garder séparées vous permet de renouveler l’une sans réactiver l’autre — changez de clé API chaque trimestre sans toucher à la licence.

  • La vérification de licence se déclenche une fois tous les 7 jours par installation WHMCS.
  • Tolérance hors ligne de 30 jours — si notre serveur de licence est injoignable mais que vous avez eu un OK récent, le plugin continue de servir les moniteurs.
  • L’empreinte est sha256(whmcs_install_id || hostname) — une licence, une installation.
  • Révoquée ou expirée ? Le panneau affiche un encadré courtois « Licence invalide ». Votre WHMCS lui-même ne casse jamais.
POST license.duckingstats.com/v1/check
{
  "license_key": "DS-8CC4-61A7-1704-7897",
  "fingerprint": "a4d2f3...e91c",
  "plugin_version": "1.0.0"
}

← HTTP 200
{
  "active": true,
  "tier": "pro",
  "message": "OK"
}

# mis en cache 7 jours ; tolérance hors ligne de 30 jours.
06 · Comparatif

Duck Monitor face aux modules de statut du store WHMCS.

Nous nous sommes comparés à deux des modules les plus populaires du marketplace WHMCS dans le même créneau : WS Server Monitoring et WS UptimeRobot Status de whmcsservices.com. Voici ce qu’il en est.

Capacité Duck Monitor WS Server Monitoring WS UptimeRobot Status
Moteur de monitoringDuck Stats — sondes multi-régions depuis notre flotteAuto-hébergé dans WHMCS — cron mono-région sur votre serveur de facturationTire depuis UptimeRobot — récupération mono-région
Consensus multi-régions (élimine les fausses alertes)Oui — 4 régions, quorum configurableNon — un seul serveur exécute les vérificationsNon — l’offre gratuite d’UptimeRobot est mono-région
Association aux produits par moniteurOui — produits, serveurs, groupes, ID clients (union)Oui — packages basés sur les produitsOui — produits, clients sélectionnés, public, connecté
Moniteurs push (pour les machines derrière un NAT)Oui — heartbeats cron + surveillants de processusNonNon
Inspecteur de santé DB (requêtes lentes, retard de réplica, buffer pool)Oui — activable sur le moniteur MySQLNon — MySQL = simple test de port ouvertNon
Offre gratuiteOui — 50 moniteurs gratuits à vieNon — licence payanteNon — licence à 29,99 $
Alertes SMS aux clients (passerelle SMS à fournir)Partiel — nous vous alertons par SMS (votre propre Twilio) ; le plugin WHMCS affiche le statut, n’envoie pas de SMS aux clientsOui — opt-in SMS au niveau membre via WS SMS ManagerNon
Ouverture auto d’un ticket WHMCS en cas de panneNon (signalé comme une lacune) — nous alertons par e-mail/webhook ; l’auto-ticket côté WHMCS est sur la feuille de routeOui — ticket créé automatiquement quand un moniteur tombeNon
Monitoring revendu comme produit (les clients vous paient pour surveiller leurs sites)Non (signalé comme une lacune) — Duck Monitor expose vos serveurs aux clients ; nous ne permettons pas encore aux clients d’ajouter leurs propres URL via WHMCSOui — c’est tout le produitNon
Page de statut publique hors WHMCSOui — de vraies pages de statut sur votre propre domaine, avec abonnement + incidentsLimité — à l’intérieur de WHMCS uniquementOui — les pages de statut propres à UptimeRobot
Graphique de temps de réponse en direct par moniteurOui — Chart.js, p50/p95/p99BasiqueBasique
Tuiles d’uptime sur 365 joursOuiPas par défautNon
API REST ouverteOuiGET /api/v1/monitors avec auth bearerLimité — ajout/édition/suppression/up-ou-down seulementNon
Marque blanche / multi-marquesOui sur les offres Team / EnterpriseNonNon
Tableau de statut DiscordOui — emoji personnalisé par moniteur, actualisation toutes les 90sNonNon
DistributionLiée à la licence — un zip par nom d’hôte WHMCS, vérification au runtimeLiée à la licenceLiée à la licence · encodée avec ionCube
Coût de la licenceIncluse gratuitement avec n’importe quelle offre Duck StatsLicence (variable) · licence du code source en supplémentLicence 29,99 $ · code source 249,99 $

Le comparatif reflète les fonctionnalités listées publiquement sur whmcsservices.com au 2026-06-29. Là où ils ont une fonctionnalité que nous n’avons pas, nous l’avons signalée en orange pour que vous puissiez demander avant d’acheter. Si vous avez besoin de l’une d’elles maintenant, écrivez à [email protected] — le cas de l’auto-ticket en cas de panne est mineur.

07 · Pour qui

Trois usages sincères.

Revendeur d’hébergement

Associez votre moniteur Hetzner FSN1 au produit Premium VPS Frankfurt. Les clients de cette offre voient le statut de Francfort sans voir vos tuiles Londres ou Dallas. Les tickets de support liés au statut chutent de moitié.

Opérateur média / IPTV

Associez votre moniteur Emby cluster A au groupe de clients Emby Power Users. Ils obtiennent une vue en temps réel du cluster qu’ils paient ; les autres ne le voient pas du tout.

Éditeur SaaS / appli web

Basculez le plugin en visibilité public et vous obtenez une page de statut accessible sans connexion, directement dans votre interface WHMCS — aucun sous-domaine séparé à configurer.

08 · FAQ

Questions fréquentes avant d’installer.

Où obtenir ma clé de licence ?
Après avoir souscrit un abonnement Duck Stats avec l’addon WHMCS, la clé apparaît dans votre compte sur stats.duckingstats.comSettings → License keys. Format : DS-XXXX-XXXX-XXXX-XXXX. Le temps que nous finalisions le paiement en self-service, écrivez à [email protected] et nous en émettons une en moins d’une heure.
Puis-je utiliser une licence sur plusieurs installations WHMCS ?
Non. Chaque licence reçoit une empreinte sha256(whmcs_install_id || hostname) à la première vérification. Si vous devez surveiller deux portails de facturation, il vous faut deux licences — ou payer l’offre Source/Multi-installation (écrivez-nous). Déplacer une installation unique vers un nouvel hôte ne pose pas de problème ; contactez simplement le support pour réinitialiser l’empreinte.
Que se passe-t-il si license.duckingstats.com est hors service ?
Rien de visible. Le plugin met en cache une vérification réussie pendant 7 jours et respecte ce cache sur une fenêtre de tolérance de 30 jours si notre serveur de licence est injoignable. Au-delà de 30 jours hors ligne, les panneaux affichent un encadré courtois « injoignable » — votre WHMCS lui-même continue de fonctionner dans tous les cas.
Quelles données le plugin envoie-t-il à Duck Stats ?
La vérification de licence n’envoie que {license_key, fingerprint, plugin_version}. La lecture des moniteurs tire depuis votre compte Duck Stats via votre clé API — nous ne recevons ni données clients WHMCS, ni factures, ni tickets. L’association entre les moniteurs et vos produits WHMCS est stockée uniquement dans votre base de données locale (duck_monitor_map).
Puis-je passer en marque blanche / masquer la marque « Duck Stats » ?
Sur les offres Team et Enterprise, oui — la page de statut et le panneau WHMCS permettent tous deux de remplacer le logo, la couleur d’accent et le texte de pied de page. Sur Free / Pro, le panneau conserve une petite mention « Powered by Duck Stats ».
Comment obtenir le plugin ?
Écrivez à [email protected] avec le nom d’hôte de votre WHMCS. Nous répondons avec votre clé de licence + un lien de téléchargement signé à usage unique lié à ce nom d’hôte. Il n’y a pas de téléchargement public — le zip est délivré par installation.
Comment fonctionne la limite du nombre de moniteurs ?
C’est un décompte lié à votre offre Duck Stats : Free 50 / Pro 200 / Team 1000 / Enterprise illimité. Le plugin ne fait que lire votre compte — vous pouvez associer tous les moniteurs présents sur votre page de statut. Les moniteurs au-delà de la limite n’apparaissent tout simplement pas dans l’API Duck Stats.
Est-ce que ça ralentira WHMCS ?
La liste des moniteurs Duck Stats est mise en cache dans WHMCS pendant 2 minutes par défaut (configurable). La vérification de licence a lieu une fois tous les 7 jours, puis est servie depuis une ligne locale. Le surcoût par chargement de page est d’une lecture de table indexée. Nous avons mesuré moins de 25 ms sur une installation WHMCS 8.13 standard.

Faites de l’uptime une partie du produit.

Cinq minutes pour l’installer, aucun bidouillage de template, gratuit avec n’importe quelle offre Duck Stats.

Écrire pour une licence