🛠 Héberger un service web léger (nginx et conteneurs)

Orange Pi PC (Allwinner H3) · avance · Schéma : IMG-orangepi-pc-avance-3-opipc-serveur-web-leger.svg — Orange Pi PC sous Armbian servant nginx en service systemd derrière un routeur 10/100, conteneurs Docker optionnels (Pi-hole, Home Assistant), logs détournés vers RAM pour ménager la microSD.

Objectifs

Transformer l'Orange Pi PC en petit serveur permanent : 1 GB de RAM, quatre Cortex-A7 et un lien Ethernet 100 Mbit/s suffisent largement pour nginx, un bloqueur de pub type Pi-hole ou des petits conteneurs — les cas d'usage que la documentation Armbian documente pour cette carte. Le vrai sujet d'un serveur sur SBC n'est pas le serveur, c'est la longévité : microSD fragile et alimentation, donc log2ram et services sobres.

Matériel

Code complet

  1. nginx statique en service systemd :
sudo apt install -y nginx
sudo tee /etc/nginx/sites-available/projet <<'EOF'
server {
    listen 80;
    server_name _;
    root /srv/www/projet;
    location / { try_files $uri $uri/ =404; }
    # Réduire les écritures disque : logs vers stderr (journald, log2ram)
    access_log /dev/stderr;
    error_log /dev/stderr;
}
EOF
sudo mkdir -p /srv/www/projet
echo '<h1>Orange Pi PC opérationnel</h1>' | sudo tee /srv/www/projet/index.html
sudo ln -sf /etc/nginx/sites-available/projet /etc/nginx/sites-enabled/default
sudo nginx -t && sudo systemctl reload nginx
  1. Premier conteneur (le registre ARMv7 est indiqué arm32v7/armhf) :
sudo systemctl enable --now docker
docker run -d --name whoami --restart unless-stopped -p 8080:80 traefik/whoami
curl -s localhost:8080 | head -3
# Limiter l'empreinte : logs JSON sur petit fichier, rotation agressive
sudo tee /etc/docker/daemon.json <<'EOF'
{ "log-driver": "json-file", "log-opts": { "max-size": "1m", "max-file": "1" } }
EOF
sudo systemctl restart docker
  1. Sauvegarde : tar des configs + carte clonée régulièrement (dd | gzip).

Vérification attendue

curl localhost renvoie la page ; depuis un autre poste, http://IP-de-la-carte aussi. docker ps montre le conteneur en restart unless-stopped et il redémarre tout seul après reboot. La température reste sous la zone de throttling au repos (le nginx seul ne chauffe presque pas).

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels