Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📊 GitHub Stats of Readme

Status Docker Node.js License: Apache 2.0

Visualize suas estatísticas do GitHub em tempo real.
Uma versão containerizada do GitHub Readme Stats, pronta para deploy, permitindo gerar cards personalizados com suas estatísticas e linguagens mais usadas.

Reportar BugSolicitar Feature


📑 Índice


📸 Sobre o Projeto

O GitHub Stats of Readme é uma implementação containerizada do GitHub Readme Stats para hospedagem própria. Baseado no projeto github-readme-stats de anuraghazra, esta versão adiciona uma camada de containerização otimizada com Docker para facilitar o deploy em ambientes de produção.

Principais Funcionalidades

  • 📊 Estatísticas em Tempo Real: Visualize stars, commits, PRs, issues e contribuições.
  • 🎨 Personalização Completa: Temas, cores, idiomas e layouts customizáveis.
  • 💻 Top Linguagens: Exiba as linguagens de programação mais utilizadas.
  • 🔒 Token Privado: Use seu próprio token do GitHub para evitar rate limits.
  • 🌐 API RESTful: Endpoints /api e /api/top-langs para integração.
  • 🐳 Containerizado: Deploy simplificado com Docker.
  • ⚡ Alta Performance: Otimizado para responder rapidamente a requisições.

🛠️ Tecnologias Utilizadas

Este projeto foi desenvolvido utilizando as seguintes tecnologias:

  • Base: github-readme-stats by anuraghazra
  • Runtime: Node.js 20 Alpine
  • Framework: Express.js
  • Containerização: Docker
  • API: GitHub REST API v3

💻 Pré-requisitos

Antes de começar, certifique-se de ter instalado em sua máquina:

  • Git
  • Docker (Recomendado)
  • Uma conta no GitHub
  • Token de acesso pessoal do GitHub (PAT)

🚀 Como Rodar o Projeto Localmente

🐳 Rodando com Docker

1. Clone o repositório

git clone https://github.com/anuraghazra/github-readme-stats.git
cd github-readme-stats

2. Configure as Variáveis de Ambiente

Crie um arquivo .env na raiz do projeto com as seguintes variáveis:

# Token do GitHub (OBRIGATÓRIO)
# Crie seu token em: https://github.com/settings/tokens
# Permissões necessárias: repo, user, workflow
PAT_1=SEU_TOKEN_AQUI

# Seu usuário do GitHub (para evitar abuso de terceiros)
WHITELIST=seu_usuario

Caution

O arquivo .env contém dados sensíveis como seu token de acesso do GitHub.

NUNCA faça commit ou exponha este arquivo publicamente. O .env já está listado no .gitignore para prevenir isso, mas sempre verifique antes de enviar suas alterações para o repositório.

3. Construir a Imagem Docker

docker build -t github-stats-of-readme .

4. Executar o Container

docker run -d -p 8080:8080 --env-file .env --name github-stats-of-readme github-stats-of-readme

5. Acessar a Aplicação

Abra seu navegador e acesse:

Estatísticas do Usuário:

http://localhost:8080/api?username=seu_usuario

Top Linguagens:

http://localhost:8080/api/top-langs?username=seu_usuario

🚀 Deploy em Produção

Discloud (Recomendado)

O GitHub Stats Web está pré-configurado para ser implantado na Discloud.

📝 Configuração do discloud.config

Para hospedar na Discloud, você precisa criar um arquivo discloud.config na raiz do projeto:

  1. Acesse o Gerador de discloud.config da Discloud.
  2. Preencha os seguintes parâmetros:
    • ID: Seu subdomínio cadastrado na Discloud
    • Type: Site
    • Main: Dockerfile
    • Name: Nome do seu app
    • RAM: 512 (mínimo recomendado)
    • VERSION: latest
    • AUTORESTART: true
  3. Baixe o arquivo gerado e adicione à raiz do projeto.

Exemplo de discloud.config:

ID=github-stats-of-readme
TYPE=site
MAIN=Dockerfile
NAME=MyGitHubStats
RAM=512
VERSION=latest
AUTORESTART=true

🔑 Configurando as Variáveis de Ambiente

No painel da Discloud, adicione as seguintes variáveis de ambiente:

Variável Descrição Exemplo
PAT_1 Token de acesso pessoal do GitHub ghp_xxxxxxxxxxxxxxxxxxxx
WHITELIST Seu usuário do GitHub (opcional) seu_usuario

Important

Como criar seu Token do GitHub (PAT):

  1. Acesse: https://github.com/settings/tokens
  2. Clique em "Generate new token" → "Generate new token (classic)"
  3. Selecione as permissões: repo, user, workflow
  4. Clique em "Generate token"
  5. Copie o token gerado (você não poderá vê-lo novamente!)

📦 Realizando o Deploy

Com o discloud.config criado e as variáveis configuradas:

  1. Acesse o painel da Discloud
  2. Faça upload do projeto compactado (ZIP)
  3. Aguarde o build e deploy automático

Deploy em Outras Plataformas

