script de lancement du kiosque intégré au dépot

This commit is contained in:
2026-02-03 13:14:21 +01:00
parent 013d629625
commit 36d07f313b
2 changed files with 40 additions and 32 deletions

View File

@@ -0,0 +1,56 @@
# Documentation Déploiement Kiosque - Tableau de Score
Ce document décrit la configuration du serveur Fedora pour lancer automatiquement Google Chrome en mode plein écran au démarrage via un compositeur Wayland minimaliste (Cage).
## 1. Installation des dépendances
```bash
sudo dnf install -y https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
sudo dnf install -y cage
```
## 2. Configuration de l'Autologin (Systemd)
Créer le fichier d'override pour que le serveur se connecte seul sur le TTY1 :
`sudo systemctl edit getty@tty1.service`
Coller le contenu suivant :
```ini
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin vulture --noclear %I $TERM
```
## 3. Configuration Zsh (`~/.zlogin`)
Ajouter ces lignes à la fin de votre fichier `~/.zlogin` pour déclencher l'affichage uniquement sur le port HDMI physique (TTY1) :
```zsh
# Empêcher la mise en veille de l'écran
setterm --blank 0 --powersave off --powerdown 0
if [[ -z "$DISPLAY" && "$XDG_VTNR" -eq 1 ]]; then
export MOZ_ENABLE_WAYLAND=1
export XDG_SESSION_TYPE=wayland
# Lancement du script de monitoring
exec ~/Vulture/VHard/vulturesrv/kiosk-waiter.sh
fi
```
## 4. Debug et Commandes utiles
* **Relancer le navigateur à distance (SSH) :**
`pkill -u $USER cage` (Le script de boucle le relancera instantanément).
* **Vérifier les logs :**
`journalctl -u getty@tty1.service`
* **Forcer l'arrêt :**
Supprimer temporairement l'appel dans `~/.zlogin` ou tuer le script `kiosk-waiter.sh`.
---
*Note : Si vous utilisez Podman pour le reste du projet (Vulture), ce setup "Bare Metal" pour l'affichage garantit une latence minimale pour les animations du tableau de score.*

View File

@@ -0,0 +1,36 @@
#!/bin/bash
# kiosk-waiter.sh
URL="http://localhost:5173/" # URL locale de vapp
SERVICE_NAME="vulture-stack.service"
echo "Attente du démarrage de la stack Vulture..."
# 1. Attente que le service Systemd soit considéré comme actif
while [[ $(systemctl --user is-active $SERVICE_NAME) != "active" ]]; do
sleep 1
done
# 2. Attente que le serveur HTTP réponde (Healthy)
# On boucle tant que le code de retour HTTP n'est pas 200
until $(curl --output /dev/null --silent --head --fail $URL); do
echo "Le quizz n'est pas encore prêt... attente (2s)"
sleep 2
done
echo "Stack Vulture détectée et saine. Lancement du kiosque."
# 3. Boucle de lancement de Chrome
while true; do
cage -- google-chrome-stable \
--kiosk \
--no-first-run \
--password-store=basic \
--ozone-platform=wayland \
--autoplay-policy=no-user-gesture-required \
--disable-component-update \
"$URL"
echo "Chrome s'est arrêté. Relancement dans 2 secondes..."
sleep 2
done