>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Segurança
Go

Como reunir todos os seus feeds de notícias e métricas em um painel aconchegante

1.000 estrelas

Você já se pegou começando a manhã alternando entre abas sem fim? Primeiro o Reddit, depois o Hacker News, verificar o clima, ver como estão os containers Docker no servidor, e se sua biblioteca favorita teve uma atualização no GitHub. No meio desse processo, sua motivação para trabalhar geralmente evapora.

Estou procurando uma solução que reúna toda essa algazarra digital em uma única página há um tempo. E parece que encontrei um projeto que faz isso sem firulas extras e sem complicação. Apresento o Dynacat.

O que é essa criatura chamada Dynacat

Basicamente, é um painel leve e autohospedado. O projeto surgiu como um fork de outra ferramenta — o Glance, mas com foco em dinâmica. Se o Glance às vezes parecia estático, o Dynacat é adaptado para dados que atualizam "em tempo real" e funcionam bem com serviços externos.

O destaque principal aqui é a simplicidade. Todo o backend é em Go, o frontend é JS puro sem frameworks pesados. O resultado é um binário com menos de 20 MB que não consome memória e roda em praticamente qualquer "ferro", seja um Raspberry Pi antigo ou um NAS caseiro.

O que você pode colocar na tela

O desenvolvedor não reinventou a roda e implementou suporte para o que há de mais demandado. Aqui está o que configurei nos primeiros dez minutos:

  • Agregadores de notícias. Feeds RSS, posts mais recentes do Reddit e Hacker News. Você pode configurar limites: por exemplo, mostrar apenas 5 notícias recentes para não se afogar em leitura.
  • Monitoramento de recursos. Status dos containers Docker e estatísticas gerais do servidor. É muito conveniente ver que tudo está "verde" sem abrir o console.
  • Atividade de desenvolvimento. Lista de releases do GitHub. Sem mais precisar atualizar páginas de repositórios para descobrir se saiu uma nova versão de um software.
  • Mídia. Vídeos recentes de canais do YouTube e status de streamers da Twitch.
  • Finanças e clima. Cotações de ações, cripto, e previsão do tempo para sua cidade.

Curiosamente, o projeto suporta widgets personalizados. Se algo estiver faltando "pronto para uso", você pode polir sua própria solução via Dynawidgets.

Como é configurado

Esqueça painéis de administração e cliques de mouse. Toda a descrição do painel vive em arquivos YAML. Para alguns isso é uma desvantagem, mas para um desenvolvedor — pura felicidade. Você pode colocar o config no Git, versioná-lo, e fazer deploy rapidamente em qualquer lugar.

Aqui está um exemplo de configuração típica de uma página:

  - name: Work
    columns:
      - size: small
        widgets:
          - type: calendar
            first-day-of-week: monday
          - type: weather
            location: Moscow, RU
            units: metric

      - size: full
        widgets:
          - type: hacker-news
          - type: releases
            repositories:
              - Panonim/dynacat
              - golang/go

A estrutura é intuitiva: divida a página em colunas, coloque widgets nas colunas. Você pode criar múltiplas abas se houver informação demais.

Design e mobile

O autor claramente entendeu que abriríamos esse painel do celular enquanto tomamos café. A interface é responsiva e fica no smartphone como um app nativo.

Além disso, há suporte a temas. Se você não gostar da aparência padrão, pode escolher entre presets prontos ou ajustar o CSS você mesmo. Sem cores que "machucam os olhos", tudo bem minimalista.

Um casal de nuances ao iniciar

Durante o processo de configuração, notei algumas coisas que vale a pena saber antecipadamente:

  1. Problemas de DNS. Se você tiver o Pi-Hole ou o AdGuard Home rodando em casa, eles podem bloquear requisições frequentes dos widgets para APIs externas. A documentação sugere simplesmente aumentar os limites nas configurações do bloqueador.
  2. Conflitos de extensão. Um bug conhecido: a extensão do navegador Dark Reader pode quebrar o layout de alguns widgets (ex.: gráficos de mercado). É melhor adicionar o domínio do painel às exceções imediatamente.
  3. Segurança. Por padrão, o Dynacat proíbe embedding em iframes de outros domínios. Se você planeja colocá-lo dentro de outro portal como o Homepage, será preciso ajustar a configuração do servidor.

Veredicto: vale a pena tentar

Se você já tem um servidor caseiro ou está apenas cansado do caos nos seus favoritos, o Dynacat é um ótimo candidato para o papel de "página inicial".

A quem definitivamente vai agradar:

  • Donos de HomeLab.
  • Quem quer ver o estado dos seus projetos e servidores em um só lugar.
  • Minimalistas que valorizam velocidade da interface.

O projeto ainda é recente, mas os recursos principais funcionam de forma estável. O tempo de carregamento da página é de cerca de um segundo, consome recursos mínimos — parece ser exatamente o que é preciso para monitoramento confortável sem dores de cabeça extras.

Confira o repositório do Dynacat, o README tem um link para a documentação com uma descrição detalhada de todos os parâmetros. Acho que vou adicionar mais alguns feeds RSS na minha lista.

Projetos relacionados