O GitHub Stats Web pode ser hospedado em qualquer plataforma que suporte Docker:

  • Railway: Conecte o repositório GitHub e configure as variáveis de ambiente
  • Render: Deploy automático via Dockerfile
  • Vercel: Suporte nativo ao projeto original
  • Heroku: Com Docker ou buildpacks Node.js
  • DigitalOcean App Platform: Suporte nativo a Docker

❓ Perguntas Frequentes (FAQ) & Solução de Problemas

🔑 Erro: "Bad credentials" ou "401 Unauthorized"

Este erro indica que o token do GitHub está inválido ou ausente.

  • Causa: O token PAT_1 não foi configurado ou está incorreto.
  • Solução:
    1. Verifique se o token foi copiado corretamente (sem espaços extras)
    2. Confirme que o token tem as permissões necessárias (repo, user, workflow)
    3. Verifique se o token não expirou

⏱️ Erro: "API rate limit exceeded"

O GitHub limita requisições não autenticadas a 60 por hora.

  • Solução: Configure o PAT_1 no arquivo .env para aumentar o limite para 5.000 requisições/hora

🚫 Erro: "User not found"

O usuário especificado não existe no GitHub.

  • Solução: Verifique se o parâmetro username está correto na URL

🎨 Como personalizar os cards?

Use parâmetros de query na URL:

/api?username=seu_usuario&theme=dark&show_icons=true&count_private=true

Parâmetros disponíveis:

  • theme: Tema do card (dark, radical, merko, gruvbox, tokyonight, etc.)
  • show_icons: Exibir ícones (true/false)
  • count_private: Contar repositórios privados (true/false)
  • hide: Ocultar estatísticas específicas (stars, commits, prs, issues)
  • hide_border: Remover borda do card (true/false)
  • locale: Idioma (pt-br, en, es, fr, etc.)

🐳 O container não inicia

Execute docker logs github-stats-web para ver os erros. Os mais comuns são:

  • Falta da variável PAT_1
  • Token do GitHub inválido
  • Porta 8080 já em uso (altere com -p 3000:8080)

🔒 Devo usar WHITELIST?

  • Desenvolvimento local: Não é necessário
  • Produção pública: Altamente recomendado para evitar abuso
  • O WHITELIST restringe quais usuários podem ser consultados

🐛 Como Reportar um Bug

  1. Verifique se já não foi reportado nas Issues
  2. Abra uma nova Issue com:
    • Descrição detalhada do problema
    • URL da requisição que está falhando
    • Logs do container (se aplicável)
    • Versão do Docker e sistema operacional

📂 Estrutura do Projeto

github-stats-of-readme/
├── Dockerfile           # Configuração da imagem Docker
├── .env.example         # Exemplo de variáveis de ambiente
├── .gitignore           # Arquivos ignorados pelo Git
└── discloud.config      # Configuração para deploy na Discloud

📄 Sobre os Arquivos Principais

  • Dockerfile: Define a imagem Docker baseada em Node.js 20 Alpine. Clona o repositório oficial do github-readme-stats, copia as variáveis de ambiente e instala as dependências necessárias para rodar o servidor Express.

  • .env.example: Template de exemplo mostrando quais variáveis de ambiente devem ser configuradas. Renomeie para .env e preencha com seus dados reais antes de executar o projeto.

  • .gitignore: Lista de arquivos e diretórios que o Git deve ignorar, incluindo o .env para proteção de credenciais.

  • discloud.config: Arquivo de configuração específico para deploy na Discloud, contendo parâmetros como tipo de aplicação, quantidade de RAM, e restart automático.


🤝 Como Contribuir

Contribuições são sempre bem-vindas! Se você tem uma ideia de melhoria:

  1. Faça um Fork do projeto
  2. Crie uma Branch para sua feature (git checkout -b feature/NovaFeature)
  3. Faça o Commit das suas mudanças (git commit -m 'Adiciona NovaFeature')
  4. Faça o Push para a branch (git push origin feature/NovaFeature)
  5. Abra um Pull Request no repositório original

⚖️ Licença

Este projeto está licenciado sob a Apache License 2.0.

Resumo:

  • Você pode: Usar comercialmente, modificar, distribuir e sublicenciar.
  • Você NÃO pode: Usar o nome do autor ou marcas registradas para endossar produtos derivados sem permissão explícita.
  • 🏷️ Obrigatório: Incluir uma cópia da licença e os avisos de copyright originais em qualquer redistribuição.
  • 🛡️ Garantia: O software é fornecido "como está", sem garantias, e inclui uma cláusula de proteção de patentes para os usuários.

Note

O github-readme-stats original possui sua própria licença MIT, que deve ser respeitada ao usar a ferramenta base. Esta licença Apache 2.0 aplica-se especificamente ao Dockerfile e às configurações de deploy desenvolvidas para containerização.

Para ler a licença completa, consulte o arquivo LICENSE neste repositório.


🤙 Créditos

Este projeto é uma implementação containerizada baseada no excelente trabalho de:

O Dockerfile e configurações de deploy foram desenvolvidos para facilitar a hospedagem própria em ambientes de produção com suporte a containerização robusta.


Feito com 🧡 por Kallum

⭐ Se este projeto te ajudou, considere dar uma estrela!

About

O GitHub Stats of Readme é uma implementação containerizada do GitHub Readme Stats para hospedagem própria.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages