Skip to content

Configurações Globais (Config)

A diretoria config/ contém as parametrizações centrais do sistema. Para o motor de busca, as configurações mais críticas envolvem o Laravel Scout, o Horizon e as credenciais de serviços de terceiros.

1. Motor de Busca (Scout e Meilisearch)

Ficheiro: scout.php

Este ficheiro controla a ponte entre o banco de dados e o Meilisearch. * Sincronização Assíncrona: A sincronização de dados está configurada para ser colocada em fila (queue), utilizando a ligação redis e direcionada especificamente para a fila meilisearch_sync. Isto impede que a indexação atrase as respostas HTTP. * Ligação Hardcoded: A configuração do Meilisearch aponta fixamente para o IP interno do contentor Docker (http://172.17.0.1:7700) e utiliza a chave estática senha_mestre_buscas_123. Esta abordagem garante que a ligação não falha caso existam problemas de leitura do ficheiro .env no servidor.

2. Orquestração de Filas (Horizon e Queue)

Ficheiros: horizon.php e queue.php

Estas configurações definem o comportamento dos workers (trabalhadores) que processam as tarefas em segundo plano. * Supervisor Principal: O horizon.php define o supervisor-1, que está encarregue de processar simultaneamente as filas default (onde rodam os webhooks da Wake e a IA) e meilisearch_sync. * Gestão de Recursos: O Horizon está configurado com um limite de memória de 64MB para o processo mestre e 128MB por worker, prevenindo que tarefas pesadas esgotem a RAM do servidor. Em ambiente de produção, este supervisor pode escalar automaticamente até 10 processos simultâneos (maxProcesses => 10) consoante a carga. * Tratamento de Falhas: O ficheiro queue.php estipula que os trabalhos falhados (failed) utilizam o driver database-uuids e são guardados na tabela failed_jobs para posterior inspeção e repetição.

3. Credenciais de Terceiros

Ficheiro: services.php

Para além dos serviços padrão (como Postmark e AWS), este ficheiro regista o bloco de configuração da integração com a Wake. Ele extrai o WAKE_TOKEN do ambiente, permitindo que as classes de serviço acedam a esta credencial de forma segura através da função config('services.wake.token').

4. Base de Dados e Memória

Ficheiro: database.php

Para além das ligações relacionais, o ficheiro define o Redis como o motor principal de cache e filas. A aplicação utiliza o cliente phpredis por defeito para comunicar com o servidor Redis (geralmente alojado em 127.0.0.1:6379).