Aller au contenu

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)

cp .env.example .env
docker compose -f docker-compose.build.yml up -d --build

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)

Email 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 Email 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

  1. Ouvrir l'application frontend
  2. Cliquer sur le bouton Chaos en haut à droite (ou aller sur Chaos Admin)
  3. Déplacer le slider CPU Burn à 50%
  4. Observer dans le monitoring : docker_container_cpu_percent monte

Observer dans Grafana

  1. Ouvrir Grafana
  2. Ouvrir le dashboard Backend Spring Boot (Complet)
  3. Corréler le pic CPU avec la latence HTTP

Arrêter

docker compose down            # garde les données
docker compose down -v         # supprime tout (BDD, métriques, dashboards)