GitHub-Traffic-Dashboard

A self-hosted Grafana dashboard for GitHub repository Insights — traffic (views, unique visitors, clones, unique cloners), referring sites, and popular content — built as a lead-generation / audience-insight tool: summarize all repos, drill into a selected repo, rank traffic sources, and slice by interesting filters.

See CLAUDE.md for the full design/instruction set.

Quickstart

cp .env.example .env
# token + full repo list (owned first, then forks, newest push first):
{
  echo "GH_TOKEN=$(gh auth token)"
  echo "COLLECT_DAYS=14"
  echo "REPOS=$(gh repo list <owner> -L 2000 --json nameWithOwner,isFork,pushedAt --jq '
    (map(select(.isFork|not))|sort_by(.pushedAt)|reverse)
    + (map(select(.isFork))|sort_by(.pushedAt)|reverse) | map(.nameWithOwner)|join(","))"
} >> .env
docker compose up -d --build

Rootless Docker note: if docker can’t find the daemon, point it at the rootless socket: export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock.

Dashboard

Stack

gh CLI (auth today, PAT/App provisioned for later) → Python OOP collector → SQLite (single file, idempotent daily upserts) → Grafana (frser-sqlite-datasource, provisioned dashboards + alerts). Two containers only, via docker compose. Client retries on rate-limit (403/429) and transient DNS/network errors.

Snap

Want to take a quick peek without installing or running, please check: GitHub-Traffic-Dashboard snap maifeeulasad

Roadmap / Task tracking

Foundations

Data model (SQLite)

Collector (Python, OOP)

Infra

Features

Backlog / ideas