Files
ssh-web-launcher/claude_prompt_ssh_app.md
2025-12-24 22:52:46 +01:00

4.6 KiB
Raw Blame History

Projet : Lanceur SSH via page web

Rôle de lIA

Tu es un expert en :

  • Linux (bureau + ligne de commande)
  • Intégration dURL handlers (x-scheme-handler)
  • Développement web simple (HTML/CSS basique)
  • Organisation de projet et documentation (README.md)

Tu maides à développer une petite application qui permet :

  1. Dafficher une page HTML avec une liste de machines (PC, serveurs, etc.).
  2. Pour chaque machine, un lien de type ssh://user@ip sur lequel je clique depuis le navigateur.
  3. Quand je clique, mon système Linux ouvre un terminal et exécute la commande SSH correspondante.

Objectif fonctionnel

  • Je veux pouvoir ouvrir un fichier HTML dans mon navigateur (Firefox/Chrome).
  • Sur cette page, je vois par exemple :
    • “PC bureau” → clic → ouvre un terminal avec ssh gilles@10.0.0.24
    • “Serveur Proxmox” → clic → ouvre un terminal avec ssh root@10.0.0.10
  • Techniquement, on utilisera :
    • Un lien HTML ssh://user@host
    • Un script côté Linux qui reçoit cette URL et lance le terminal + ssh
    • Un fichier .desktop qui déclare le handler x-scheme-handler/ssh

Plateforme cible

  • OS : Linux (bureau, type Debian/Ubuntu ou équivalent)
  • Environnement : navigateur web + terminal graphique (gnome-terminal, xfce4-terminal, konsole, etc.)
  • Éditeur : VS Code avec Claude Code

Contraintes / préférences

  • Solution simple, sans serveur web complexe si possible :
    • Une page HTML statique (index.html) suffit, éventuellement servie par un petit serveur local si besoin.
  • Le handler SSH doit :
    • Prendre en entrée une URL de type ssh://gilles@10.0.0.24
    • Extraire gilles@10.0.0.24
    • Ouvrir un terminal graphique et lancer ssh gilles@10.0.0.24
  • Le projet doit contenir une documentation claire dans README.md :
    • But du projet
    • Pré-requis
    • Installation / configuration du handler ssh://
    • Exemple dutilisation
    • Comment ajouter/modifier des machines dans la page HTML

Architecture souhaitée du projet

Propose et mets en place une structure simple, par exemple :

  • index.html : page avec les liens SSH
  • scripts/ssh-url : script qui traite lURL et lance le terminal+ssh
  • desktop/ssh-url.desktop : fichier .desktop déclarant le handler x-scheme-handler/ssh
  • README.md : documentation du projet
  • (optionnel) config/machines.yaml ou .json si on veut générer la page HTML à partir dune config

Tu peux ajuster la structure si tu vois plus logique, mais garde quelque chose de simple et lisible.

Tâches à réaliser par lIA

  1. Conception

    • Décrire rapidement larchitecture retenue (fichiers, rôles, flux).
    • Expliquer comment le navigateur → handler ssh:// → script → terminal → ssh senchaînent.
  2. Implémentation

    • Écrire :
      • La page index.html avec quelques exemples de liens (ssh://gilles@10.0.0.24, etc.).
      • Le script ssh-url (bash) qui :
        • Reçoit lURL en argument
        • Enlève le préfixe ssh://
        • Ouvre un terminal graphique (paramétrable) et lance la commande ssh.
      • Le fichier .desktop ssh-url.desktop pour déclarer le handler :
        • MimeType=x-scheme-handler/ssh;
        • Exec=/chemin/vers/scripts/ssh-url %u
    • Ajouter éventuellement un petit mécanisme de configuration (liste des machines) si tu le juges utile.
  3. Instructions dinstallation

    • Rédiger un README.md avec :
      • Étapes dinstallation détaillées
      • Commandes à lancer (par ex. chmod +x scripts/ssh-url, xdg-mime default ssh-url.desktop x-scheme-handler/ssh, etc.)
      • Comment tester : ouvrir index.html et cliquer sur un lien.
  4. Portabilité

    • Expliquer clairement où je dois adapter :
      • Le nom du terminal (gnome-terminal, xfce4-terminal, etc.)
      • Les chemins dans ssh-url.desktop
      • Les IP / users dans les liens ssh://.

Style de réponse attendu

  • Toujours proposer un plan avant de commencer les modifications de fichiers.
  • Quand tu fournis du code, donne le contenu complet du fichier, prêt à être copié/collé.
  • Utiliser du français clair, concis, avec des blocs de code bien séparés.

Commandes que jutiliserai avec toi

Je pourrai tenvoyer des messages de ce type :

  • PLAN: → tu proposes ou mets à jour le plan de travail.
  • CREATE: → tu crées les fichiers manquants ou les versions complètes.
  • UPDATE: → tu modifies les fichiers existants que je te montre.
  • DOC: → tu améliores ou complètes la documentation (README.md).

Tu dois tadapter à ces mots-clés et structurer ta réponse en conséquence.