VPSSpark Blog
← Retour au journal de dev

2026 — OpenClaw sur VPS Linux cloud : passerelles multi-profils en parallèle — matrice de ports, unités systemd utilisateur, isolation des répertoires OPENCLAW_* — déploiement reproductible et FAQ des conflits

Notes serveur · 2026.04.27 · ~7 min de lecture

Salle serveurs : plusieurs profils OpenClaw Gateway isolés sur un même VPS Linux

Une petite instance Linux dans le nuage peut héberger plus d’un déploiement de type OpenClaw Gateway : bot de production, passerelle de préproduction et expérimentation personnelle — chacun avec ses jetons, sa configuration et son adresse d’écoute. Le scénario d’échec n’est pas « Linux ne sait pas multitâcher » ; ce sont les ports qui se marchent dessus, les répertoires d’état partagés et les unités systemd qui se disputent le même utilisateur ou le même répertoire de travail. Ce mémo propose un schéma reproductible : une matrice de ports, des unités systemd --user par profil, une isolation explicite des répertoires OPENCLAW_*, et une FAQ courte sur les conflits que nous voyons encore en 2026.

N
Profils ≤ ports + dossiers uniques
user@
Isolation par slice systemd utilisateur
1
Matrice versionnée avec l’infra

Pourquoi plusieurs profils en parallèle sur un même hôte ?

Des VM séparées coûtent cher et consomment des IPv4 ; des conteneurs distincts partagent encore l’espace de ports du noyau si le mapping n’est pas rigoureux. Des profils parallèles sur un VPS fonctionnent lorsque chaque profil possède un port d’attache non recouvrant, un utilisateur ou un home dédié pour les permissions fichiers, et un préfixe d’environnement documenté afin qu’aucun opérateur ne colle le mauvais jeton dans la mauvaise unité. Traitez le « profil » comme un concept d’exploitation : prod / préprod / dev, ou équipe A contre équipe B — et non comme trois copies du même chemin de configuration par défaut.

Matrice de ports : adresses d’écoute avant reverse proxy

Tranchez loopback contre exposition publique avant d’activer le TLS en frontal. Beaucoup d’équipes gardent chaque Gateway sur 127.0.0.1 avec Nginx ou Caddy sur 0.0.0.0:443 ; les profils parallèles ne diffèrent alors que par le port loopback. Si vous devez exposer HTTP directement, étendez la matrice avec des règles pare-feu par groupe de sécurité. Pour les modes d’exposition et le compromis tunnel SSH contre HTTPS public, voir 2026 — OpenClaw Linux, VPS cloud : surface d’attaque minimale — pare-feu, loopback Gateway, tunnel SSH ; matrice vs HTTPS public et FAQ L0–L3.

Profil Liaison HTTP Notes
prod 127.0.0.1:18789 Nom d’unité stable ; amont équilibré de charge figé
stage 127.0.0.1:18790 Ne jamais réutiliser les jetons prod ; unité systemd séparée
dev 127.0.0.1:18791 Option : restreindre au VPN ou au tunnel SSH uniquement
Même binaire, univers différent
Les passerelles parallèles ne sont pas « le même service en double » sauf si vous le dupliquez volontairement. Gardez un chemin d’installation par image machine, et ne faites varier que les fichiers d’environnement, les ports et les racines d’état : les montées de version n’ont lieu qu’une fois.

Unités systemd utilisateur : linger, slices et journaux

Des services systemd --user sous des comptes Linux distincts donnent des frontières journalctl --user -u … nettes sans encombrer /etc/systemd/system. Activez loginctl enable-linger pour les comptes de service qui doivent survivre à la déconnexion. Associez chaque unité à WorkingDirectory= et EnvironmentFile= pointant vers un fragment propre au profil, afin qu’un daemon-reload ne fusionne jamais deux profils par erreur. Si vous préférez le niveau system, utilisez des unités modèle ([email protected]) — l’invariant reste le même : un nœud du graphe d’unités par profil, une ligne de port dans la matrice.

Fichier d’environnement par profil (champs d’exemple)
# /etc/openclaw/prod.env — mode 640, propriétaire = utilisateur du service
OPENCLAW_STATE_DIR=/var/lib/openclaw/prod
OPENCLAW_CONFIG_PATH=/etc/openclaw/prod.yaml
# Écoute Gateway — doit coller à la matrice de ports
OPENCLAW_GATEWAY_BIND=127.0.0.1:18789

Répertoires OPENCLAW_* : isoler l’état, pas seulement la config

