Cet outil vous permet de parcourir les données exposées via l'API UniFi Controller, développée à l'aide de PHP, JavaScript et du framework CSS Bootstrap. Il est livré avec une classe PHP pour accéder à l'API UniFi Controller , qui prend en charge plus de points de terminaison d'API que l'outil de navigateur API UniFi.
Si vous envisagez de créer votre propre code PHP pour interagir avec l'API du contrôleur UniFi, il est recommandé d'utiliser la version autonome de la classe client API, disponible sur https://github.com/Art-of-WiFi/ Client UniFi-API. Vous y trouverez également des exemples et des instructions détaillées sur la façon de l’utiliser.
Veuillez garder les points suivants à l'esprit lorsque vous utilisez le navigateur API UniFi :
La structure du fichier de configuration ayant changé, nous vous recommandons de créer une nouvelle installation lors de la mise à niveau de 1.x vers 2.x.
L'outil de navigation UniFi API offre les fonctionnalités suivantes :
$debug
sur true
dans le fichier de configuration pour activer le mode débogage)Veuillez noter que le client API fourni prend en charge beaucoup plus de points de terminaison d'API, mais il n'est cependant pas judicieux de les ajouter tous au navigateur API.
L'installation de cet outil est assez simple. Le moyen le plus simple de procéder consiste à utiliser git clone
qui permet également des mises à jour faciles :
cd
au dossier racine de votre serveur Web (sur Ubuntu, il s'agit de /var/www/html
) et exécutez la commande suivante à partir de votre invite de commande : git clone https://github.com/Art-of-WiFi/UniFi-API-browser.git
Vous pouvez également choisir de télécharger le fichier zip et de le décompresser dans le répertoire de votre choix, puis suivre les étapes de configuration ci-dessous.
@scyto maintient les conteneurs Docker pour un déploiement rapide et facile de l'outil de navigateur API UniFi. Veuillez vous référer à cette page Wiki dans le référentiel pour plus de détails. Veuillez noter que nous ne fournissons pas de support lié aux installations basées sur Docker.
config/config-template.php
qui doit être copié/renommé en config/config.php
config/config.php
config/config-template.php
pour plus d'instructions de configuration.config/users-template.php
pour plus de détailshttp(s)://<server IP address>/UniFi-API-browser/
La prise en charge des contrôleurs basés sur UniFi OS (par exemple, UniFi Dream Machine Pro) a été ajoutée avec la version 2.0.7. Lorsque vous ajoutez les détails d'un périphérique UniFi OS au fichier config/config.php
, assurez-vous de ne pas ajouter de suffixe de port ou de barres obliques finales à l'URL.
Lorsque vous utilisez le navigateur API UniFi pour vous connecter à une application réseau sur une passerelle basée sur le système d'exploitation UniFi via l'interface WAN, il est nécessaire de créer une règle de pare-feu spécifique pour autoriser l'accès externe au port 443 sur l'interface locale de la passerelle. Pour plus d'informations, veuillez vous référer à l'article de blog suivant pour plus de détails : https://artofwifi.net/2022/04/07/how-to-access-the-unifi-controller-by-wan-ip-or-hostname -sur-un-udm-pro/
Depuis la version 2.0.0, vous pouvez étendre le menu déroulant Collections avec vos propres options en les ajoutant au fichier config.php
.
Voici un exemple :
/**
* adding a custom sub-menu example
*/
$ collections = array_merge ( $ collections , [
[
' label ' => ' Custom Menu ' , // length of this string is limited due to dropdown menu width
' options ' => [
[
' type ' => ' collection ' , // either 'collection' or 'divider'
' label ' => ' hourly site stats past 24 hours ' , // string that is displayed in the dropdown menu
' method ' => ' stat_hourly_site ' , // name of the method/function in the API client class that is called
' params ' => [( time () - ( 24 * 60 * 60 )) * 1000 , time () * 1000 ], // an array containing the parameters as they are passed to the method/function
],
[
' type ' => ' collection ' ,
' label ' => ' daily site stats past 31 days ' ,
' method ' => ' stat_daily_site ' ,
' params ' => [( time () - ( 31 * 24 * 60 * 60 )) * 1000 , time () * 1000 ],
],
[
' type ' => ' divider ' , // dividers have no other properties
],
[
' type ' => ' collection ' ,
' label ' => ' enable the site LEDs ' ,
' method ' => ' site_leds ' , // don't go too wild when adding such calls, this example is simply to show the flexibility
' params ' => [ true ]
],
[
' type ' => ' collection ' ,
' label ' => ' disable the site LEDs ' ,
' method ' => ' site_leds ' , // don't go too wild when adding such calls, this example is simply to show the flexibility
' params ' => [ false ]
],
],
],
]);
Remarque : pour une option de menu de type collection
, le type
, label
, method
et params
"propriétés" sont requis.
Voici à quoi ressemble le résultat pour l’exemple ci-dessus :
Si vous avez installé l'outil à l'aide de la commande git clone
, vous pouvez appliquer les mises à jour en accédant au répertoire où l'outil est installé et en exécutant la commande git pull
à partir de là.
Sinon, vous pouvez simplement copier le contenu du dernier fichier zip vers le répertoire où l'outil a été installé.
Le client API PHP fourni avec cet outil est basé sur le travail des développeurs suivants :
et l'API telle que publiée par Ubiquiti :
Autres bibliothèques incluses :
Prudence
Il est important de noter que l'outil de navigation UniFi API est un outil puissant qui permet d'accéder aux données sensibles et aux options de configuration sur votre contrôleur UniFi. Il est donc important que vous preniez des mesures de sécurité appropriées, comme limiter l'accès à l'outil à des personnes de confiance. De plus, vous devez être conscient des risques de sécurité associés à l'exécution de code PHP sur votre serveur.
Nous vous recommandons fortement d'activer la fonctionnalité d'authentification par nom d'utilisateur/mot de passe en créant un fichier config/users.php
basé sur le fichier config/users-template.php
inclus. Lors de la création de mots de passe et de leurs hachages SHA512 pour les saisir dans le fichier config/users.php
, assurez-vous d'utiliser des mots de passe aléatoires forts . Veuillez vous référer aux instructions dans le fichier config/users-template.php
pour plus de détails
Ce projet est activement maintenu et les commentaires et suggestions sont toujours les bienvenus. Si vous rencontrez des problèmes ou avez des suggestions d'amélioration, veuillez utiliser la liste de problèmes GitHub ou les forums de la communauté Ubiquiti (https://community.ubnt.com/t5/UniFi-Wireless/UniFi-API-browser-tool-released/ mp/1392651) pour partager vos idées et vos questions.
Voici quelques captures d'écran de l'outil en action.
Le formulaire de connexion lorsque l'authentification des utilisateurs est activée :
Le menu déroulant de sélection du contrôleur :
Le menu déroulant de sélection du site :
Le menu déroulant de la collection :
Affichage de la collection de paramètres du site au format JSON :
Affichage de la collection des paramètres du site au format PHP interactif :
Le modal "À propos" :