Sistema central (Nexus) para o monitoramento de PABX (FreePBX/Asterisk) e gestão de informações de clientes, desenvolvido para a equipe de suporte da Ingline Systems.
Go to file
LukiBeg 1c1a660663 feat: implement user interface and routing system
- Add Tailwind CSS configuration with custom theme and components
- Create responsive navbar with authentication-based navigation
- Implement user creation form with validation styling
- Configure protected routes with authorization middleware
- Add dashboard and user management routes
2025-10-28 17:32:50 -03:00
app feat: implementar sistema de autenticação e gerenciamento de usuários 2025-10-28 17:26:08 -03:00
bootstrap ÚUPDATE: Creating a aliases to new middleware 'Authorization'. 2025-10-28 13:24:34 -03:00
config Firsts configurations of project. 2025-10-28 00:12:30 -03:00
database feat: configurar estrutura do banco de dados para usuários 2025-10-28 17:26:22 -03:00
lang/en Firsts configurations of project. 2025-10-28 00:12:30 -03:00
public Initial Commit 2025-10-27 13:24:12 -03:00
resources feat: implement user interface and routing system 2025-10-28 17:32:50 -03:00
routes feat: implement user interface and routing system 2025-10-28 17:32:50 -03:00
storage Initial Commit 2025-10-27 13:24:12 -03:00
tests Initial Commit 2025-10-27 13:24:12 -03:00
.editorconfig Initial Commit 2025-10-27 13:24:12 -03:00
.env.example Firsts configurations of project. 2025-10-28 00:12:30 -03:00
.gitattributes Initial Commit 2025-10-27 13:24:12 -03:00
.gitignore Initial Commit 2025-10-27 13:24:12 -03:00
README.md Initial Commit 2025-10-27 13:24:12 -03:00
artisan Initial Commit 2025-10-27 13:24:12 -03:00
composer.json Firsts configurations of project. 2025-10-28 00:12:30 -03:00
composer.lock Firsts configurations of project. 2025-10-28 00:12:30 -03:00
package-lock.json Firsts configurations of project. 2025-10-28 00:12:30 -03:00
package.json Initial Commit 2025-10-27 13:24:12 -03:00
phpunit.xml Initial Commit 2025-10-27 13:24:12 -03:00
vite.config.js Initial Commit 2025-10-27 13:24:12 -03:00

README.md

Nexus - Ingline Systems

Status: 🚧 Em Desenvolvimento 🚧

Sistema central (Nexus) para o monitoramento de PABX (FreePBX/Asterisk) e gestão de informações de clientes, desenvolvido para a equipe de suporte da Ingline Systems.

1. Sobre o Projeto

O Nexus é a ferramenta definitiva para a equipe de suporte da Ingline Systems. Ele foi criado para centralizar duas necessidades críticas em uma única aplicação Laravel:

  1. Gestão de Clientes: Manter um registro centralizado e confiável com todas as informações vitais dos clientes (Razão Social, CNPJ, contatos, detalhes técnicos, etc.).
  2. Monitoramento Ativo: Acompanhar o estado de saúde (status de endpoints, troncos, etc.) de todos os servidores FreePBX/Asterisk dos clientes em tempo real.

A arquitetura do projeto utiliza um modelo "push". Um script PHP leve, instalado no servidor FreePBX de cada cliente, coleta os dados de status via AMI (Asterisk Manager Interface) e os envia periodicamente para a API deste sistema.

O Nexus, então, processa, armazena e exibe essas informações em um dashboard unificado, permitindo que a equipe de suporte aja proativamente antes que um problema seja reportado.

2. Funcionalidades Planejadas

  • Dashboard de Monitoramento: Visualização em tempo real do status de todos os endpoints de todos os clientes.
  • Cadastro Completo de Clientes: CRUD para clientes, armazenando informações comerciais (CNPJ, Endereço) e técnicas (IP, Versão do FreePBX, etc.).
  • API Segura: Endpoint POST para recebimento dos dados (heartbeats) dos scripts dos clientes, protegido por autenticação baseada em token (Sanctum).
  • Alertas: Notificações (via Email, Slack, etc.) quando um cliente fica offline (para de enviar heartbeats) ou um endpoint específico falha.
  • Histórico de Status: Logs de mudanças de estado para permitir diagnósticos (ex: "Ramal 1020 do Cliente X ficou offline às 14:30").
  • Gestão de Usuários: Controle de acesso para a equipe de suporte.

3. Arquitetura e Stack

Este projeto é construído com a seguinte stack:

  • Backend: Laravel 12 (PHP 8.3+)
  • Frontend: Blade com (potencialmente) Livewire ou Vue.js para reatividade
  • Banco de Dados: MySQL (ou PostgreSQL)
  • Filas (Jobs): Redis (Recomendado) para processar os heartbeats de forma assíncrona
  • Broadcasting (WebSockets): Laravel Reverb para atualizações em tempo real no dashboard
  • Autenticação da API: Laravel Sanctum (para os tokens dos scripts clientes)

4. Primeiros Passos (Ambiente de Desenvolvimento)

Siga os passos abaixo para configurar o projeto localmente.

  1. Clonar o repositório:

    git clone [https://github.com/Lukibeg/nexus-inglinesystems.git](https://github.com/Lukibeg/nexus-inglinesystems.git)
    cd nexus-inglinesystems
    
  2. Instalar dependências (PHP e JS):

    composer install
    npm install
    npm run build
    
  3. Configurar o Ambiente:

    # Copie o arquivo de exemplo
    cp .env.example .env
    
    # Gere a chave da aplicação
    php artisan key:generate
    
  4. Configurar o .env: Abra o arquivo .env e configure as variáveis do banco de dados (DB_DATABASE, DB_USERNAME, DB_PASSWORD).

  5. Rodar as Migrações:

    php artisan migrate
    
  6. (Opcional) Rodar Seeders para dados de teste:

    php artisan db:seed
    
  7. Iniciar o servidor de desenvolvimento:

    php artisan serve
    

5. Script Cliente (Agente)

A pasta /client-script (ou um repositório separado) conterá o script PHP monitor.php que deve ser instalado em cada servidor FreePBX do cliente.

Responsabilidades do script:

  1. Conectar-se ao AMI (Asterisk Manager Interface).
  2. Obter o status dos endpoints (ex: pjsip show endpoints).
  3. Formatar os dados em um JSON.
  4. Enviar os dados via POST para a API do Nexus (https://nexus.inglinesystems.com.br/api/v1/status-update), incluindo o Token de Autenticação no cabeçalho.
  5. Ser executado via crontab a cada 1 ou 5 minutos.