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

237 lines
6.2 KiB
Markdown

# SSH Launcher
Lanceur SSH et services via une extension GNOME Shell et une application GTK.
Permet d'accéder rapidement à vos machines depuis la barre GNOME.
## Fonctionnalités
- Icône dans la barre supérieure GNOME
- Popup avec liste des équipements et services
- Configuration via fichier YAML
- Support SSH, HTTP, HTTPS, VNC...
- Page HTML standalone alternative
## Architecture
```
┌─────────────────────────────────────────────────────────┐
│ GNOME Shell │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Extension (icône barre) ──► App GTK + WebKit │ │
│ └─────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ config/equipements.yaml │
│ │ │
│ ▼ │
│ Interface HTML dynamique │
│ │ │
│ ▼ │
│ Clic ──► Handler système ──► Terminal/App │
└─────────────────────────────────────────────────────────┘
```
## Structure du projet
```
ssh-web-launcher/
├── config/
│ └── equipements.yaml # Configuration des machines
├── extension/
│ ├── metadata.json # Métadonnées extension GNOME
│ ├── extension.js # Code de l'extension
│ └── stylesheet.css # Style de l'icône
├── app/
│ ├── ssh-launcher-gtk.py # Application GTK4 + WebKit
│ └── ssh-launcher-gtk.desktop
├── scripts/
│ ├── ssh-url # Handler SSH
│ └── install.sh # Script d'installation
├── desktop/
│ └── ssh-url.desktop # Handler SSH .desktop
├── index.html # Page standalone
└── README.md
```
## Prérequis
- GNOME Shell 42+
- Python 3
- GTK3 et WebKit2 4.1
### Installation des dépendances (Debian/Ubuntu)
```bash
sudo apt install python3 python3-gi python3-yaml \
gir1.2-gtk-3.0 gir1.2-webkit2-4.1
```
## Installation rapide
```bash
./scripts/install.sh
```
Le script :
1. Vérifie les dépendances
2. Configure les chemins
3. Installe le handler SSH
4. Installe l'extension GNOME Shell
### Activer l'extension
Après installation, redémarrez GNOME Shell (Alt+F2 → `r` → Entrée) puis :
```bash
gnome-extensions enable ssh-launcher@local
```
Ou utilisez l'application "Extensions" / "Extension Manager".
## Installation manuelle
### 1. Rendre les scripts exécutables
```bash
chmod +x scripts/ssh-url
chmod +x scripts/install.sh
chmod +x app/ssh-launcher-gtk.py
```
### 2. Installer le handler SSH
```bash
cp desktop/ssh-url.desktop ~/.local/share/applications/
xdg-mime default ssh-url.desktop x-scheme-handler/ssh
update-desktop-database ~/.local/share/applications/
```
### 3. Installer l'extension GNOME
```bash
mkdir -p ~/.local/share/gnome-shell/extensions/ssh-launcher@local
cp extension/* ~/.local/share/gnome-shell/extensions/ssh-launcher@local/
```
Redémarrez GNOME Shell et activez l'extension.
## Configuration
Éditez `config/equipements.yaml` pour ajouter vos machines :
```yaml
equipements:
- nom: "Mon Serveur"
ip: "192.168.1.100"
categorie: "Serveurs"
services:
- nom: "SSH"
icon: "utilities-terminal"
url: "ssh://admin@192.168.1.100"
- nom: "Web"
icon: "web-browser"
url: "https://192.168.1.100"
```
### Icônes disponibles
| Icône | Nom |
|-------|-----|
| 💻 | `utilities-terminal` |
| 🌐 | `web-browser` |
| ⚙️ | `applications-system` |
| 🖥️ | `preferences-desktop-remote-desktop` |
| 🔒 | `security-high` |
| 🏠 | `go-home` |
| 🖧 | `network-server` |
## Test
### Tester l'application GTK directement
```bash
python3 app/ssh-launcher-gtk.py
```
### Tester le handler SSH
```bash
./scripts/ssh-url "ssh://user@localhost"
```
### Tester la page standalone
```bash
firefox index.html
```
## Dépannage
### L'extension n'apparaît pas
1. Vérifiez que GNOME Shell est redémarré
2. Vérifiez l'activation :
```bash
gnome-extensions list
gnome-extensions enable ssh-launcher@local
```
### Erreur WebKit / écran noir
Si vous avez des erreurs GPU (GBM, DRM), l'application désactive automatiquement
l'accélération matérielle. Si le problème persiste, lancez avec :
```bash
WEBKIT_DISABLE_COMPOSITING_MODE=1 python3 app/ssh-launcher-gtk.py
```
### Le handler SSH ne fonctionne pas
```bash
xdg-mime query default x-scheme-handler/ssh
# Doit retourner : ssh-url.desktop
```
### Logs de l'extension
```bash
journalctl -f -o cat /usr/bin/gnome-shell
```
## Désinstallation
```bash
# Extension GNOME
rm -rf ~/.local/share/gnome-shell/extensions/ssh-launcher@local
# Applications
rm ~/.local/share/applications/ssh-url.desktop
rm ~/.local/share/applications/ssh-launcher-gtk.desktop
update-desktop-database ~/.local/share/applications/
```
## Utilisation standalone (sans extension)
La page `index.html` peut être utilisée indépendamment :
```bash
firefox index.html
```
Elle nécessite uniquement le handler SSH (`ssh-url.desktop`).
## Mini-apps
Le dossier `app/tools/` contient des petits outils autonomes comme `color-picker` : lancez-les via
```bash
python3 app/tools/color-picker/color_picker.py
```
Le script `run_color_picker.py` sert uniquement pour les essais côté navigateur (il démarre un mini-serveur local).
Le dashboard peut aussi démarrer ces scripts via la section `minitools` (voir `config/equipements.yaml`).
## Licence
Libre d'utilisation et de modification.