Configuration OpenClaw pour l'automatisation de navigateur avec intervention humaine, utilisant Docker, Chromium et noVNC

Un développeur sur r/openclaw a documenté sa configuration pour permettre à OpenClaw de gérer des tâches nécessitant une intervention humaine comme la résolution de CAPTCHAs et les approbations pendant les sessions de navigation automatisées. La solution utilise un conteneur Docker avec Chromium, noVNC et des outils associés pour permettre une intervention à distance lorsque nécessaire.
Fonctionnement
L'agent pilote un navigateur sans interface graphique via le protocole Chrome DevTools (CDP). Lorsqu'il rencontre un CAPTCHA ou a besoin d'une approbation humaine, il envoie une notification Telegram. L'utilisateur ouvre une URL noVNC sur son téléphone ou son ordinateur portable pour visualiser et interagir avec le navigateur, puis répond "fait" pour permettre à l'agent de continuer. La configuration nécessite environ 300 Mo de RAM avec un temps de démarrage à froid de 3 secondes.
Application pratique
Le développeur a testé cette configuration en faisant réserver un ramassage de colis par OpenClaw. Après avoir fourni des photos de bordereaux d'expédition et d'e-mails, l'agent a rempli le formulaire en ligne, sélectionné les dates et l'a soumis pendant que le développeur surveillait via noVNC. Il a noté que le widget Chromium de Claude Opus 4.6 avait des difficultés avec la même tâche, restant bloqué dans des boucles de navigation alors qu'OpenClaw terminait la réservation.
Implémentation technique
Le conteneur Docker exécute :
- Xvfb pour l'affichage virtuel
- Chromium avec Playwright
- x11vnc et noVNC pour la visualisation à distance
- supervisord pour la gestion des processus
Le bot contrôle Chromium via CDP depuis l'intérieur du conteneur, tandis que les utilisateurs visualisent le navigateur via noVNC depuis n'importe quel appareil avec une simple URL (aucune application requise).
Mesures de sécurité
- noVNC accessible uniquement via Tailscale (l'appareil client doit faire partie du tailnet)
- Port CDP lié uniquement à localhost
- Le conteneur n'a pas accès au système de fichiers de l'hôte
- Chromium s'exécute sans privilèges
- Les mots de passe/2FA sont gérés via le panneau de presse-papiers de noVNC directement
Renforcement supplémentaire
- Vérification de santé Docker : interroge CDP toutes les 30 secondes, 3 tentatives avant d'être considéré comme non sain
- Limites de ressources : 1 Go de RAM + 2 CPU
- Élagueur d'onglets : conserve un maximum de 5 onglets, ferme les onglets vides, s'exécute toutes les 5 minutes
- Le conteneur reste isolé sans montages d'hôte
Configuration Docker
Le Dockerfile utilise Ubuntu 24.04 et installe :
FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
ENV DISPLAY=:99
ENV RESOLUTION=1920x1080x24
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates xvfb x11vnc fonts-liberation \
dbus-x11 supervisor curl gnupg websockify novnc \
&& rm -rf /var/lib/apt/lists/*
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
&& apt-get install -y nodejs \
&& npx playwright install --with-deps chromium \
&& rm -rf /var/lib/apt/lists/*
RUN useradd -m -s /bin/bash browser \
&& mkdir -p /home/browser/.cache \
&& cp -r /root/.cache/ms-playwright /home/browser/.cache/ \
&& chown -R browser:browser /home/browser
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY start-chromium.sh /usr/local/bin/start-chromium.sh
RUN chmod +x /usr/local/bin/start-chromium.sh
RUN ln -sf /usr/share/novnc/vnc.html /usr/share/novnc/index.html
EXPOSE 6080 9222
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
Le supervisord.conf gère quatre processus : Xvfb, Chromium, x11vnc et noVNC/websockify.
Le script start-chromium.sh lance Chrome avec des drapeaux spécifiques incluant --remote-debugging-port=9222 --remote-debugging-address=0.0.0.0 pour l'accès CDP.
Éléments à faire
Le développeur prévoit d'ajouter une authentification par jeton sur noVNC et de mettre en œuvre une fonction d'arrêt automatique après un délai d'inactivité.
📖 Lire la source complète : r/openclaw
👀 See Also

De 88 à 100 PSI : Claude Code pour l'optimisation du front-end
Un développeur a utilisé Claude Code pour faire passer le score PageSpeed Insights de 88 à 100 sur mobile. Tactiques clés : images responsives avec srcset, IntersectionObserver, suppression des préchargements de polices. Claude a agi comme un partenaire de débogage, pas comme une solution unique.

Contournement par Raccourci iOS pour envoyer des photos iPhone à Cowork via la synchronisation iCloud
Un développeur a créé un raccourci iOS appelé "PhoPo" qui convertit les photos de l'iPhone en JPEG, les redimensionne et les enregistre dans un dossier synchronisé via iCloud accessible par Cowork, permettant ainsi à Claude d'analyser des captures d'écran et des photos provenant d'appareils mobiles.

Correction du gonflement des invites OpenClaw et des boucles de réponse lentes
Les utilisateurs subissant de longs délais depuis le 26/04/2026 peuvent retrouver des performances en réduisant l'encombrement du contexte : réduire les fichiers toujours injectés, limiter les compétences visibles et éviter de coller d'énormes sorties d'outils dans le chat principal.

Comprendre l'architecture des agents IA : couches déterministes vs probabilistes
Un utilisateur de Reddit partage un modèle mental pour les systèmes d'agents IA qui sépare les couches déterministes (scripts, commandes, API) des couches probabilistes (raisonnement et décisions des LLM). L'idée clé : transférer autant de travail que possible vers le côté déterministe.