2.5 KiB
pySonnerie Frontend (Flask)
Frontend web responsive en Flask pour piloter le backend pySonnerie déjà en place.
Fonctions
- Page de connexion (URL backend + identifiants Basic Auth)
- Tableau de bord de gestion des triggers (creation/modification/suppression)
- Lancement manuel d'un trigger (
/api/play/{trigger_id}) - Arrêt audio (
/api/stop) - Gestion du stockage audio dans
backend/data/musiques(televersement, telechargement, suppression)
Installation
cd frontend
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Si présence d'un proxy, la dernière commande sera pip install -r requirements.txt --proxy http://proxy:port.
Configuration
La configuration du frontend se fait via frontend/data/conf.json.
Le script init.py crée ce fichier automatiquement avec une clé aléatoire :
cd frontend
python init.py
Le fichier généré est :
{
"secret_key": "<clé-aléatoire>"
}
Générer une clé sécurisée manuellement (si besoin d'éditer le fichier) :
python3 -c "import secrets; print(secrets.token_hex(32))"
Le fichier est créé avec les permissions 600. Pour les restreindre manuellement :
chmod 600 frontend/data/conf.json
Execution
cd frontend
source .venv/bin/activate
python run.py
Application dispo sur http://127.0.0.1:5000.
Production (Debian + systemd)
Le frontend peut tourner en production avec Gunicorn et un service systemd.
cd /opt/pySonnerie/frontend
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Créer et sécuriser le fichier de configuration :
sudo -u www-data python /opt/pySonnerie/frontend/init.py
Copier le service fourni :
sudo cp systemd/pysonnerie-frontend.service /etc/systemd/system/
Adapter au besoin la variable FRONTEND_BIND dans le fichier de service, puis activer :
sudo systemctl daemon-reload
sudo systemctl enable --now pysonnerie-frontend.service
sudo systemctl status pysonnerie-frontend.service
Le frontend sera alors servi par Gunicorn sur l'adresse definie par FRONTEND_BIND (par defaut 0.0.0.0:5000).
Notes
- Le frontend appelle le backend en HTTPS avec certificat autosigne (
verify=False). - Les fichiers audio sont manipules localement dans
backend/data/musiques. - Formats audio acceptes:
.mp3,.wav,.ogg,.flac,.aac,.m4a.
Changelog
- Le changelog global du projet est dans
../CHANGELOG.md. - Les regles de mise a jour sont decrites dans
../docs/CHANGELOG_GUIDE.md.