Skip to content

SatMe PC Publication web

Olivier Gouyen (F4IOZ) edited this page Oct 29, 2026 · 1 revision

🇬🇧 English version

SatMe-PC — la publication web : envoyer vers votre propre site

← Guide SatMe-PC · octobre 2026

SatMe-PC peut pousser ce que fait la station vers votre propre site web : images SSTV et SSDV, planches, rapports d'événement, contacts, vidéos du journal, passages FT8 / FT4, et en option des données en direct (auto-pilote, spectre QO-100, image DATV, station, FT8 / FT4), vos satellites favoris et vos diplômes. Votre site les reçoit comme il veut — un fichier PHP sur un hébergement mutualisé, une extension WordPress, un petit serveur Python ou Node, n'importe quoi qui sait répondre à une requête HTTP. Sans serveur du tout, SatMe-PC peut aussi écrire dans un dossier, pour un site statique ou un outil de synchronisation.

C'est toujours SatMe-PC qui envoie : ça marche derrière la box de la maison, et rien n'est ouvert sur la station — le site ne se connecte jamais au PC.

Le format complet, les exemples et les récepteurs : docs/publication-web.fr.md dans le dépôt (en anglais : publication-web.md).

Désactivé d'origine : le module

Publication web est un module de Réglages › Modules, décoché d'origine, et aucun profil ne l'active (ni ne le décoche quand il est coché). Tant qu'il est décoché, SatMe-PC n'envoie rien à personne — ni file, ni essai, ni direct — et aucun bouton 🌐 n'apparaît. Voir Modules.

Le réglage

