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

107 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.