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.