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.
- 📸 Sobre o Projeto
- 🛠️ Tecnologias Utilizadas
- 💻 Pré-requisitos
- 🚀 Como Rodar o Projeto Localmente
- 🐳 Rodando com Docker (Método Recomendado)
- 🚀 Deploy em Produção
- ❓ FAQ & Solução de Problemas
- 📂 Estrutura do Projeto
- 🤝 Como Contribuir
- ⚖️ Licença
- 🤙 Créditos
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.
- 📊 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
/apie/api/top-langspara integração. - 🐳 Containerizado: Deploy simplificado com Docker.
- ⚡ Alta Performance: Otimizado para responder rapidamente a requisições.
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
Antes de começar, certifique-se de ter instalado em sua máquina:
git clone https://github.com/anuraghazra/github-readme-stats.git
cd github-readme-statsCrie 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_usuarioCaution
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.
docker build -t github-stats-of-readme .docker run -d -p 8080:8080 --env-file .env --name github-stats-of-readme github-stats-of-readmeAbra 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
O GitHub Stats Web está pré-configurado para ser implantado na Discloud.
Para hospedar na Discloud, você precisa criar um arquivo discloud.config na raiz do projeto:
- Acesse o Gerador de discloud.config da Discloud.
- 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
- 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=trueNo 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):
- Acesse: https://github.com/settings/tokens
- Clique em "Generate new token" → "Generate new token (classic)"
- Selecione as permissões:
repo,user,workflow - Clique em "Generate token"
- Copie o token gerado (você não poderá vê-lo novamente!)
Com o discloud.config criado e as variáveis configuradas:
- Acesse o painel da Discloud
- Faça upload do projeto compactado (ZIP)
- Aguarde o build e deploy automático
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
Este erro indica que o token do GitHub está inválido ou ausente.
- Causa: O token
PAT_1não foi configurado ou está incorreto. - Solução:
- Verifique se o token foi copiado corretamente (sem espaços extras)
- Confirme que o token tem as permissões necessárias (
repo,user,workflow) - Verifique se o token não expirou
O GitHub limita requisições não autenticadas a 60 por hora.
- Solução: Configure o
PAT_1no arquivo.envpara aumentar o limite para 5.000 requisições/hora
O usuário especificado não existe no GitHub.
- Solução: Verifique se o parâmetro
usernameestá correto na URL
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.)
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)
- Desenvolvimento local: Não é necessário
- Produção pública: Altamente recomendado para evitar abuso
- O
WHITELISTrestringe quais usuários podem ser consultados
- Verifique se já não foi reportado nas Issues
- 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
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
-
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.enve preencha com seus dados reais antes de executar o projeto. -
.gitignore: Lista de arquivos e diretórios que o Git deve ignorar, incluindo o.envpara 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.
Contribuições são sempre bem-vindas! Se você tem uma ideia de melhoria:
- Faça um Fork do projeto
- Crie uma Branch para sua feature (
git checkout -b feature/NovaFeature) - Faça o Commit das suas mudanças (
git commit -m 'Adiciona NovaFeature') - Faça o Push para a branch (
git push origin feature/NovaFeature) - Abra um Pull Request no repositório original
Este projeto está licenciado sob a Apache License 2.0.
- ✅ 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.
Este projeto é uma implementação containerizada baseada no excelente trabalho de:
- anuraghazra/github-readme-stats - Projeto original do GitHub Readme Stats
- GitHub Inc. - Provedores da API do GitHub
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!