Où : Réglages › Services en ligne › Envoyer vers un site web (une fois le module coché).

  1. Où envoyer : Adresse web (HTTPS) ou Dossier sur ce PC.
  2. L'adresse qui reçoit, de deux façons :
    • avec {type} dedans, remplacé par le type de chaque envoi : https://example.org/api/satme/{type} → …/api/satme/sstv-image ;
    • sans {type} : tout part à cette même adresse (style webhook), le type dans l'en-tête X-SatMe-Type : https://example.org/satme/recevoir.php.
  3. Le jeton (facultatif, conseillé) : une clé secrète que vous inventez (par exemple openssl rand -hex 32) et que votre site vérifie, envoyée en Authorization: Bearer <jeton>. Il reste sur ce PC et n'est jamais réaffiché.
  4. Tester : SatMe-PC envoie un ping (rien n'est publié), ou essaie d'écrire dans le dossier. L'envoi n'est prêt qu'après un essai réussi ; une autre adresse, un autre jeton ou un autre dossier se testent à nouveau.
  5. Quoi envoyer : pour chaque genre Sur clic (le bouton 🌐 de chaque élément), Automatique (dès qu'il arrive) ou Jamais. Tout commence à « Sur clic » : rien ne part tout seul tant que vous ne choisissez pas « Automatique ».

http:// (sans S) n'est accepté que vers cette machine ou le réseau local (127.0.0.1, 192.168.…, 10.…, ….local…) ; ailleurs, https:// est obligatoire. Les redirections ne sont pas suivies : mettez l'adresse finale.

Ce qui part, et d'où

Genre Type Bouton 🌐 En « Automatique »
Images SSTV sstv-image la visionneuse SSTV chaque image reçue en direct (pas les essais ni les relectures)
Images SSDV ssdv-image sous chaque image, Télémesure › Images SSDV (voir SSDV) dès qu'elle arrive ; renvoyée d'elle-même quand d'autres paquets arrivent, sous la même clé
Planches planche page Planche, 🌐 Planche vers le site celles qui ont des images, 2 min après la dernière image reçue
Rapports rapport (PDF) page Planche, 🌐 Rapport vers le site —
Contacts qso (ADIF) chaque ligne du carnet (Contacts) chaque contact ajouté
Vidéos du journal journal-video (MP4) l'éditeur du journal, sous une vidéo faite —
Passages FT8 / FT4 ft8-passage la carte Passages FT8/FT4 sur le site de l'onglet FT8/FT4 (voir FT8 / FT4) à la fin de chaque passage
Un diplôme reçu diplome-image Envoyer le diplôme reçu dans Agenda › Diplômes (voir Diplômes) jamais : seulement sur ce clic

Les planches disent tout de leur série : le satellite, l'événement ou la campagne de l'auto-pilote, les dates de la première et de la dernière image, les diapos reçues sur attendues et celles qui manquent, la meilleure image de chaque diapo, les passages qui ont apporté des images (AOS, LOS, élévation max, nombre d'images, 🤖 auto-pilote) avec la vidéo du journal de chacun, et le lien vers leur rapport. Une image SSTV et une vidéo du journal disent leur passage et si l'auto-pilote les a reçues. Un site qui ne connaît pas ces champs facultatifs les ignore.

En direct (facultatif)

Sous En direct, chaque partie se coche à part ; rien d'origine :

  • Auto-pilote : le prochain passage d'une campagne, la réception en cours, la prochaine image, la dernière image reçue ; pendant un passage, l'image qui arrive toutes les 5 s.
  • Spectre QO-100 : le transpondeur étroit vu par le SDR, une ligne par seconde.
  • Image DATV : une image réduite et le MER, tant que le récepteur est verrouillé.
  • Station : le satellite suivi, où pointent vraiment les antennes, la chaîne de réception en service (« quelque chose émet » : oui ou non, rien de plus).
  • FT8/FT4 : chaque créneau FT8 (15 s) ou FT4 (7,5 s) une fois décodé — le satellite du passage (ou la bande), chaque message entendu avec sa fréquence audio, son report, son texte, l'indicatif et le locator, et une petite bande de la cascade pour dessiner un spectrogramme. Seulement des messages entendus sur l'air.
  • Satellites favoris : la liste des ★, dès qu'elle change, sinon une fois par heure au plus (pour qu'une page d'accueil les mette en avant).
  • Diplômes : ceux suivis dans Agenda › Diplômes et votre progression (« 37/100 locators »), dès qu'ils changent, sinon une fois par jour — jamais les contacts comptés, les noms d'images, les notes ni vos coordonnées.

Seulement des noms, des heures et des mesures — jamais une adresse, un code d'appairage, un mot de passe ou une clé. Pas de file : si le site ne répond pas, SatMe-PC attend et réessaie. Effacer le direct le retire tout de suite du site. Un site qui ne connaît pas un type est laissé tranquille (« non pris en charge par le site »), sans message d'erreur.

La file

Rien ne part de la page elle-même : chaque élément est d'abord copié dans une file sur le disque (dossier site/ des données), envoyé un à la fois, dans l'ordre. Pas de réponse, un délai dépassé ou une erreur du serveur : réessayé après 30 s, 1 min, 2 min… puis toutes les heures, avec le même identifiant d'envoi, même après un redémarrage. Sur la carte : ce qui attend, les dernières réponses, Réessayer maintenant, Vider la file. Un refus du site n'est pas réessayé (un type refusé s'affiche « refusé (403) » dans l'historique) ; un jeton refusé arrête tout jusqu'au prochain test.

L'API v1, en bref

Chaque envoi est un POST vers l'adresse réglée, avec les en-têtes X-SatMe-Version: 1, X-SatMe-Type, X-SatMe-Id (un identifiant par envoi, le même d'un essai à l'autre : rien n'est publié deux fois) et, avec un jeton, Authorization: Bearer ….

  • Les médias (images, planches, rapports, contacts, vidéos) : multipart/form-data en trois champs — type, meta (une fiche JSON : titre, satellite, heure UTC, mode, votre indicatif et votre locator, le nom, le type, la taille et le SHA-256 du fichier…) et fichier (le fichier).
  • Les données (ping, direct, favoris, diplômes) : un JSON.
  • La réponse : n'importe quel 2xx est accepté ; 401 = jeton refusé (tout s'arrête) ; 403 = ce genre n'est pas pris par le site ; 408, 429, 5xx ou pas de réponse = réessayé plus tard. Un {"erreur": "…"} dans la réponse est montré tel quel sur la carte.
  • La version ne change que si un récepteur écrit pour la v1 cessait de marcher : ajouter un type ou un champ ne la change pas. Ignorez les champs que vous ne connaissez pas.

Des récepteurs prêts à l'emploi

Dans le dépôt, docs/exemples/publication-web/ (GPL, à copier et adapter) :

  • recevoir.php : un seul fichier PHP pour un hébergement mutualisé — vérifie le jeton et le type, range chaque fichier avec sa fiche JSON, tient un index.json à jour ;
  • recevoir.py : Python 3, bibliothèque standard seulement — la même chose, plus le direct ; sert aussi le dossier en lecture ;
  • index.html : une page simple qui lit index.json et montre les images, vidéos, documents et contacts.

La sécurité, de votre côté : HTTPS sur Internet, un jeton long et aléatoire comparé en temps constant, une liste des types et des tailles acceptés, des fichiers nommés par vous (jamais d'après le nom reçu), rangés là où le serveur web ne les exécute pas, et chaque texte échappé à l'affichage.

Sans serveur : un dossier

Dossier sur ce PC et un chemin complet (/home/moi/Nextcloud/satme, C:\Users\moi\Sync\satme) ; Tester vérifie qu'on peut y écrire. SatMe-PC y écrit alors chaque élément, avec la même file et les mêmes choix : <type>/<année>/<id>.<ext> et sa fiche .json, un index.json (les 500 derniers), un flux Atom flux.xml, et quand c'est coché direct/direct.json et les images du direct, favoris.json, diplomes.json. Jamais un fichier à moitié : chacun est écrit à côté de sa place, puis renommé. Pour un site statique (Hugo, Jekyll, HTML simple) ou un outil de synchronisation que vous avez déjà (Nextcloud, Syncthing, un miroir rsync ou FTP) — SatMe-PC ne fait jamais de FTP lui-même.

En démonstration

En --demo, seulement vers un site de cette machine (http://127.0.0.1:…), jamais dans un dossier : à essayer avec recevoir.py lancé à côté.

Clone this wiki locally