You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

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.