docs: 🎨 docs: update README with systemd and CI/CD
Build & Deploy / build-deploy (push) Has been cancelled

This commit is contained in:
Julien Denizot
2026-04-13 21:30:37 +02:00
parent dfe823f8f4
commit c0ae39075a
+43 -5
View File
@@ -2,7 +2,7 @@
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
@@ -38,7 +38,7 @@ Conçue pour un usage en présentiel (cours, examens): les étudiants passent le
- Cookies de session httponly
- Normalisation des noms (lowercase + trim) pour l'anti-doublon
## Architecture de déploiement optimale
## Architecture de déploiement
```
Internet
@@ -50,7 +50,7 @@ Traefik Gateway (VM OVH)
│
▼
Raspberry Pi 5
└── enuxia-quiz (binaire Rust)
└── enuxia-quiz (binaire Rust, systemd)
└── quiz.db (SQLite local)
```
@@ -61,6 +61,7 @@ Traefik Gateway (VM OVH)
```bash
rustup target add wasm32-unknown-unknown
cargo install cargo-leptos
# node et npm installés
```
### Développement
@@ -84,21 +85,58 @@ cargo leptos build --release
## Configuration
Créez un fichier `.env` à la racine :
Créez un fichier `.env` :
```env
DATABASE_URL=sqlite:///chemin/absolu/vers/quiz.db
SESSION_PASSWORD=code_distribué_aux_étudiants
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
```
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
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.