# 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 ```bash 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 : ```bash cd frontend python init.py ``` Le fichier généré est : ```json { "secret_key": "" } ``` Générer une clé sécurisée manuellement (si besoin d'éditer le fichier) : ```bash python3 -c "import secrets; print(secrets.token_hex(32))" ``` Le fichier est créé avec les permissions `600`. Pour les restreindre manuellement : ```bash chmod 600 frontend/data/conf.json ``` ## Execution ```bash 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. ```bash 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 : ```bash sudo -u www-data python /opt/pySonnerie/frontend/init.py ``` Copier le service fourni : ```bash sudo cp systemd/pysonnerie-frontend.service /etc/systemd/system/ ``` Adapter au besoin la variable `FRONTEND_BIND` dans le fichier de service, puis activer : ```bash 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`.