Files
Noxely/server/README.md
T
tuxgyver ed1d40826b Noxely se sépare en client et serveur (2.0.0)
Le téléphone balayait quarante radios toutes les trois minutes, cherchait dans
quatre catalogues et enregistrait des directs. Tout cela le tenait éveillé pour
un travail qui n'a aucune raison de se faire sur batterie.

Un serveur reprend la collecte : recherche, guet, enregistrement, file de
téléchargement, piloté depuis un navigateur. Le mobile demande ce qui a changé
depuis son curseur, télécharge et se rendort — toutes les six heures, en Wi-Fi
non facturé. Vingt fichiers quittent l'application au passage.

Le balayage devient continu plutôt qu'espacé de trois minutes : une sonde ne lit
que le premier bloc de métadonnées avant de refermer, ce qui rend la permanence
tenable quand garder les flux ouverts coûterait plusieurs mégabits par seconde.
Un morceau guetté a été capté en moins de vingt-cinq secondes. La recherche
interroge les quatre catalogues à la fois et fond leurs résultats, les plus
légers d'abord.

Quatre défauts corrigés en chemin, tous trouvés en essayant plutôt qu'en
relisant : un jeton régénéré à chaque démarrage, qui aurait obligé à
reconfigurer le mobile ; un 403 de Wikimedia dû à un agent trop générique, que
la fusion des sources masquait ; un dossier de données par défaut inaccessible
au compte qui lance le serveur ; et une lecture de métadonnées qui n'itérait
rien, faute d'être asynchrone.
2026-09-13 17:39:43 +02:00

1.4 KiB

🖥️ 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.

Données

$NOXELY_DATA/
├── noxely.sqlite3   index des médias et des guets
└── media/           les fichiers eux-mêmes