vps-ops
Skill0 starsChanged 3 months agoMITView on GitHub
Diagnostiquer un serveur distant via les wrappers claude-ops (ops-status, ops-logs, ops-inspect). À utiliser pour tout état serveur, conteneur en panne, log applicatif ou incident de production. Ne jamais contourner un refus de ces commandes.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- goldenprofile/llm-skillstheir own version, first seen Aug 12, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- goldenprofile/llm-skills★ 3same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository3 other files it gives its agents.
- ios-restoreSkill
- questionnaireSkill
- recette-etapeSkill
The file
Files
Diagnostic du serveur via claude-ops
Le serveur est accessible par un compte SSH volontairement limité. Ce compte ne peut exécuter que trois commandes, en lecture seule. Il n'a ni accès docker direct, ni shell root, ni droit d'écriture.
Commandes disponibles
ssh ovh-ops 'sudo ops-status' # état global : conteneurs, disque, mémoire, charge
ssh ovh-ops 'sudo ops-logs <service> [lignes]' # logs d'un conteneur (1-2000, défaut 100)
ssh ovh-ops 'sudo ops-inspect <service>' # état, healthcheck, réseau, sockets, montages<service> doit figurer dans l'allowlist du serveur. ops-status la contourne par nature :
il liste tous les conteneurs, sans jamais lire leur contenu.
Face à un refus
C'est la règle la plus importante de ce document.
ops: service non autorisé : coolify-dbUn refus est une information de conception, pas un obstacle technique. Il signifie que ce service a été délibérément écarté — le plus souvent parce que ses logs contiennent des identifiants, des jetons ou des données personnelles.
À faire : rapporter le refus, expliquer ce qu'on cherchait, et proposer un autre angle.
À ne jamais faire :
- se rabattre sur un compte SSH plus privilégié pour obtenir le même résultat ;
- suggérer d'ajouter le service à l'allowlist « juste pour ce diagnostic » ;
- chercher un chemin détourné (un autre conteneur qui monterait le même volume, un binaire équivalent, une commande qui produirait la même sortie).
Contourner la limite, c'est supprimer la seule chose qui la rend utile. Si l'accès manque vraiment, cela se décide hors incident, en modifiant l'allowlist ou en ajoutant un wrapper — avec le raisonnement de sécurité qui va avec.
Méthode de diagnostic
ops-statusd'abord. Vue d'ensemble, aucun argument, aucun risque de se tromper de cible.ops-inspectensuite si un conteneur est suspect. Il donne l'état, le healthcheck avec son nombre d'échecs consécutifs, et les sockets réellement en écoute.ops-logsen dernier. Les logs sont le réflexe naturel et souvent le plus trompeur : une application saine y écrit des erreurs, une application cassée peut n'y rien écrire.
Trois pièges de lecture
Corrélation temporelle. Une erreur dans les logs n'explique un incident que si sa fréquence colle. Des erreurs espacées de plusieurs jours n'expliquent pas un état dégradé permanent.
Le compteur d'échecs consécutifs. Rapporté à l'intervalle du healthcheck, il date le début réel du problème. S'il couvre toute la durée de vie du conteneur, la sonde n'a jamais fonctionné : ce n'est pas une panne, c'est une erreur de configuration d'origine.
unhealthy ≠ en panne. Le healthcheck peut être faux. Vérifier ce que la sonde
interroge, puis ce que le service écoute réellement — un service lié à 0.0.0.0 n'écoute
qu'en IPv4, et une sonde visant localhost peut résoudre en ::1 et échouer alors que tout
va bien.
Les secrets
Les sorties passent par un filtre de redaction, et ops-inspect n'expose qu'une liste
blanche de champs — les variables d'environnement ne sortent jamais du serveur.
Ce filtre attrape les formes courantes, pas un secret arbitraire. Ne jamais recopier une sortie brute dans un ticket, un message ou un rapport sans l'avoir relue.
Portée de ce document
Ces consignes sont une aide, pas une sécurité.
Elles vivent du côté client, c'est-à-dire du même côté que ce dont on se protège. Un agent manipulé — par une ligne de log formulée comme une instruction, par exemple — les ignorerait sans difficulté.
La véritable frontière est côté serveur : les wrappers valident en root, l'allowlist refuse d'elle-même, et rien de ce qui est écrit ici ne peut l'assouplir. Ce document sert à éviter les erreurs de bonne foi et les tentatives de contournement bien intentionnées. Il ne sert à rien d'autre, et ne doit pas être présenté autrement.
Voir docs/threat-model.md et docs/anti-patterns.md (nº 7) pour le raisonnement complet.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

