Test migration depuis Gogs (git.hansen.tl)
  • Python 54.1%
  • TypeScript 44.4%
  • Shell 1.1%
  • CSS 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Cedric Hansen 6d86fbf582 Merge refonte-react : Backup Manager 2.0 — nouvelle interface React
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EThf6AGyJ8fguQNXb7YDh1
2026-10-20 21:51:47 +00:00
conf feat: socle de l'API /internal — CSRF, erreurs JSON, méta, compteur de version, APP_VERSION 2026-10-17 07:58:42 +00:00
doc feat: bascule 2.0 — l'interface React remplace Jinja (spec §7.2) 2026-10-20 21:51:22 +00:00
docs/superpowers feat: bascule 2.0 — l'interface React remplace Jinja (spec §7.2) 2026-10-20 21:51:22 +00:00
frontend feat: bascule 2.0 — l'interface React remplace Jinja (spec §7.2) 2026-10-20 21:51:22 +00:00
icon feat: navbar sticky, planification manuelle, actions groupées, archives rapides, filtre apps 2026-05-11 09:14:15 +00:00
scripts feat: bascule 2.0 — l'interface React remplace Jinja (spec §7.2) 2026-10-20 21:51:22 +00:00
sources feat: bascule 2.0 — l'interface React remplace Jinja (spec §7.2) 2026-10-20 21:51:22 +00:00
v3 Merge refonte-react : Backup Manager 2.0 — nouvelle interface React 2026-10-20 21:51:47 +00:00
.gitignore feat: outillage du front React (Vite, TypeScript, Tailwind 4, Vitest) et empreinte du bundle commité 2026-10-17 23:24:16 +00:00
catalog.json Dépôt déplacé de git.hansen.tl (Gogs) vers git.nimesys.fr (Forgejo) 2026-10-14 18:35:27 +00:00
manifest.toml feat: bascule 2.0 — l'interface React remplace Jinja (spec §7.2) 2026-10-20 21:51:22 +00:00
README.md feat: bascule 2.0 — l'interface React remplace Jinja (spec §7.2) 2026-10-20 21:51:22 +00:00

backupmanager_ynh — développement

Paquet YunoHost pour Backup Manager. L'application (sources/) est une app Flask classique ; scripts/, manifest.toml, conf/ sont la partie packaging YunoHost.

Lancer le serveur de dev

cd sources
python3 -m venv venv              # une seule fois
source venv/bin/activate
pip install -r requirements.txt -r requirements-dev.txt   # une seule fois / à chaque maj

FLASK_APP=app.py FLASK_DEBUG=1 flask run --port 5001
  • config.py (gitignoré, généré par YunoHost en prod) doit exister dans sources/ pour le dev. Il contient déjà des valeurs par défaut utilisables telles quelles (DB sqlite dans /tmp, DEBUG=True, token API dev-token). S'il manque, le recréer à partir de la structure attendue par app.py (DB_PATH, LOG_PATH, INSTANCE_NAME, INSTANCE_URL, API_TOKEN, SECRET_KEY, config SMTP).
  • L'app est servie sur http://localhost:5001/ (le port 5000 est celui de l'instance YunoHost, quand elle tourne sur la même machine).
  • Ctrl+C pour arrêter. Si le port 5001 est déjà occupé, un serveur de dev tourne probablement déjà en arrière-plan (vérifier avec ss -ltnp | grep 5001) — pas besoin d'en relancer un second.

Interface (React)

L'interface est dans frontend/ (React, Vite). Le bundle construit, sources/static/dist/, est commité : Flask le sert tel quel, YunoHost n'a pas besoin de Node.

cd frontend
npm install                       # une seule fois
npm run dev                       # Vite sur http://localhost:5173/, /internal relayé vers le Flask de dev (port 5001, ou BM_DEV_PORT)
npm test                          # Vitest
npm run build                     # à relancer après toute modification du front
npm run e2e                       # banc Playwright : Flask jetable sur le port 5099, faux sudo et yunohost

Le test sources/tests/test_build_info.py échoue si le bundle commité ne correspond plus aux sources du front : relancer npm run build.

Lancer les tests

cd sources
source venv/bin/activate
pytest

Notes

  • sources/venv/, sources/config.py, sources/*.db, sources/logs/ sont gitignorés : chaque poste de dev les régénère localement.
  • Voir doc/ pour le cahier des charges et v3//catalog.json pour le processus de release côté catalogue YunoHost.