125 lines
2.4 KiB
Markdown
125 lines
2.4 KiB
Markdown
# PulseGate Desktop
|
|
|
|
PulseGate Desktop ist eine grafische Desktop-Variante des PulseGate SSH Managers. Die App verwaltet SSH-Server, nutzt dieselbe YAML-Konfiguration wie die bestehende TUI und startet Verbindungen in einem lokalen Terminal-Emulator.
|
|
|
|
## Features
|
|
|
|
- Desktop-UI ohne Browser
|
|
- Serverliste mit Suche
|
|
- Server hinzufügen, bearbeiten und löschen
|
|
- SSH-Verbindung per Button starten
|
|
- SSH-Befehl pro Server anzeigen
|
|
- Terminal-Settings verwalten
|
|
- Quick Commands anzeigen
|
|
- Gemeinsame Konfiguration mit PulseGate TUI
|
|
|
|
## Voraussetzungen
|
|
|
|
- Linux Desktop-Umgebung
|
|
- Python 3 mit `tkinter`
|
|
- Python-Paket `PyYAML`
|
|
- `ssh`
|
|
- ein unterstützter Terminal-Emulator:
|
|
- `kitty`
|
|
- `alacritty`
|
|
- `konsole`
|
|
- `gnome-terminal`
|
|
- `xfce4-terminal`
|
|
- `xterm`
|
|
|
|
Für die optionale Web-Variante wird zusätzlich Go benötigt.
|
|
|
|
## Start
|
|
|
|
Desktop-App starten:
|
|
|
|
```bash
|
|
cd /home/pascal/Projekte/PulseGate-GUI
|
|
./pulsegate-desktop
|
|
```
|
|
|
|
Optional kann ein eigener Config-Pfad übergeben werden:
|
|
|
|
```bash
|
|
./pulsegate-desktop /pfad/zur/config.yaml
|
|
```
|
|
|
|
## Konfiguration
|
|
|
|
Standardmäßig liest und schreibt PulseGate Desktop diese Datei:
|
|
|
|
```text
|
|
~/.config/pulsegate/config.yaml
|
|
```
|
|
|
|
Beispiel:
|
|
|
|
```yaml
|
|
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
|
|
```
|
|
|
|
## Web-Variante
|
|
|
|
Im Projekt liegt zusätzlich noch eine einfache lokale Web-Variante:
|
|
|
|
```bash
|
|
go run ./cmd/pulsegate-gui
|
|
```
|
|
|
|
Danach öffnen:
|
|
|
|
```text
|
|
http://127.0.0.1:8090
|
|
```
|
|
|
|
## Projektstruktur
|
|
|
|
```text
|
|
.
|
|
├── cmd/pulsegate-gui/ # optionaler Go-Webserver
|
|
├── desktop/ # Python/Tk Desktop-App
|
|
├── internal/config/ # Go-Konfigurationslogik
|
|
├── internal/models/ # Go-Datenmodelle
|
|
├── web/ # optionale Web-Oberfläche
|
|
├── go.mod
|
|
├── pulsegate-desktop # Launcher für die Desktop-App
|
|
└── README.md
|
|
```
|
|
|
|
## Entwicklung
|
|
|
|
Python-Syntax prüfen:
|
|
|
|
```bash
|
|
python3 -m py_compile desktop/pulsegate_desktop.py
|
|
```
|
|
|
|
Go-Code prüfen:
|
|
|
|
```bash
|
|
go test ./...
|
|
```
|
|
|
|
## Hinweis
|
|
|
|
Die Desktop-App startet SSH in einem separaten lokalen Terminal-Fenster. Passwortabfragen und interaktive SSH-Sessions laufen dort direkt im Terminal.
|