Démarrage rapide¶
Prérequis¶
- Docker Desktop installé (Windows, Mac ou Linux)
- Git
- Navigateur Chrome (recommandé pour les métriques navigateur)
Lancement local¶
Docker Desktop — Windows / macOS¶
git clone https://perfshop-gitlab.perfshop.io/perf/perfshop.git
cd perfshop
cp .env.example .env
docker compose -f docker-compose.desktop.yml up -d --build
Ne pas utiliser docker-compose.build.yml sous Docker Desktop
docker-compose.build.yml utilise le mode Pyroscope cpu (perf_event), qui nécessite
l'accès à perf_event_open — bloqué sous la VM Linux embarquée dans Docker Desktop.
docker-compose.desktop.yml utilise le mode itimer (SIGPROF, 100% JVM) — aucun
privilège kernel requis.
VPS Linux / CI (build local)¶
Services disponibles en local¶
Stack principale¶
| Service | URL | Login |
|---|---|---|
| 🛒 Application | http://localhost:9091 | — |
| 🔌 API Backend | http://localhost:9080 | — |
| 📊 Monitoring | http://localhost:3001 | — |
| 💥 Chaos Admin | http://localhost:3003 | admin@perfshop.fr / perfshop |
| 🔧 Admin | http://localhost:3004 | admin@perfshop.fr / perfshop |
| 📈 Grafana | http://localhost:3002 | admin / perfshop |
| 📚 Documentation | http://localhost:9087 | — |
Stack JMeter¶
| Service | URL | Login |
|---|---|---|
| ⚡ JMeter UI | http://localhost:3005 | admin@perfshop.fr / perfshop |
Stack QA pédagogique (Phase 9 & 10)¶
| Service | URL | Login |
|---|---|---|
| 🧪 Squash TM | http://localhost:9086/squash | admin / perfshop |
| 🔬 Selenium VNC | http://localhost:7900 | — (no password) |
| 🗂️ Filebrowser scripts | http://localhost:3007 | — (no auth) |
| 🦊 Forgejo Git local | http://localhost:3009 | forgejo-admin / PerfShop2026! |
| 📝 Scripts UI | http://localhost:3008 | admin@perfshop.fr / perfshop |
Comptes de test¶
Comptes manuels (exploration et démo)¶
| Mot de passe | Prénom | Nom | |
|---|---|---|---|
| user1@perfshop.com | password1 | Alice | Johnson |
| user2@perfshop.com | password2 | Bob | Smith |
| ... | ... | ... | ... |
| user10@perfshop.com | password10 | Julia | Moore |
| user11@perfshop.com | password11 | Kevin | Brown |
| ... | ... | ... | ... |
| user20@perfshop.com | password20 | Tania | Roux |
| perf.test1@perfshop.com | TestPerf123! | Performance | Test1 |
| perf.test2@perfshop.com | TestPerf456! | Performance | Test2 |
Comptes de charge JMeter (tirs de performance)¶
500 comptes dédiés aux tirs JMeter, injectés par la migration Flyway V2__data_users.sql.
Référencés dans jmeter/scripts/users.csv (501 lignes : 1 header + 500 données).
| Plage | Mot de passe | |
|---|---|---|
| 1 à 500 | loadN@perfshop.com | LoadTestN! |
Exemples : load1@perfshop.com / LoadTest1!, load250@perfshop.com / LoadTest250!.
Migration Flyway
Tous les comptes (manuels + charge) sont insérés par la migration V2__data_users.sql
présente dans migration-fr/ et migration-en/. Les hash BCrypt (strength 10) utilisent
les préfixes $2a$10$ (Spring) et $2b$10$ (bcrypt Python) — les deux sont acceptés
par Spring Security BCryptPasswordEncoder.
Compte perf.test2 : mot de passe
Le mot de passe de perf.test2@perfshop.com est TestPerf456! (et non TestPerf123!).
Accès production (NAS)¶
Stack principale¶
| Service | URL |
|---|---|
| 🛒 Application | https://perfshop.perfshop.io |
| 🔌 API | https://perfshop-api.perfshop.io |
| 📊 Monitoring | https://perfshop-monitoring.perfshop.io |
| 💥 Chaos Admin | https://perfshop-chaos.perfshop.io |
| 🔧 Admin | https://perfshop-admin.perfshop.io |
| 📈 Grafana | https://perfshop-grafana.perfshop.io |
| 📚 Documentation | https://perfshop-doc.perfshop.io |
Stack JMeter¶
| Service | URL |
|---|---|
| ⚡ JMeter UI | https://perfshop-jmeter.perfshop.io |
Stack QA pédagogique (Phase 9 & 10)¶
| Service | URL | Login |
|---|---|---|
| 🧪 Squash TM | https://perfshop-squash.perfshop.io/squash | admin / perfshop |
| 🔬 Selenium VNC | https://perfshop-selenium.perfshop.io | — (no password) |
| 🦊 Forgejo Git local | https://perfshop-git.perfshop.io | forgejo-admin / PerfShop2026! |
| 📝 Scripts UI | https://perfshop-scripts.perfshop.io | admin@perfshop.fr / perfshop |
Activer une anomalie¶
- Ouvrir l'application frontend
- Cliquer sur le bouton Chaos en haut à droite (ou aller sur Chaos Admin)
- Déplacer le slider CPU Burn à 50%
- Observer dans le monitoring :
docker_container_cpu_percentmonte
Observer dans Grafana¶
- Ouvrir Grafana
- Ouvrir le dashboard Backend Spring Boot (Complet)
- Corréler le pic CPU avec la latence HTTP