Tous les appareils partageaient le jeton du serveur : perdre un téléphone obligeait à changer ce jeton, donc à réappairer tout le monde. Chaque appairage émet désormais le sien. Révoquer devient une opération locale, vérifiée en appairant deux appareils puis en coupant le premier : 401 pour lui, 200 pour l'autre, jeton maître intact. L'interface du serveur les liste avec leur modèle, leur date d'appairage et leur dernière synchronisation — sans jamais afficher les jetons eux-mêmes, ce qui reviendrait à les distribuer. La table s'ajoute sans toucher aux données existantes et le jeton maître reste accepté : rien ne casse pour un appareil appairé avant cette version.
🖥️ Noxely — serveur
Le serveur porte tout ce qui coûtait de la batterie au téléphone : la recherche dans les catalogues, le guet des radios, l'enregistrement et le téléchargement. Le mobile ne fait plus que récupérer des fichiers prêts.
Installation
make server-venv # crée le venv et installe les dépendances
cp server/.env.example server/.env # puis renseigner NOXELY_TOKEN
make server-run # lancement au premier plan, pour essayer
L'interface de pilotage est à http://<hôte>:8710 — recherche, guets, file et bibliothèque.
Le jeton se saisit une fois dans l'en-tête de la page.
En service
make server-install # unité systemd (sudo demandé)
make server-status # état
make server-logs # journal suivi
API
| Route | Qui l'utilise |
|---|---|
GET /api/health |
tout le monde, sans jeton |
GET /api/library?since=<curseur> |
le mobile — uniquement ce qui a changé |
GET /api/media/{id}/file |
le mobile — le fichier |
GET /api/search, /api/tracks, POST /api/queue |
l'interface web |
GET/POST/DELETE /api/watches, POST /api/watches/sweep |
l'interface web |
Toutes les routes sauf /api/health exigent l'en-tête X-Noxely-Token.
Licence
GPL v3, comme le reste du projet — voir ../LICENSE.
Données
$NOXELY_DATA/
├── noxely.sqlite3 index des médias et des guets
└── media/ les fichiers eux-mêmes