fe915766bd612cccdd1b1a4d24b18667e6c9c1e3
Club DynaSQY - Application de Gestion
Application web de gestion du club Dyna Biz Coignières : membres, invités, événements, honneurs/recommandations, absences, galerie photos, invitations, notifications push, éditeur de présentations/slideshow, exports et logs d'activité.
Stack technique
| Composant | Technologie |
|---|---|
| Backend | Node.js 20 + Express |
| Frontend | React 18 + Vite 5 + Tailwind 4 |
| Base de données | MariaDB 10.11 (Docker) |
| Authentification | JWT (jsonwebtoken) |
| Notifications push | web-push (VAPID) |
| Emails | Nodemailer (SMTP Infomaniak) |
| PWA | vite-plugin-pwa (service worker injectManifest) |
Déploiement
cd /opt/dyna
docker compose up -d
# Initialiser les mots de passe des utilisateurs
docker compose exec backend node seed.js
L'application est accessible sur le port 3001 (frontend nginx) qui proxy vers le backend sur le port 3000.
Structure
/opt/dyna/
├── backend/
│ ├── server.js # Point d'entrée Express
│ ├── config/db.js # Connexion MariaDB
│ ├── middleware/auth.js # JWT middleware
│ ├── controllers/ # Logique métier
│ ├── routes/ # Routes API
│ └── seed.js # Initialisation des comptes
├── frontend/
│ └── src/ # Composants React + PWA
├── database/ # Scripts SQL
├── uploads/ # Fichiers uploadés (bind mount)
├── gallery/ # Photos galerie (bind mount)
├── docker-compose.yml # Stack complète
└── nginx.conf # Config reverse proxy
Variables d'environnement (backend)
| Variable | Description | Valeur par défaut |
|---|---|---|
DB_HOST |
Host MariaDB | db (service Docker) |
DB_PORT |
Port MariaDB | 3306 |
DB_USER |
Utilisateur BDD | dynausr |
DB_PASSWORD |
Mot de passe BDD | L0relei69 |
DB_NAME |
Nom de la BDD | dynasqy |
JWT_SECRET |
Secret JWT | L0relei69SuperSecret2026 |
PORT |
Port backend | 3000 |
SMTP_HOST |
Serveur SMTP | mail.infomaniak.com |
SMTP_PORT |
Port SMTP | 465 |
SMTP_USER |
Email SMTP | dyna@secourit.fr |
SMTP_PASS |
Mot de passe SMTP | cAq0cF9t41BE458sdAuzea45215 |
EMAIL_FROM |
Email expéditeur | dyna@secourit.fr |
PUBLIC_URL |
URL publique | https://dyna.secourit.fr |
VAPID_PUBLIC_KEY |
Clé publique VAPID | configuré dans docker-compose |
VAPID_PRIVATE_KEY |
Clé privée VAPID | configuré dans docker-compose |
Développement
# Backend
cd backend
npm install
node seed.js # Générer les mots de passe
node server.js # Démarre sur :3000
# Frontend
cd frontend
npm install
npm run dev # Vite sur :5173 avec proxy /api -> :3000
Domaine de production
- URL : https://dyna.secourit.fr
- LXC : 103 (IP 10.10.10.20)
- SSL : Let's Encrypt via Nginx Proxy Manager
- Preprod : https://dyna-preprod.secourit.fr (LXC 110, port 3101)
Comptes de test
| Rôle | Mot de passe | |
|---|---|---|
| Admin | admin@dynasqy.fr | admin123 |
| Membre | jean.dupont@email.fr | member123 |
| Membre | marie.durand@email.fr | member123 |
Languages
JavaScript
99.5%
PowerShell
0.2%
Dockerfile
0.1%
HTML
0.1%