Files
2026-08-23 09:04:47 +00:00

98 lines
3.3 KiB
Markdown

# 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
```bash
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
```bash
# 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 | Email | Mot de passe |
|------|-------|--------------|
| Admin | admin@dynasqy.fr | admin123 |
| Membre | jean.dupont@email.fr | member123 |
| Membre | marie.durand@email.fr | member123 |