🛠 Serveur web ultra-léger ou conteneurs sur 256 Mo
Objetivos
- Desplegar un servicio web estático que quepa en 256 MB de RAM compartida CPU/GPU.
- Comparar los enfoques: busybox httpd (unos pocos MB), Python http.server y las limitaciones de los contenedores en ARMv6 de 32 bits.
- Hacer que el servicio sea persistente y exponerlo en la red a través del dongle WiFi.
Hardware
- Model A en modo headless (tutorial de WiFi/SSH completado), dongle WiFi o gadget g_ether.
busybox(ya presente en Raspberry Pi OS) o Python 3; para los contenedores: podman/docker no oficiales en ARMv6.- Zona del servicio web: /srv/www, fuera de /home.
Código completo
# 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/
Verificación esperada
curl devuelve el HTML; desde el portátil: 1 free -m` muestra que el servidor ocupa unos pocos MB y que queda margen. >
Errores frecuentes
- Instalar nginx completo + PHP + base de datos: el conjunto satura la RAM y hace que la tarjeta SD entre en swap.
- Servir en el puerto 80 sin verificar la disponibilidad: conflicto con otro servicio,
Address already in use. - Olvidar
-f(foreground) en el servicio systemd: httpd se desvincula y systemd lo reinicia en bucle. - Poner el sitio bajo /home/pi y luego perder la contraseña: preferir /srv/www y hacer copia de seguridad de la tarjeta.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython