47 lines
1.2 KiB
Markdown
47 lines
1.2 KiB
Markdown
# Portugais - Application d'Apprentissage
|
|
|
|
Application gamifiée d'apprentissage du portugais : utilisateurs, points, activités, administration, avatars emoji. SQLite en mode WAL.
|
|
|
|
## Stack technique
|
|
|
|
| Composant | Technologie |
|
|
|-----------|------------|
|
|
| Runtime | Node.js 20 |
|
|
| Framework | Express |
|
|
| Base de données | SQLite (better-sqlite3, WAL mode) |
|
|
| Authentification | JWT (jsonwebtoken) + bcryptjs |
|
|
| Frontend | HTML/CSS/JS statique (public/) |
|
|
|
|
## Déploiement
|
|
|
|
```bash
|
|
# Container Docker
|
|
docker compose up -d portugais
|
|
```
|
|
|
|
Accessible sur le port **3007**.
|
|
|
|
## Structure
|
|
|
|
```
|
|
/opt/web/portugais-app/
|
|
├── server.js # Point d'entrée Express
|
|
├── public/ # Frontend statique
|
|
└── data/
|
|
└── portugais.db # Base SQLite (volume Docker)
|
|
```
|
|
|
|
## Variables d'environnement
|
|
|
|
| Variable | Description | Valeur |
|
|
|----------|-------------|--------|
|
|
| `PORT` | Port du serveur | `3007` |
|
|
| `JWT_SECRET` | Secret JWT | `portugais-super-secret-2026` |
|
|
| `ADMIN_PASSWORD` | Mot de passe admin | `Pierre2026!` |
|
|
|
|
## Domaine de production
|
|
|
|
- **URL** : https://portugal.secourit.fr
|
|
- **LXC** : 107 (IP 10.10.10.24)
|
|
- **SSL** : Let's Encrypt via Nginx Proxy Manager
|