Esta ferramenta permite navegar pelos dados expostos por meio da API UniFi Controller, desenvolvida em PHP, JavaScript e o framework Bootstrap CSS. Ele vem com uma classe PHP para acesso à API UniFi Controller , que suporta mais endpoints de API do que a ferramenta de navegador UniFi API.
Se você planeja criar seu próprio código PHP para interagir com a API do controlador UniFi, é recomendado usar a versão autônoma da classe cliente da API, que pode ser encontrada em https://github.com/Art-of-WiFi/ Cliente UniFi-API. Lá você também encontrará exemplos e instruções detalhadas de como usá-lo.
Tenha em mente o seguinte ao usar o navegador UniFi API:
Como a estrutura do arquivo de configuração foi alterada, recomendamos a criação de uma nova instalação ao atualizar de 1.x para 2.x.
A ferramenta do navegador UniFi API oferece os seguintes recursos:
$debug
como true
no arquivo de configuração para ativar o modo de depuração)Observe que o cliente API incluído oferece suporte a muitos outros endpoints de API, mas nem todos fazem sentido adicionar ao navegador de API.
A instalação desta ferramenta é bastante simples. A maneira mais fácil de fazer isso é usando git clone
que também permite atualizações fáceis:
cd
para a pasta raiz do seu servidor web (no Ubuntu é /var/www/html
) e execute o seguinte comando em seu prompt de comando: git clone https://github.com/Art-of-WiFi/UniFi-API-browser.git
Alternativamente, você pode optar por baixar o arquivo zip e descompactá-lo no diretório de sua preferência e seguir as etapas de configuração abaixo.
@scyto mantém contêineres Docker para implantação rápida e fácil da ferramenta de navegador UniFi API. Consulte esta página Wiki no repositório para obter mais detalhes. Observe que não oferecemos suporte relacionado a instalações baseadas em Docker.
config/config-template.php
que deve ser copiado/renomeado para config/config.php
config/config.php
config/config-template.php
para obter mais instruções de configuraçãoconfig/users-template.php
para obter mais detalheshttp(s)://<server IP address>/UniFi-API-browser/
O suporte para controladores baseados em UniFi OS (por exemplo, o UniFi Dream Machine Pro) foi adicionado na versão 2.0.7. Ao adicionar os detalhes de um dispositivo UniFi OS ao arquivo config/config.php
, certifique-se de não adicionar um sufixo de porta ou barras finais ao URL.
Ao usar o navegador UniFi API para conectar-se a um aplicativo de rede em um gateway baseado em UniFi OS por meio da interface WAN, é necessário criar uma regra de firewall específica para permitir acesso externo à porta 443 na interface local do gateway. Para obter mais informações, consulte a seguinte postagem do blog para obter mais detalhes: https://artofwifi.net/2022/04/07/how-to-access-the-unifi-controller-by-wan-ip-or-hostname -em-um-udm-pro/
Desde a versão 2.0.0 você pode estender o menu suspenso Coleções com suas próprias opções adicionando-as ao arquivo config.php
.
Aqui está um exemplo:
/**
* 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 ]
],
],
],
]);
Nota: para uma opção de menu de tipo collection
, as "propriedades" type
, label
, method
e params
são obrigatórias.
Este é o resultado do exemplo acima:
Se você instalou a ferramenta usando o comando git clone
, poderá aplicar atualizações acessando o diretório onde a ferramenta está instalada e executando o comando git pull
a partir daí.
Caso contrário, você pode simplesmente copiar o conteúdo do arquivo zip mais recente para o diretório onde a ferramenta foi instalada.
O cliente PHP API que vem com esta ferramenta é baseado no trabalho dos seguintes desenvolvedores:
e a API publicada pela Ubiquiti:
Outras bibliotecas incluídas:
Cuidado
É importante observar que a ferramenta de navegador UniFi API é uma ferramenta poderosa que permite acesso a dados confidenciais e opções de configuração em seu controlador UniFi. Portanto, é importante que você tome medidas de segurança adequadas, como limitar o acesso à ferramenta a pessoas de confiança. Além disso, você deve estar ciente dos riscos de segurança associados à execução de código PHP em seu servidor.
É altamente recomendável ativar o recurso de autenticação de nome de usuário/senha criando um config/users.php
baseado no arquivo config/users-template.php
incluído. Ao criar senhas e seus hashes SHA512 para entrada no arquivo config/users.php
, certifique-se de usar senhas aleatórias fortes . Consulte as instruções no arquivo config/users-template.php
para obter mais detalhes
Este projeto é mantido ativamente e comentários e sugestões são sempre bem-vindos. Se você encontrar algum problema ou tiver alguma sugestão de melhorias, use a lista de problemas do GitHub ou os fóruns da comunidade Ubiquiti (https://community.ubnt.com/t5/UniFi-Wireless/UniFi-API-browser-tool-released/ mp/1392651) para compartilhar suas ideias e dúvidas.
Aqui estão algumas capturas de tela da ferramenta em ação.
O formulário de Login quando a autenticação do usuário está habilitada:
O menu suspenso de seleção do controlador:
O menu suspenso de seleção de site:
O menu suspenso da coleção:
Mostrando o conjunto de configurações do site no formato JSON:
Mostrando a coleção de configurações do site em formato PHP interativo:
O modal "Sobre":