237 lines
6.2 KiB
Markdown
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.
|