Les fichiers de configuration sont visibles ; l’état d’exécution (sessions, caches locaux, artefacts téléchargés) est là où la contamination silencieuse apparaît. Fixez OPENCLAW_STATE_DIR (et les variables compagnes documentées par votre distribution) sur des chemins disjoints par profil — par exemple /var/lib/openclaw/prod contre /var/lib/openclaw/stage — et appliquez le propriétaire du compte de service correspondant. Sauvegardes et quotas disque suivent alors le rayon d’explosion : effacer la préprod ne touche pas aux jetons prod sur disque.

Défauts dans le home
Si vous omettez des racines d’état explicites, deux unités utilisateur sous le même compte peuvent encore converger vers les mêmes emplacements par défaut sous ~/.config ou ~/.local/share selon l’empaquetage — fixez toujours des chemins explicites dans l’environnement pour les profils parallèles.

Check-list de déploiement reproductible

Versionnez la matrice de ports et les fichiers d’environnement dans le même dépôt qu’Ansible ou cloud-init. Appliquez les changements avec systemctl --user daemon-reload (ou rechargement du modèle system), puis systemctl restart les profils dans l’ordre des dépendances : d’abord les prérequis, en dernier les écouteurs en périphérie. Documentez un seul retour arrière : révision précédente du fichier env et fragment d’unité précédent. La persistance diffère de launchd sur macOS ; pour un modèle mental côte à côte lorsque vous opérez aussi des Mac dans le nuage, lisez Déployer OpenClaw sur un Mac cloud en 2026 : validations macOS face à un VPS Linux, persistance launchd et FAQ de dépannage reproductible.

Test de fumée après ajout d’un profil

Avant d’annoncer à l’équipe un nouvel écoute Gateway opérationnel, enchaînez trois paliers pour garder les tickets courts. D’abord, vérifiez avec ss -lntp que seuls les sockets prévus sont ouverts et que chaque PID correspond à l’unité attendue via systemctl status. Ensuite, appelez la ligne loopback de la matrice avec curl sur un chemin de santé ou de version que votre Gateway expose, pas seulement la racine. Enfin, testez le nom public derrière le reverse proxy et comparez les en-têtes de réponse à la sonde loopback directe — un décalage signifie presque toujours une dérive de port amont, pas le TLS.

Échelon loopback (adapter ports et chemins)
ss -lntp | grep -E '18789|18790|18791'
curl -svS http://127.0.0.1:18789/health
curl -svS https://prod-gateway.example.com/health

Lorsque tout semble « sain » mais que la mauvaise automatisation part, comparez l’environnement effectif vu par l’unité : systemctl show pour le bloc service, puis confrontez au fichier env versionné. La dérive silencieuse après retouches manuelles sur l’hôte est la principale raison pour laquelle dépôt et machine vivante divergent au bout d’un mois d’astreinte.

FAQ : conflits que nous déboguons en parallèle

« Address already in use » après reboot — une session utilisateur résiduelle a laissé une seconde copie hors systemd ; utilisez ss -lntp et rattachez les PID aux unités. Le mauvais bot répond en préproduction — chemin de fichier de jeton réutilisé ; grepez les unités pour des EnvironmentFile dupliqués. Un profil remplit le disque du VPS — quota ou rotation des journaux par OPENCLAW_STATE_DIR, pas globalement. HTTPS ne fonctionne que pour un nom d’hôte — le bloc amont du proxy pointe vers la mauvaise ligne de port loopback ; corrigez la matrice, pas ACME.

Linux pour les passerelles, Mac cloud pour la boucle complète

Des profils OpenClaw parallèles sur un VPS Linux s’alignent naturellement sur une faible conso à vide, des IP statiques et un cycle de vie systemd prévisible — les mêmes raisons qui poussent les équipes à colocaliser bots toujours actifs et charges en rafale. Quand l’autre moitié du flux exige Xcode, la signature ou des CLI Apple-only, un Mac mini cloud VPSSpark offre macOS natif avec l’ergonomie Unix : Homebrew, SSH et conteneurs sans les frictions fréquentes sur Windows, tandis que la mémoire unifiée Apple Silicon évite que les builds interactifs ne saturent.

La stabilité de macOS, Gatekeeper et SIP limitent les surprises par rapport aux postes ad hoc, et l’idle d’environ 4W du Mac mini M4 rend raisonnable une machine d’appoint toujours allumée à côté de votre VPS.

Si vous séparez passerelles Linux permanentes et travail réservé à Apple, le Mac mini M4 cloud VPSSpark fait office de pont pratique — découvrez les offres et gardez les deux moitiés de la pile sur des bases solides.

Offre limitée

Profils Linux parallèles câblés — un Mac cloud pour la suite ?

Associez un petit VPS au Mac mini M4 VPSSpark pour la signature, Xcode et la CI en rafale

Retour à l'accueil
Offre limitée Voir les offres