Sobre o projeto

Insight é um painel de web analytics que você executa em seu próprio servidor. É instalado via Docker e, em seguida, uma única tag de script é colada no head do site; o painel mostra, em tempo real, quem está visitando, de onde, o que lê, o que compra e quais bots de IA rastreiam as páginas. Não há conta SaaS nem terceiros — cada byte permanece em um banco de dados na máquina escolhida por você. Métricas de audiência e conteúdo - Visitantes, visualizações de página, taxa de rejeição, tempo de engajamento, visitantes novos versus recorrentes - Feed ao vivo e um mapa mundi 3D com detalhes por visitante - Principais páginas, páginas de destino, páginas de saída e cliques externos - Países, regiões, cidades e idiomas Aquisição - Classificação de canais (busca, social, IA, referência, direto), referenciadores, campanhas e detalhamento completo de UTM - Palavras-chave do Search Console através de uma conexão opcional Receita - Uma conexão com o Stripe usando uma chave de apenas leitura exibe a receita líquida de reembolsos, taxa de conversão, receita por visitante e atribuição de fonte e campanha derivada de seus próprios eventos de compra Comportamento e bots - Funis de dois a quatro etapas, coortes de retenção semanal e um mapa de calor de horas de pico - Registro de crawlers de IA e indexação por página, divididos em grupos de respostas de IA, indexação e treinamento; crawlers que nunca executam JavaScript ainda são registrados no lado do servidor Recursos de conveniência - Intervalos de data de hoje, 7d, 30d, 90d ou personalizado, além de notas nos gráficos - Temas claro e escuro e personalização do painel via drag-and-drop - Importação opcional do GA4 para números históricos e Mapbox para o globo Modelo de privacidade - Por padrão, o rastreador não grava nada no dispositivo do visitante: sem cookies e sem localStorage - Os visitantes são contados com um hash SHA-256 com salt que rotaciona diariamente; endereços IP brutos nunca são gravados no banco de dados e não podem ser recuperados do hash - O modo preciso opcional via data-persist="true" armazena um id aleatório de primeira parte no localStorage para rastreamento exato de visitantes recorrentes e retenção; o README observa que isso deve ser tratado como um cookie em políticas de privacidade e, para públicos da UE, em fluxos de consentimento - O projeto afirma claramente que nenhuma ferramenta de analytics torna um site compatível com o GDPR por si só, pois a conformidade envolve tudo o que é feito com dados pessoais Instalação e operações - Um script de provisionamento para um servidor Ubuntu novo instala o Docker, regras de firewall e atualizações de segurança automáticas - A configuração reside em um arquivo .env: e-mail e senha do administrador, segredo de autenticação e senha do ClickHouse - Dois containers iniciados com Docker Compose; um servidor pequeno de 1 vCPU / 2 GB RAM é descrito como suficiente - Um fluxo de trabalho opcional do GitHub Actions compila a imagem e a implanta em seu servidor via SSH a cada push Segurança - Sem cadastro público e sem endpoint de registro; o único administrador é o e-mail e a senha definidos no ambiente do servidor, comparados em tempo constante - Autenticação de dois fatores obrigatória: um código QR é exibido no primeiro login e um código de 6 dígitos é exigido posteriormente - As sessões são assinadas com HMAC usando o segredo de autenticação e expiram após 30 dias - O painel é marcado como noindex e desativado no robots.txt - Segredos residem apenas no .env do servidor; o repositório não contém nenhum CLI - Uma CLI de apenas leitura com um token separado expõe números como "insight stats 30d", "insight stats today --site myshop.com" e "insight sites", e pode ser conectada a um assistente de IA para perguntas em linguagem natural; o token não pode desbloquear o painel Stack e licença - Next.js 16 App Router (standalone), React 19, TypeScript e Tailwind CSS v4 - ClickHouse armazena eventos, SQLite armazena a configuração; Mapbox GL renderiza o globo e Recharts desenha os gráficos - Licença MIT, construído por Nicolas Lecocq