5687b0b80c5ab0066c66323cda03a884a909dcde
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%