27 points par davespark 2025-11-27 | 4 commentaires | Partager sur WhatsApp

Ce guide explique comment transformer un téléphone Android inutilisé en petit serveur domestique avec postmarketOS, à partir d’un cas concret d’hébergement de pages web sur un Fairphone 2 de 2015. L’objectif est de réduire les déchets électroniques et d’encourager la réutilisation. Au final, vous obtenez un petit serveur domestique capable d’exécuter des services de base.

Matériel nécessaire
  • Un téléphone Android inutilisé
  • Un chargeur et une source d’alimentation
  • Une connexion WiFi
  • Un ordinateur exécutant Linux (natif ou machine virtuelle)
Étape 1 : installer postmarketOS

Commencez par installer postmarketOS sur le téléphone. Vérifiez sur la page des appareils que votre appareil est correctement pris en charge, et gardez cette page ouverte pendant toute l’installation.

Après avoir installé pmbootstrap, générez puis flashez l’image.

Génération de l’image :

  • Mettre à jour les ports et initialiser les informations de l’appareil :
    $ pmbootstrap pull  
    $ pmbootstrap init  
    
    • Saisissez le nom de code de l’appareil indiqué sur la page de l’appareil.
    • Pour l’interface utilisateur, choisissez console (option minimale) ou fbkeyboard (avec clavier à l’écran).
  • Générer l’image :
    $ pmbootstrap install  
    

Flash de l’image :

  • Consultez la page de l’appareil pour savoir comment démarrer en mode flash (généralement en allumant l’appareil tout en maintenant le bouton "volume bas").
  • Connectez le téléphone à l’ordinateur et démarrez-le en mode flash.
  • Suivez les instructions de la section « Installation » sur la page de l’appareil.
  • Flasher le système de fichiers racine :
    $ pmbootstrap flasher flash_rootfs  
    
  • Redémarrez l’appareil et vérifiez que postmarketOS démarre correctement.
Étape 2 : configurer le serveur

Connectez-vous au téléphone sur lequel postmarketOS est installé. Le nom d’utilisateur et le mot de passe par défaut sont user / 147147.

  • Connexion SSH pendant que le téléphone est branché à l’ordinateur :
    $ ssh user@172.16.42.1  
    
  • Connexion au réseau WiFi :
    $ nmcli device wifi connect your_wifi_network --ask  
    

Votre serveur local sur téléphone est maintenant prêt. Commande pour vérifier l’adresse IP locale du téléphone :

$ ip -4 addr show wlan0 | grep inet | awk '{print $2}' | cut -d'/' -f1  

(généralement au format 192.168.1.x). Branchez le téléphone dans un endroit sûr et accédez-y via le WiFi :

ssh user@192.168.1.x  
Étape 3 : servir une page web

Configurez un serveur web pour héberger une page web simple.

  • Créer le répertoire /var/www/html/ :
    sudo mkdir -p /var/www/html/  
    
  • Écrire un fichier HTML Hello World simple :
    $ sudo sh -c 'echo "<h1>hello world</h1>" > /var/www/html/index.html'  
    
  • Ajouter une règle nftables autorisant les paquets entrants sur le port 80 (dans le fichier /etc/nftables.d/99_http.nft) :
    inet filter input tcp dport 80 ct state new accept  
    
  • Redémarrer nftables :
    $ sudo systemctl restart nftables  
    
  • Lancer le serveur web :
    $ httpd -h /var/www/html/  
    
  • Test : vérifiez depuis l’ordinateur avec curl :
    $ curl 192.168.1.x  
    
    (le texte <h1>hello world</h1> s’affiche). Vous pouvez aussi vérifier en saisissant l’adresse IP dans le navigateur web d’un appareil connecté au même réseau WiFi. (Le serveur HTTP ne redémarre pas automatiquement après un redémarrage.)
En plus : accès à distance

Pour des raisons de sécurité, n’ouvrez pas le port SSH 22 sur Internet ; configurez plutôt l’accès VPN de votre routeur (la plupart le prennent en charge via leur interface web). Une fois connecté en VPN, accédez-y en SSH depuis le réseau local. Si vous ouvrez le port 22 sur Internet, désactivez l’authentification par mot de passe et configurez des clés SSH.

En plus : maintenance

Mise à jour des paquets :

$ sudo apk update  
$ sudo apk upgrade  
Étapes suivantes

La section avancée (encore en construction) explique comment configurer un domaine et HTTPS, ainsi que comment faire en sorte que le serveur HTTP continue de tourner après un redémarrage.

Ce guide a été réalisé par Louis Merlin sous licence CC BY-NC-SA 4.0.

4 commentaires

 
lemonapple 2025-11-29

J’aime bien ce genre de choses.
Pour démarrer simplement, quelque chose comme Termux suffit déjà. C’est utilisable, par exemple, pour lancer Grafana sur une tablette inutilisée.

Cependant, Android OS réagit de façon hostile au fait de fonctionner comme serveur.
Sur la base d’un Note10 réinitialisé aux paramètres d’usine en 2024,
si le nombre de processus enfants dépasse 6, ils sont tués.
Même lorsqu’il reste inactif trop longtemps, il se fait tuer.
C’est le cas même en désactivant toutes les optimisations liées à la batterie.

Je l’ai fait tourner au maximum 72 heures sans toucher à l’écran tactile, puis j’ai abandonné au-delà.

 
geeep 2025-12-01

Avez-vous essayé de désactiver le phantom process killer ?

 
qpolsa95 2025-11-28

La batterie tiendra le coup ?

 
cdwdong2 2025-11-28

Il y aura sûrement du gonflement, non ?