🛠 Serveur web ultra-léger ou conteneurs sur 256 Mo
Objectifs
- Déployer un service web statique qui tient dans 256 Mo de RAM partagée CPU/GPU.
- Comparer les approches : busybox httpd (quelques Mo), Python http.server, et les limites des conteneurs sur ARMv6 32 bits.
- Rendre le service persistant et l'exposer sur le réseau via le dongle WiFi.
Matériel
- Model A en mode headless (tuto WiFi/SSH acquis), dongle WiFi ou gadget g_ether.
busybox(déjà présent sur Raspberry Pi OS) ou Python 3 ; pour les conteneurs : podman/docker non officiels sur ARMv6.- Zone de service web : /srv/www, hors du /home.
Code complet
# Option 1 — busybox httpd : ~0 dépendance, empreinte minimale
mkdir -p /srv/www && echo '<h1>Model A en ligne</h1>' > /srv/www/index.html
nohup busybox httpd -p 8090 -h /srv/www -f &
# Option 2 — service systemd pour le redémarrage automatique
cat > /etc/systemd/system/tinyweb.service <<'EOF'
[Unit]
Description=Serveur web busybox
After=network-online.target
[Service]
ExecStart=/usr/bin/busybox httpd -p 8090 -h /srv/www -f
Restart=always
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable --now tinyweb
# Test local
curl -s http://localhost:8090/
Vérification attendue
curl renvoie le HTML ; depuis le portable : 1 free -m` montre que le serveur pèse quelques Mo et qu'il reste de la marge. >
Erreurs fréquentes
- Installer nginx complet + PHP + base de données : l'ensemble sature la RAM et fait swapper la carte SD.
- Servir sur le port 80 sans vérifier la disponibilité : conflit avec un autre service,
Address already in use. - Oublier
-f(foreground) dans le service systemd : httpd se détache et systemd le redémarre en boucle. - Mettre le site sous /home/pi puis perdre le mot de passe : préférer /srv/www et sauvegarder la carte.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython