🛠 Serveur web léger et conteneurs
Objetivos
Transformar el ODROID-C2 en un pequeño servidor doméstico: sitio web ligero detrás de nginx, ejecución contenerizada con Podman (Docker también funciona en imágenes ARMv8), aprovechando las dos ventajas de hardware del C2 — el verdadero Gigabit Ethernet y la ranura eMMC — sobre sus 2 GB de DDR3.
Hardware
- ODROID-C2 con Armbian o DietPi (ARMv8/aarch64), sistema en módulo eMMC
- Fuente de alimentación estable de 5 V / 2 A (evitar picos USB)
- Red cableada Gigabit; la tarjeta no tiene Wi-Fi integrado
- Opcional: dongle USB, pero los 4 puertos USB2 comparten un hub GL852G
Código completo
# 1) nginx + site static
sudo apt update && sudo apt install -y nginx
echo '<html><body><h1>Serveur ODROID-C2 (S905, GbE)</h1></body></html>' \
| sudo tee /var/www/html/index.html
systemctl status nginx --no-pager
# 2) Podman (podman-docker fournit l'alias docker)
sudo apt install -y podman
podman run -d --name whoami --restart always -p 8080:80 \
--pull=always quay.io/podman-static/whoami 2>/dev/null || \
podman run -d --name test -p 8080:80 nginx:alpine
# 3) memoire : 2 Go partagés — limiter chaque conteneur
podman update --memory 256m test 2>/dev/null || true
free -h
# 4) ecrire peu : logs en RAM (rclone/rsyslog vers le disque par rotation)
sudo sed -i 's#^.*"/var/log/nginx/access.log"#/var/log/nginx/access.log#' /etc/logrotate.d/nginx 2>/dev/null || true
# 5) test depuis un poste : curl http://<ip-du-c2>/ et :8080
Verificación esperada
curl http://IP/ devuelve la página de nginx, el contenedor responde en el puerto 8080. iperf3 hacia la tarjeta supera los 600 Mbit/s: el enlace GbE (RTL8211F) no es el cuello de botella, el almacenamiento microSD sí lo sería. free -h muestra una huella de memoria controlada dentro de los 2 GB.
Errores frecuentes
- Iniciar el servidor desde una microSD de baja calidad: E/S lentas (SDR50/SDR100 en mainline) y desgaste — la eMMC es la corrección prevista por la DTS (HS200).
- Dejar expuestas las imágenes del fabricante (kernel 3.14, Ubuntu 16.04): demasiado antiguas, prohibidas en la red.
- Apilar contenedores sin límites de memoria: el OOM killer actúa a los 2 GB.
- Esperar rendimiento del GPU Mali-450 en mainline: solo blobs propietarios, inútil para un servidor.
- >
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash