Files
Noxely/server
tuxgyver 28cb545685 Un jeton par appareil, révocable seul (2.2.0)
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.
2026-09-13 21:23:19 +02:00
..

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