Sobre o projeto

ΛNΛLOG é uma ferramenta de análise minimalista projetada para ser auto-hospedável. É fortemente inspirada no piratepx e se concentra em um conjunto pequeno e compreensível de recursos, em vez de uma grande suíte de análises. O projeto consiste em um painel frontend e um servidor Node.js. Os eventos são registrados por meio de uma API simples e exibidos em um painel web. O README mostra uma captura de tela do painel e um vídeo demonstrativo curto. O armazenamento é plugável. A variável ANALOG_DATABASE_PROVIDER seleciona um dos quatro backends: MongoDB, PostgreSQL, Redis ou SQLite. O README sugere provedores hospedados como MongoDB, Supabase, Render, CockroachDB, Upstash e Turso, e observa que o PostgreSQL deve usar um pool de conexões de transação. As conexões SQLite usam libsql e podem apontar para um arquivo local através de uma URL do tipo file:. A configuração é feita por meio de variáveis de ambiente. Opções notáveis incluem o provedor e URLs de conexão do banco de dados, a porta do servidor, ANALOG_TOKEN para proteger requisições, ANALOG_PROTECT_POST para exigir o token em requisições POST, ANALOG_STATIC_SERVER para fazer com que o servidor Node.js também sirva o frontend compilado, e ANALOG_DATABASE_REQUEST_ITEM_COUNT para definir quantos itens a API requisita por chamada ao banco de dados. As variáveis do frontend usam o prefixo VITE porque o aplicativo é construído com Vite; elas controlam o título da página, o intervalo de tempo exibido (mínimo 10, máximo 30), se a limpeza de dados roda junto com requisições GET e se as requisições à API são enfileiradas sequencialmente em vez de buscadas todas de uma só vez. As opções de implantação documentadas no README incluem desenvolvimento local com npm install e npm run dev, um Dockerfile com argumentos de construção e variáveis de ambiente em tempo de execução, e serviços na nuvem Koyeb, Netlify, Render e Vercel com seus respectivos arquivos de configuração (netlify.toml, render.yaml, vercel.json). Netlify e Vercel podem agendar uma função de limpeza diária via configuração cron, embora o README avise que o agendamento pode não funcionar devido a limitações de tempo de execução. A API é centrada em /api/events. Uma requisição POST envia um nome de evento no corpo e retorna OK; se ANALOG_PROTECT_POST e ANALOG_TOKEN estiverem configurados, a requisição deve incluir um cabeçalho Authorization com o token prefixado por "Basic ". Uma requisição GET retorna dados de eventos como arrays de números indexados pelo nome do evento. Aceita um parâmetro opcional cursor para consultas paginadas no banco de dados (sem ele, todos os dados são buscados de uma só vez) e um parâmetro opcional clean-up para acionar a limpeza durante a busca. Quando um cursor é usado, a resposta inclui dados mais um valor nextCursor. Se ANALOG_TOKEN estiver configurado, a URL do painel requer um parâmetro de consulta token, por exemplo hostname/?token=ANALOG_TOKEN. Em geral, ΛNΛLOG é uma alternativa leve e auto-hospedável para rastreamento básico de eventos, com backends de armazenamento flexíveis e caminhos de implantação diretos.