2 points par GN⁺ 2025-09-04 | 1 commentaires | Partager sur WhatsApp
  • Ce blog fonctionne sur un Google Pixel 5 recyclé
  • Utilisation d’outils comme Termux pour mettre en place un environnement serveur sur un appareil mobile et y faire tourner le blog
  • Le blog fonctionne entièrement hors réseau (off-grid) grâce à une combinaison d’un panneau solaire de 100 W et d’une station d’alimentation Jackery 160W
  • Le blog repose sur Hugo, avec une installation des paquets, une automatisation de l’exploitation, ainsi qu’une sauvegarde/gestion des fichiers facilement assurées via ssh, rsync, cron, etc.
  • Même sur un smartphone Android, il atteint un fonctionnement stable et rapide, avec une consommation électrique efficace

Introduction et motivation

  • Ce blog fonctionne uniquement avec un Google Pixel 5 et de l’énergie renouvelable (solaire)
  • L’auteur a été inspiré par plusieurs utilisateurs de Mastodon qui hébergent eux-mêmes leurs sites web sur du matériel original comme des ESP32, des appareils Android ou des routeurs
  • En réfléchissant à la faible consommation électrique, il s’est lancé dans une expérimentation visant à redonner une nouvelle utilité à du matériel d’occasion

Matériel et environnement réseau

  • Parmi plusieurs appareils stockés, le choix s’est porté sur un Google Pixel 5, capable d’utiliser un Ethernet filaire via USB-OTG et dock, et de recevoir les dernières mises à jour de sécurité
  • L’installation d’une ROM personnalisée était impossible à cause du verrouillage Verizon, mais l’environnement Android a été utilisé tel quel
  • Un point jugé essentiel était d’utiliser non pas une connexion sans fil (Wi-Fi), mais bien un réseau Ethernet filaire physique

Un blog off-grid alimenté par l’énergie solaire

  • L’alimentation est assurée par un panneau solaire monocristallin 100 W de Harbor Freight Tools et une station d’alimentation Jackery 160W
  • Cette configuration a permis d’acquérir de l’expérience autour de la permacomputing (informatique durable à long terme) et des expérimentations sur l’énergie renouvelable
  • Elle a aussi confirmé qu’il est possible d’exploiter un site web autonome hors réseau uniquement avec des composants d’occasion

Mise en place du site : Termux et Hugo

  • Une configuration Linux classique avait d’abord été envisagée, mais c’est finalement Termux, émulateur de terminal Android, et son propre système de paquets qui ont été utilisés
  • Des paquets essentiels comme ssh, git, hugo sont présents depuis longtemps dans les dépôts de Termux
  • Hugo a été installé directement dans Termux, puis le blog existant basé sur Hugo y a été migré

Retour d’exploitation

  • Le site s’est montré plus rapide et plus fiable que prévu
  • Au départ, quelques petits problèmes sont apparus, notamment des différences de version de Hugo et la gestion de la batterie solaire
  • Le résultat est suffisamment abouti pour qu’il soit difficile, pour les visiteurs, de deviner que le site tourne sur un smartphone Android

Mise en place et administration simplifiées

  • Il est possible de monter rapidement le serveur en installant simplement git, screen, un éditeur de texte et hugo
  • L’envoi de fichiers et la publication de nouveaux billets peuvent se faire via le paquet dufs (serveur de fichiers statiques accessible dans le navigateur) ou avec scp
  • dufs s’installe lui aussi facilement depuis les dépôts de Termux

Liste des paquets utilitaires de base

  • rsync, openssh, git, wget, curl, fish shell, cronie, termux-services, iperf3, speedtest-go, screen, helix, hugo

Automatisation des services et accès SSH

  • Dans Termux, sshd et cronie sont lancés comme services via sv-enable
  • La documentation officielle précise plusieurs points d’attention : enregistrement de la clé publique SSH, port fixe (8022), nom d’utilisateur généré automatiquement, etc.

Automatisation d’un blog basé sur Hugo

  • La commande d’exécution de hugo serve est gérée via un alias du fish shell
  • Un script d’automatisation (~/scripts/blog_reload.sh) gère l’arrêt de l’ancienne session screen, la suppression du cache et la création d’une nouvelle session
  • Des tâches cron via cronie (*/5 * * * * ...) permettent de redémarrer et recharger périodiquement le blog

