- Quick Commands lokal oder via SSH auf dem ausgewaehlten Server starten - Server duplizieren, SSH-Befehl in die Zwischenablage kopieren - Erreichbarkeits-Check pro Server (TCP, Thread-basiert) mit Statuspunkt - Gruppenfilter-Chips in der Sidebar - Themes: neon-green, ocean-blue, sunset-orange, cyber-purple - Doppelklick verbindet, Rechtsklick-Kontextmenue, Shortcuts F5/Ctrl+N/Ctrl+S - Quick-Commands-Seite mit Buttons, About-Dialog, Config-Ordner oeffnen - Version 1.1.0
3.9 KiB
PulseGate Desktop
PulseGate Desktop ist eine grafische Desktop-App zur Verwaltung von SSH-Servern. Die App nutzt eine YAML-Konfiguration, listet und verwaltet Server, zeigt SSH-Befehle an und startet Verbindungen im lokalen Terminal-Emulator.
Läuft nativ auf Linux und Windows. Für Windows liegt ein fertiger Installer-Build (PyInstaller + Inno Setup) bei.
Features
- Desktop-UI ohne Browser
- Serverliste mit Suche
- Server hinzufügen, bearbeiten, duplizieren und löschen
- Gruppenfilter in der Sidebar
- SSH-Verbindung per Button, per Doppelklick oder über das Kontextmenü starten
- Erreichbarkeits-Check pro Server (TCP-Ping)
- SSH-Befehl pro Server anzeigen und in die Zwischenablage kopieren
- Quick Commands ausführbar – lokal oder via SSH auf dem ausgewählten Server
- Konfigurierbare Themes (neon-green, ocean-blue, sunset-orange, cyber-purple)
- Tastenkürzel: F5 neu laden, Ctrl+N neuer Server, Ctrl+S speichern
- Terminal-Settings verwalten, Config-Ordner direkt öffnen
- Gemeinsame Konfiguration mit PulseGate TUI
Voraussetzungen
Linux
- Python 3 mit
tkinter - Python-Paket
PyYAML ssh- ein unterstützter Terminal-Emulator:
kitty,alacritty,konsole,gnome-terminal,xfce4-terminaloderxterm
Windows
- Windows 10/11 (OpenSSH-Client ist standardmäßig integriert)
- Optionale Terminal-Emulatoren (werden in dieser Reihenfolge erkannt):
wt(Windows Terminal)cmd(Fallback, immer verfügbar)powershell
- Für den Installer-Build zusätzlich: Python 3 + Inno Setup 6
Start
Desktop-App starten:
./pulsegate-desktop
Direkt mit Python:
python3 desktop/pulsegate_desktop.py
Optional kann ein eigener Config-Pfad übergeben werden:
./pulsegate-desktop /pfad/zur/config.yaml
Konfiguration
Standardmäßig liest und schreibt PulseGate Desktop diese Datei:
- Linux:
~/.config/pulsegate/config.yaml - Windows:
%APPDATA%\pulsegate\config.yaml
Beispiel:
settings:
theme: neon-green
terminal:
term: xterm-256color
enable_kitty_fix: true
servers:
- name: Unraid
host: 10.0.0.15
user: root
port: 22
group: Homelab
auth: password
key: ""
password_id: unraid-root
kitty_fix: true
quick_commands:
- name: Disk Usage
command: df -h
Windows-Build und Installer
Auf einem Windows-Rechner:
-
Build der EXE (erzeugt
dist\PulseGate.exe):build_windows.bat -
Installer kompilieren – Inno Setup 6 öffnen mit:
installer\installer.issoder per Kommandozeile:
iscc installer\installer.issErgebnis:
installer\output\PulseGate-Setup-1.0.0.exe
Alternativ wird bei einem Tag v* (z. B. git tag v1.0.0 && git push --tags) automatisch per Gitea Actions ein Windows-Build inklusive Installer erstellt.
Web-Variante
Im Projekt liegt zusätzlich eine optionale lokale Web-Variante:
go run ./cmd/pulsegate-gui
Danach öffnen: http://127.0.0.1:8090
Projektstruktur
.
├── cmd/pulsegate-gui/ # optionale Go-Webvariante
├── desktop/ # Python/Tk Desktop-App (Linux + Windows)
├── installer/ # Inno Setup Installer-Skript
├── assets/ # App-Icon
├── scripts/ # Icon-Generierung
├── web/ # optionale Web-Oberfläche
├── build_windows.bat # Windows-EXE-Build (PyInstaller)
├── requirements.txt # Laufzeit-Abhängigkeiten
├── requirements-build.txt # Build-Abhängigkeiten
├── pulsegate-desktop # Linux-Launcher
└── README.md
Entwicklung
Python-Syntax prüfen:
python3 -m py_compile desktop/pulsegate_desktop.py
Go-Code prüfen:
go test ./...
Hinweis
Die Desktop-App startet SSH in einem separaten lokalen Terminal-Fenster. Passwortabfragen und interaktive SSH-Sessions laufen dort direkt im Terminal.