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.
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.
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.
| 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) |
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
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).
cd engine && docker build -t clickgenerator .
docker run -p 8000:8000 clickgenerator # -> http://localhost:8000cd engine && pip install -r requirements-dev.txt
pytest # tout (avec navigateur)
pytest -m "not integration" # rapide, sans navigateurTout 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).
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é.
Les contributions sont les bienvenues ! 🎉
- 👋 Débuter : cherchez les issues
good first issueethelp wanted. - 💬 Échanger : Discussions pour les questions et idées.
- 🛠️ Process : CONTRIBUTING.md · CODE_OF_CONDUCT.md · CHANGELOG.md.
- 🔐 Sécurité : signalement privé via SECURITY.md.
- ⭐ Un coup de pouce ? Mettez une étoile au repo, ça aide vraiment à le faire connaître.
Playwright, FastAPI, SQLAlchemy, web-vitals (Apache-2.0), axe-core (MPL-2.0), extruct, protego, trafilatura, httpx, typer, loguru. Voir NOTICE.
MIT © SoClose Society.
