Aller au contenu

Aide-mémoire — Alert-Parent

Référence rapide pour le projet Alert-Parent (Backend + Frontend).

Accès rapides

Élément Lien
Frontend prod alert.epitools.bj
API prod api.epitools.bj
Repo Backend GitHub
Repo Frontend GitHub

Ports et conteneurs

Service Port hôte Port conteneur Image
Backend (Express) 127.0.0.1:5011 5010 ghcr.io/epitechafrik/alert-parent-backend
Frontend (Vite/Nginx) 127.0.0.1:3004 3000 ghcr.io/epitechafrik/alert-parent-frontend

Chemins VPS

/root/projects/alert-parent/alert-parent-backend/
/root/projects/alert-parent/alert-parent-frontend/

Commandes essentielles

Vérification santé

# Backend
curl -s http://127.0.0.1:5011/health | python3 -m json.tool

# Frontend
curl -sf http://127.0.0.1:3004 && echo "OK" || echo "FAIL"

Logs

# Backend
cd /root/projects/alert-parent/alert-parent-backend
docker compose logs backend -f --tail 50
docker compose logs backend 2>&1 | grep -i error | tail -20

# Frontend
cd /root/projects/alert-parent/alert-parent-frontend
docker compose logs frontend -f --tail 50

Rollback

# Backend
cd /root/projects/alert-parent/alert-parent-backend
./scripts/rollback.sh sha-XXXXXXX

# Frontend
cd /root/projects/alert-parent/alert-parent-frontend
export IMAGE_TAG=sha-XXXXXXX
docker compose pull frontend
docker compose up -d --no-deps frontend

MongoDB

# Backup
mongodump --uri="mongodb+srv://USER:PASS@cluster.mongodb.net/al3rtParent" \
  --out=./dump-$(date +%Y%m%d)

# Mails en attente
mongosh "mongodb+srv://..." --eval 'db.mailsendeds.countDocuments({isSent: "no"})'

Pipelines CI/CD

gh run list --repo EpitechAfrik/alert-parent-backend
gh run list --repo EpitechAfrik/alert-parent-frontend
gh run view RUN_ID --repo EpitechAfrik/alert-parent-backend --log-failed

Stack résumée

Composant Backend Frontend
Framework Express.js (Node 20) React 18 (Vite 5)
UI TailwindCSS 3 + shadcn/ui
BDD MongoDB Atlas
Auth JWT + Azure AD SSO Azure AD SSO
Email Resend API + SMTP o2switch
Package manager pnpm pnpm

Variables d'environnement clés

Ne jamais commiter les secrets

Les .env sont sur le VPS uniquement. Utiliser gh secret set pour le CI/CD.

Backend

Variable Description
MONGO_URI Connexion MongoDB Atlas
JWT_SECRET Secret JWT (64 chars min)
RESEND_TOKEN Token API Resend
CORS_ORIGIN https://alert.epitools.bj
MICROSOFT_CLIENT_ID Azure AD — App ID
MICROSOFT_TENANT_ID Azure AD — Tenant

Frontend (build-time VITE_*)

Variable Description
VITE_REACT_APP_API_URL URL de l'API backend
VITE_MICROSOFT_CLIENT_ID Azure AD — App ID
VITE_MICROSOFT_TENANT_ID Azure AD — Tenant