Sauvegardes et gestion des données

  • Une connexion distante en ssh depuis Termux permet de sauvegarder l’ensemble du répertoire avec rsync
  • L’automatisation via cron vers un ordinateur de bureau et un NAS est également incluse
  • Une instance git personnelle peut aussi servir de sauvegarde supplémentaire, et il est libre d’utiliser d’autres forges comme GitHub

Conclusion et message

  • Le projet démontre qu’il est possible d’exploiter un blog économique, efficace et respectueux de l’environnement en combinant appareil mobile et énergie renouvelable
  • Les questions et retours sont les bienvenus via Mastodon ou par e-mail

1 commentaires

 
GN⁺ 2025-09-04
Commentaire Hacker News
  • J’aime bien l’idée de réutiliser de vieux smartphones pour une infrastructure légère, grâce à leur faible consommation et à l’UPS intégré, même s’il y a bien sûr quelques inconvénients qu’on peut compenser dans une certaine mesure. J’ai aussi quelques anciens appareils Android et j’aimerais tenter ce genre d’expérience sympa. Certes, sur une infrastructure de homelab déjà en fonctionnement, on peut facilement ajouter des fonctions via des VM ou des conteneurs, donc la consommation supplémentaire serait probablement quasi nulle, mais je trouve quand même la démarche très cool et j’ai envie d’essayer. Une question cependant : pourquoi ne pas avoir utilisé le Wi‑Fi ? Le couple dock -> Ethernet filaire me semble être un périphérique additionnel superflu qui ne fait qu’augmenter la consommation. Je doute qu’un ancien téléphone ait besoin d’une telle bande passante, donc je me demande pourquoi l’auteur a tenu à choisir l’Ethernet. Au passage, je crois que je vais devoir ajouter le Pixel 5 à l’inventaire du homelab. Le layout du site et les infos sont aussi très réussis
    • J’utilise aussi un Pixel 3 fixé magnétiquement à gauche de mon clavier. J’y laisse ouverte une page web avec une grille de boutons, et quand j’appuie dessus, ça fait diverses actions comme insérer un horodatage à la position du curseur, basculer l’écran on/off, lancer certaines apps, etc. À l’origine je voulais acheter un Elgato Stream Deck, mais comme j’avais un téléphone qui traînait, je l’utilise comme ça
    • J’aimerais bien voir un kit de « transformation en serveur » pour anciens appareils mobiles. Un peu dans l’esprit d’un kit de consolisation pour Game Boy Advance comme celui-ci [https://fingercramp.com/portfolio/…], mais où l’on extrait la carte mère du téléphone pour l’étendre avec du stockage externe, une meilleure alimentation, une interface réseau physique, etc.
    • Je suis l’auteur du blog, merci. Je suis d’accord sur le fait qu’ajouter une VM ou un conteneur à un homelab déjà en service n’augmente pas vraiment la consommation. J’ai lancé ce projet surtout pour le plaisir, et aussi parce que je voulais essayer de l’alimenter au solaire. À l’origine, je comptais éteindre le homelab la nuit et ne laisser tourner que le téléphone sur batterie, mais le homelab est devenu une infrastructure indispensable, donc il doit maintenant rester allumé en permanence. Si j’ai besoin d’Ethernet filaire, c’est pour disposer d’une bande passante stable. Mon réseau Wi‑Fi n’est pas très performant
    • Le Wi‑Fi a une latence élevée et irrégulière. Les 1 % les plus lents des requêtes sortantes d’un serveur peuvent prendre près d’une seconde de plus. Si on fait tourner un blog sur un téléphone, j’estime qu’il doit répondre très vite. Les anciens téléphones Android ne prennent pas forcément en charge les derniers standards Wi‑Fi et pourraient aussi avoir du mal à encaisser un pic de trafic si ça passe en page d’accueil de HN
    • Sur smartphone, le Wi‑Fi est très instable et présente beaucoup de latence pour les connexions entrantes imprévues à cause des fonctions d’économie d’énergie. Je ne sais pas si on peut désactiver ça via des paramètres noyau, mais même si c’est possible, il faudrait probablement rooter l’appareil
  • L’efficacité énergétique des smartphones est vraiment fascinante. Les téléphones actuels ressemblent à des serveurs ARM optimisés pour l’autonomie. Un Pixel 5 consomme moins de 5 W même à pleine charge, alors qu’un serveur x86 classique tire 50 à 100 W. Rien que pour un blog personnel, cela représente 400 à 800 kWh économisés par an. L’impact environnemental du réemploi d’appareils électroniques est plus important qu’on ne le pense souvent, davantage encore que leur recyclage
    • Pour un site statique, le déployer sur S3 ou GitHub Pages est bien plus efficace. En l’absence de requêtes, la consommation de ressources tombe à zéro. Faire tourner un serveur x86 à la maison pour héberger un site statique est très inefficace
    • On peut aussi configurer du x86 en basse consommation. Un système n100 reste sous les 10 W au repos et monte à 20–30 W au maximum en charge
    • Qu’un CPU x86 consomme 50 à 100 W pour des tâches qu’un téléphone de 2020 peut faire, c’était plutôt vrai il y a une dizaine d’années. De nos jours, brûler 75 W pour héberger quelques fichiers statiques, ce n’est plus courant. Au final, utiliser un vieux smartphone qui traîne comme alternative ultra basse consommation à un Pi reste une bonne idée
    • Une économie annuelle de 400 à 800 kWh, au tarif moyen de l’électricité aux États-Unis (13,2 cents par kWh), représente au maximum 105,60 dollars, soit environ 8,8 dollars par mois. C’est même pas 1 % du seuil de pauvreté pour une personne seule (15 650 dollars en 2025). C’est bien du point de vue de l’efficacité énergétique, mais à l’échelle macro, ça ne change pas grand-chose
  • Techniquement, c’est un Google Pixel 5 réemployé, pas recyclé. Il n’a pas été entièrement démonté puis refabriqué. L’ordre Reduce, Reuse, Recycle reflète aussi l’impact environnemental, et le réemploi est un cran au-dessus
    • Cela dit, si c’est du réemploi au sens large, parler de « recyclage » n’est pas non plus faux. [https://en.wiktionary.org/wiki/recycle/…]
    • grammaticalement, recycle est aussi correct. Il n’y a pas grande différence de sens avec reuse
  • Même comparé aux tentatives de réutilisation de RPi ou d’autres cartes, l’usage d’un Pixel 5 reste cohérent. Il pourrait même offrir de meilleures performances, même si l’écran consomme beaucoup. Je me demande comment la consommation a été optimisée, car il doit probablement y avoir des problèmes de chauffe en forte charge. Hugo, utilisé par ce blog, est un générateur de site statique développé en Go qui semble bien adapté pour servir du contenu. D’ailleurs, je me suis mis à beaucoup aimer les SSG ces derniers temps, et j’envisage de créer un éditeur de blog Markdown avec Tauri/Rust + React/MUI, intégration git et déploiement via Cloudflare, même si je ne suis pas encore passé à l’action. Je regrette aussi qu’il n’existe plus le vieil éditeur de blog GUI que Microsoft avait sorti autrefois
  • Ce qui m’inquiète le plus, c’est comment éviter le problème du « spicy pillow » (gonflement de batterie et risque d’incendie). Si ça pouvait fonctionner uniquement en USB, sans batterie, ce serait vraiment idéal
    • Aujourd’hui, certains téléphones proposent une option de limitation de charge à 80 %. Sinon, on peut aussi utiliser une prise connectée avec un minuteur, ou IFTTT, pour piloter automatiquement l’alimentation selon le niveau de batterie. Par exemple, l’allumer sous 40 % et la couper au-dessus de 60 %
    • Le plus agaçant, c’est que même si on retire la cellule de batterie et qu’on alimente directement le BMS, Android peut quand même s’éteindre au bout d’un certain temps en disant que « la batterie est vide ». On ne peut empêcher ça qu’après root, et c’est très pénible. Si on pouvait injecter l’alimentation directement depuis le secteur, ce problème disparaîtrait aussi
    • Moi, je laisse plusieurs anciens appareils Android branchés sur un chargeur USB multiple, lui-même connecté à un interrupteur intelligent, et je ne les recharge que quelques heures la nuit. Après changement de ROM et root, j’ai réglé la limitation de charge à 80 % avec l’application ACCA. Mon Samsung Note 5 sorti en 2015 a gonflé il y a environ six mois, mais mon Samsung S9 et mon Nokia 6.1 tournent sans problème depuis six ans sous LineageOS
    • On peut s’inspirer d’une méthode comme celle-ci [https://www.instructables.com/Power-an-Android-Phone-Without-Battery/], et il est aussi possible d’acheter en ligne de fausses batteries selon le modèle
    • On peut aussi simplement le mettre dans une boîte ignifuge et le remplacer quand il tombe en panne
  • Quelque part, j’imagine bien un cadre de Google se demander : « pourquoi laisse-t-on les gens réutiliser ainsi les appareils Google, et est-ce qu’on ne pourrait pas coller de la pub là-dessus ? »
  • J’écris ce commentaire depuis un Pixel 5 qui est encore en très bon état. C’est le meilleur téléphone que j’aie jamais utilisé. La taille est idéale, le lecteur d’empreintes au dos aussi, etc. Tous les téléphones sortis ensuite m’ont laissé sur ma faim
    • Moi aussi, j’utilise un Pixel 5 reconditionné acheté autour de 250 dollars. C’est pareillement le meilleur téléphone que j’aie eu. Le design de 2020, simple et pragmatique, sans gadgets tape-à-l’œil comme le capteur d’empreintes sous l’écran, reste satisfaisant dans la durée. J’espère encore profiter pendant 2 à 3 jours d’autonomie et d’une qualité photo qui reste « tout à fait correcte »
    • Mon Pixel 5 aurait sans doute besoin d’un changement de batterie. À ce stade, elle se vide au point que je dois le recharger deux ou trois fois par jour
    • Même chose pour moi. Je compte garder mon iPhone SE2 jusqu’au bout (même époque, même format, même poids, Touch ID, etc.)
  • Je me demande comment la partie DNS est gérée dans ce type d’installation. J’imagine que les FAI n’aiment généralement pas trop qu’on héberge des serveurs sur une ligne résidentielle
    • Le vrai problème, c’est le NAT. Je suis ce ticket lié à tailscale [https://github.com/tailscale/tailscale/issues/11563]. Sinon, on peut aussi contacter son FAI directement, ou passer chez un concurrent, et payer un petit supplément (par exemple +5 €/mois) pour obtenir une IP fixe. Ça permet aussi des choses comme jouer à Factorio en multi avec un ami
    • La plupart des FAI attribuent des IP « dynamiques » qui, en pratique, changent très peu. Dans mon cas, ça change aléatoirement environ une fois par an, donc je mets juste à jour le DNS manuellement à ce moment-là. On peut automatiser, bien sûr, mais comme ça arrive rarement, je le fais à la main. J’imagine que le FAI ne commencera à s’en soucier que si le trafic sature durablement l’upload, et avec Comcast/XFinity, par exemple, il faut garder en tête que l’asymétrie entre upload et download est forte
    • Il existe plein de solutions de DNS dynamique. Chez TP-Link et d’autres, ça se configure facilement depuis l’application
    • J’ai une connexion Internet à 2,5 gigabits mais pas d’IP fixe non plus. À la place, mon routeur exécute un script qui met à jour le DNS à chaque changement d’IP. Si le fournisseur DNS autorise la modification du TTL, on peut automatiser ça
  • Lien connexe : [https://fairphone.com/en/2024/…]
  • Euh, c’est mon blog. Je suis juste un type ordinaire qui écrit des billets un peu divers, et j’ai l’impression d’avoir été catapulté hors de mon petit puits. J’ai aussi créé mon compte HN aujourd’hui. Pour répondre aux questions : 1) oui, le blog tourne toujours sur le Pixel, je n’ai aucune raison de changer 2) si je l’ai simplement mis sur ma connexion domestique, c’est parce que je pensais qu’il n’y aurait quasiment pas de trafic 3) je suis juste quelqu’un qui fait toutes sortes d’expériences chez lui en soirée pendant la semaine, je ne travaille pas dans le secteur. En réalité, je dirige une entreprise de construction sous contrat
    • Tu as une façon de penser qui ressemble à celle d’un ingénieur, donc tu devrais bien t’intégrer ici. J’ai parcouru d’autres billets de ton blog : il y a plein de choses intéressantes, et la mise en page est très lisible, donc je repasserai. Le billet « je veux être seul » avait aussi bien marché sur HN
    • Lecture très intéressante. Une question me vient toutefois : y a-t-il une raison pour laquelle tu n’utilises pas simplement un serveur web comme nginx après avoir généré les fichiers avec hugo, au lieu de faire tourner seulement hugo serve ?