Skip to content

ptitmorceaux/github-readme-stats-docker

Repository files navigation

GitHub Readme Stats - Self-Hosted

🐳 Auto-hébergement Docker du projet
github-readme-stats
, de @anuraghazra

Original Project Author License


Description

Déployez votre propre instance de GitHub Readme Stats avec Docker. Cette version dockerisée vous permet de contourner les limitations de taux de l'API GitHub imposées sur l'instance publique Vercel.

Prérequis

  • Docker
  • Docker Compose
  • Un token d'accès personnel GitHub (PAT) de type Classic

Configuration du Token GitHub

Création du Token Classic

  1. Allez sur GitHub Settings → Developer Settings → Personal Access Tokens → Tokens (classic)
  2. Cliquez sur "Generate new token""Generate new token (classic)"
  3. Permissions requises (scopes à cocher) :
    • repo (cocher toutes les sous-options)
    • read:user
    • user:email
  4. Cliquez sur "Generate token" et copiez-le immédiatement

⚠️ Important : Le token ne sera affiché qu'une seule fois. Conservez-le en lieu sûr.

Configuration du fichier .env

Créez un fichier .env à la racine du projet avec le contenu suivant :

# Token GitHub (Classic PAT avec permissions : repo, read:user, user:email)
PAT_1=ghp_votre_token_github_ici

# Durée du cache en secondes (min: 21600 = 6h, max: 86400 = 24h)
CACHE_SECONDS=21600

Installation et Démarrage

Utilisation locale (par défaut)

Le script run.sh est configuré par défaut pour un déploiement local sur le port 9000.

  1. Rendez le script exécutable :
chmod +x run.sh
  1. Lancez le script :
./run.sh

Le service sera disponible sur http://localhost:9000

Utilisation avec Cloudflare Tunnel

Si vous utilisez Cloudflare Tunnel (comme cloudflared) pour exposer vos services en ligne, modifiez le fichier run.sh :

# Commentez cette ligne :
# DOCKER_COMPOSE_FILE="$ROOT_DIR/docker-compose.local.yml"

# Décommentez cette ligne :
DOCKER_COMPOSE_FILE="$ROOT_DIR/docker-compose.cloudflared.yml"

Le fichier docker-compose.cloudflared.yml utilise le réseau externe cloudflared_proxy au lieu d'exposer un port.

Utilisation

Une fois le service démarré, vous pouvez utiliser les mêmes URL que la version Vercel officielle :

Pour un déploiement local

![GitHub Stats](http://localhost:9000/api?username=votre_username)
![Top Langs](http://localhost:9000/api/top-langs/?username=votre_username)

Pour un déploiement avec domaine personnalisé

![GitHub Stats](https://votre-domaine.com/api?username=votre_username)
![Top Langs](https://votre-domaine.com/api/top-langs/?username=votre_username)

Gestion du service

Arrêter le service

docker compose -f docker-compose.local.yml down
# ou
docker compose -f docker-compose.cloudflared.yml down

Voir les logs

docker logs github-readme-stats

Mise à jour

Relancez simplement le script run.sh qui :

  1. Supprime l'ancienne version
  2. Clone la dernière version du dépôt
  3. Reconstruit le conteneur Docker
  4. Nettoie les images inutilisées

Fonctionnement du script run.sh

Le script automatise :

  • Le clonage du projet github-readme-stats
  • La construction de l'image Docker
  • Le démarrage du conteneur
  • Le nettoyage des anciennes images

Les logs sont sauvegardés dans update.log.

Ressources système

Les limites par défaut du conteneur sont :

  • RAM : 200 MB maximum
  • CPU : 50% d'un cœur maximum
  • Processus : 50 maximum

Ces valeurs peuvent être ajustées dans les fichiers docker-compose.*.yml.

Licence et Crédits

Ce projet de déploiement Docker est sous licence MIT. Voir LICENSE pour plus de détails.

Basé sur github-readme-stats par @anuraghazra, également sous licence MIT.

Documentation complète

Pour plus d'informations sur les options disponibles (thèmes, personnalisation, etc.), consultez la documentation officielle.