docs: 🎨 docs: update README with systemd and CI/CD
Build & Deploy / build-deploy (push) Has been cancelled
Build & Deploy / build-deploy (push) Has been cancelled
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Application de quiz pédagogique **souveraine et auto-hébergée**, construite en Rust full-stack.
|
Application de quiz pédagogique **souveraine et auto-hébergée**, construite en Rust full-stack.
|
||||||
|
|
||||||
Conçue pour un usage en présentiel (cours, examens): les étudiants passent le quiz depuis leur navigateur, le professeur consulte les résultats et les statistiques depuis une interface d'administration protégée.
|
Conçue pour un usage en présentiel (cours, examens) — les étudiants passent le quiz depuis leur navigateur, le professeur consulte les résultats et les statistiques depuis une interface d'administration protégée.
|
||||||
|
|
||||||
## Stack technique
|
## Stack technique
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ Conçue pour un usage en présentiel (cours, examens): les étudiants passent le
|
|||||||
- Cookies de session httponly
|
- Cookies de session httponly
|
||||||
- Normalisation des noms (lowercase + trim) pour l'anti-doublon
|
- Normalisation des noms (lowercase + trim) pour l'anti-doublon
|
||||||
|
|
||||||
## Architecture de déploiement optimale
|
## Architecture de déploiement
|
||||||
|
|
||||||
```
|
```
|
||||||
Internet
|
Internet
|
||||||
@@ -50,7 +50,7 @@ Traefik Gateway (VM OVH)
|
|||||||
│
|
│
|
||||||
▼
|
▼
|
||||||
Raspberry Pi 5
|
Raspberry Pi 5
|
||||||
└── enuxia-quiz (binaire Rust)
|
└── enuxia-quiz (binaire Rust, systemd)
|
||||||
└── quiz.db (SQLite local)
|
└── quiz.db (SQLite local)
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -61,6 +61,7 @@ Traefik Gateway (VM OVH)
|
|||||||
```bash
|
```bash
|
||||||
rustup target add wasm32-unknown-unknown
|
rustup target add wasm32-unknown-unknown
|
||||||
cargo install cargo-leptos
|
cargo install cargo-leptos
|
||||||
|
# node et npm installés
|
||||||
```
|
```
|
||||||
|
|
||||||
### Développement
|
### Développement
|
||||||
@@ -84,21 +85,58 @@ cargo leptos build --release
|
|||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
Créez un fichier `.env` à la racine :
|
Créez un fichier `.env` :
|
||||||
|
|
||||||
```env
|
```env
|
||||||
DATABASE_URL=sqlite:///chemin/absolu/vers/quiz.db
|
DATABASE_URL=sqlite:///chemin/absolu/vers/quiz.db
|
||||||
SESSION_PASSWORD=code_distribué_aux_étudiants
|
SESSION_PASSWORD=code_distribué_aux_étudiants
|
||||||
ADMIN_PASSWORD=mot_de_passe_admin
|
ADMIN_PASSWORD=mot_de_passe_admin
|
||||||
|
LEPTOS_SITE_ROOT=/opt/enuxia-quiz/site
|
||||||
|
LEPTOS_SITE_ADDR=0.0.0.0:3010
|
||||||
LEPTOS_TAILWIND_VERSION=v4.1.13
|
LEPTOS_TAILWIND_VERSION=v4.1.13
|
||||||
```
|
```
|
||||||
|
|
||||||
Les mots de passe sont également modifiables en live depuis `/admin/config` sans redémarrer l'application.
|
Les mots de passe sont également modifiables en live depuis `/admin/config` sans redémarrer l'application.
|
||||||
|
|
||||||
|
## Gestion du service (systemd)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Démarrer
|
||||||
|
systemctl start enuxia-quiz
|
||||||
|
|
||||||
|
# Arrêter
|
||||||
|
systemctl stop enuxia-quiz
|
||||||
|
|
||||||
|
# Redémarrer
|
||||||
|
systemctl restart enuxia-quiz
|
||||||
|
|
||||||
|
# Voir l'état
|
||||||
|
systemctl status enuxia-quiz
|
||||||
|
|
||||||
|
# Logs en temps réel
|
||||||
|
journalctl -u enuxia-quiz -f
|
||||||
|
|
||||||
|
# Activer/désactiver le démarrage automatique
|
||||||
|
systemctl enable enuxia-quiz
|
||||||
|
systemctl disable enuxia-quiz
|
||||||
|
```
|
||||||
|
|
||||||
|
## CI/CD
|
||||||
|
|
||||||
|
Pipeline Gitea Actions (`.gitea/workflows/build-deploy.yml`) :
|
||||||
|
|
||||||
|
- **Runner ARM64 natif sur le Pi** — build natif, tous les cores utilisés
|
||||||
|
- **Cache Cargo** — premier build ~15min, suivants ~3min
|
||||||
|
- **Deploy automatique** — `cargo leptos build --release` + `systemctl restart`
|
||||||
|
|
||||||
|
```
|
||||||
|
push main → runner Pi → cargo leptos build → cp binaire → systemctl restart
|
||||||
|
```
|
||||||
|
|
||||||
## Licence
|
## Licence
|
||||||
|
|
||||||
MIT — libre d'utilisation, de modification et de déploiement.
|
MIT — libre d'utilisation, de modification et de déploiement.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Construit par [Enuxia](https://enuxia.fr) — systèmes intelligents souverains sur mesure.
|
Construit par [Enuxia](https://enuxia.com) — systèmes intelligents souverains sur mesure.
|
||||||
Reference in New Issue
Block a user