Skip to content

SoCloseSociety/ClickGenerator

⚡ ClickGenerator

Plateforme open-source de load testing, synthetic monitoring, audit SEO, accessibilité et sécurité — pilotée par un navigateur réel (Playwright), avec dashboard web, opérations en masse, multi-région et planification.

CI Python FastAPI Playwright Tests License PRs welcome GitHub stars

ClickGenerator mesure les performances réelles d'un site (Core Web Vitals via la lib officielle Google web-vitals), audite son SEO et son accessibilité, teste sa résilience sous charge, scanne sa posture serveur/sécurité, et produit des rapports — le tout en self-host, sans dépendance cloud.

Dashboard ClickGenerator


⚖️ Usage responsable — à lire avant tout

ClickGenerator inclut du load testing et du scan de sécurité défensif. Ces capacités ne doivent être utilisées que sur des systèmes que vous possédez ou que vous êtes explicitement autorisé à tester (mandat écrit pour des sites clients). Un garde-fou AUTH_ALLOWLIST permet de restreindre les opérations intrusives aux domaines autorisés. Voir SECURITY.md.

Le projet ne fournit volontairement pas : DoS/flood sans limite, payloads d'exploitation, brute-force, ni évasion de détection. Voir docs/SECURITY-TOOLS.md.


✨ Fonctionnalités

Domaine Détail
Performance Core Web Vitals précis (LCP/INP/CLS/FCP/TTFB via web-vitals), TTFB, temps de chargement, poids, requêtes, multi-passes médiane, notation CWV /100, screenshot
SEO meta/title/description, canonical, hreflang, structured data (extruct : JSON-LD/OG/microdata), robots.txt (protego), sitemaps, liens cassés, score on-page
Accessibilité axe-core (WCAG 2.x A/AA) injecté dans la page
Audit site multi-pages (découverte + audit + agrégat) + rapport HTML & PDF
Load testing async (httpx) : throughput, p50/p95/p99, taux d'erreur, garde-fous
Charge progressive paliers de concurrence → asymétrie charge↔latence + détection du genou + détection de défense (429/WAF)
Scan serveur TLS/cert, en-têtes sécurité, compression, HTTP/2, redirections, score
Sécurité (défensif) grade A→F : TLS faible, en-têtes, cookies, fichiers exposés, divulgation version, security.txt
Multi-région mesure via proxies par région + comparaison (IP/LCP/score)
Bulk audit/scan/perf en masse sur une liste d'URLs ou toutes les cibles d'un client/projet
Multi-clients CRUD Clients → Projets → Cibles, historique d'audits persisté
Planification audits récurrents (scheduler in-process) + alerting sur seuils
Dashboard UI web 10 onglets servie par le moteur (zéro build)

🏗️ Architecture

ClickGenerator/
├── engine/            # moteur Python : FastAPI + Playwright + SQLAlchemy async
│   ├── app/
│   │   ├── runner/        # mesure navigateur (web-vitals, métriques)
│   │   ├── seo/           # SEO + accessibilité (axe-core, extruct, protego)
│   │   ├── security_scan.py · server_scan.py · loadtest.py · ramp.py
│   │   ├── bulk.py · scheduler.py · alerting.py · authz.py
│   │   ├── routes/        # API REST
│   │   ├── static/        # dashboard web (index.html)
│   │   └── main.py · cli.py
│   ├── tests/             # 78 tests (pytest)
│   └── Dockerfile
├── web/               # scaffold Next.js (dashboard multi-tenant — amorce)
├── autoclicker/       # module annexe : autoclicker local (jeux idle)
└── docs/              # AUDIT, TOOLS, SECURITY-TOOLS, PHASES

🚀 Démarrage rapide

git clone https://github.com/SoCloseSociety/ClickGenerator.git
cd ClickGenerator/engine

python3.13 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
playwright install chromium
cp .env.example .env          # SQLite par défaut, zéro config

# Dashboard web (choisit un port libre automatiquement)
./run-dashboard.sh            # -> http://localhost:8200

# Ou en CLI
python -m app.cli audit https://example.com           # perf + SEO + a11y
python -m app.cli security-scan https://example.com   # grade sécurité A-F
python -m app.cli ramp https://example.com            # charge progressive
python -m app.cli site-audit https://example.com --pdf rapport.pdf

⚠️ Python 3.13 recommandé (3.14 n'a pas encore tous les wheels).

Docker

cd engine && docker build -t clickgenerator .
docker run -p 8000:8000 clickgenerator   # -> http://localhost:8000

Tests

cd engine && pip install -r requirements-dev.txt
pytest                       # tout (avec navigateur)
pytest -m "not integration"  # rapide, sans navigateur

🔧 Configuration

Tout via engine/.env (voir .env.example) : base (SQLite → Postgres via DATABASE_URL), navigateur, timeouts/retries, concurrence, rétention des screenshots, seuils d'alerte, et AUTH_ALLOWLIST (garde-fou). GET /config expose les réglages effectifs (sans secret).

🗺️ Roadmap & état

Voir docs/PHASES.md. Phases 0–5 ✅, dashboard 10 onglets, scan serveur/sécurité, bulk, charge asymétrique, Docker + CI. Reste : Next.js multi-tenant complet, reporting avancé.

🤝 Contribuer & communauté

Les contributions sont les bienvenues ! 🎉

🙏 Crédits / dépendances notables

Playwright, FastAPI, SQLAlchemy, web-vitals (Apache-2.0), axe-core (MPL-2.0), extruct, protego, trafilatura, httpx, typer, loguru. Voir NOTICE.

📄 Licence

MIT © SoClose Society.

About

⚡ Open-source platform for load testing, synthetic monitoring, SEO/accessibility audits & defensive security scanning — Playwright-powered, self-hosted.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors