La météo du terrain, en un coup d'œil avant de partir.
La webcam de votre terrain d'aviation.
Votre caméra pousse déjà ses photos par FTP ? Cette page les affiche : la dernière image en direct, et le timelapse rejouable de la dernière heure pour voir d'où vient le temps. Rien à compiler, rien à administrer.
PHP 8, zéro dépendance, zéro build, pas de cron. On dépose les fichiers sur un hébergement mutualisé et ça tourne. Libre, sous licence AGPL-3.0.
Quatre choses, bien faites.
Le périmètre est volontairement court : ni comptes utilisateurs, ni flux vidéo temps réel, ni détection de mouvement. Ce que fait la page, elle le fait sans réglage.
-
Direct
La dernière image reçue, rafraîchie toute seule, avec un bandeau d'alerte explicite si la caméra se tait. On ouvre la page, on sait.
-
Timelapse
La dernière heure rejouée en accéléré : lecture/pause, vitesses ×1 à ×8, navigation image par image, curseur. Vitesse et boucle sont mémorisées d'une visite à l'autre.
-
URL stable
latest.jpgrenvoie toujours l'image la plus récente : de quoi l'afficher dans une appli tierce, un écran d'accueil de club ou un tableau de bord. -
Ménage automatique
Les images au-delà de la rétention sont supprimées à la volée, pendant les requêtes. Sans cron : le disque d'un mutualisé ne se remplit pas.
Deux modes, une seule page.
Interface sobre et responsive, faite main, sans framework. Thème clair ou sombre selon le réglage du système.
La caméra dépose, PHP affiche.
Aucune base de données : l'arborescence des fichiers est la base de données, et le nom du fichier porte l'heure de la prise de vue.
-
La caméra pousse en FTP
Un snapshot toutes les ~30 secondes, dans
snap/AAAA/MM/JJ/. Testé avec une Reolink ; toute caméra respectant le format convient. -
Le nom du fichier fait foi
cam_01_20260611193004.jpg: l'heure affichée vient de là, jamais de la date système du fichier, faussée par l'upload. Un fichier hors format est ignoré en silence — c'est la première chose à vérifier si la page reste vide. -
PHP sert, et fait le ménage
La page lit le dossier du jour, sert la dernière image et la liste de la fenêtre courante. Au passage, elle supprime ce qui a dépassé la rétention : pas de cron à demander à l'hébergeur.
Ce qu'il faut avoir sous la main.
- PHP 8.0+ — n'importe quel hébergement mutualisé récent.
-
Apache avec
mod_rewrite— le.htaccessfourni porte l'essentiel de la sécurité ; sans lui, l'application refuse délibérément de démarrer plutôt que de s'ouvrir. - Une caméra capable de pousser des JPEG horodatés par FTP.
- Pas de Composer, pas de npm, pas de base, pas de cron.
Le dossier snap/ est une zone d'écriture partiellement hors de votre contrôle
C'est la caméra qui y dépose des fichiers, par FTP. Le .htaccess livré
n'y sert qu'un chemin conforme au contrat de nommage, et refuse l'exécution de tout PHP
qui s'y trouverait — extensions alternatives et casse comprises. Le raisonnement complet,
et la checklist à dérouler une fois en ligne, sont dans la documentation.