Windows-Support, Build-Skripte und Installer fuer PulseGate Desktop
Build Windows / build (push) Has been cancelled

- Python-App cross-platform: %APPDATA%-Konfiguration, Terminal-Erkennung
  (wt/cmd/powershell), Windows-kompatibler SSH-Start, Segoe-UI-Fonts
- App-Icon (ICO/PNG) mit Skript ohne externe Abhaengigkeiten
- PyInstaller-Build (build_windows.bat) und Inno-Setup-Installer
- Gitea-Actions-Workflow fuer automatischen Windows-Build
- requirements.txt, .gitignore, README aktualisiert; __pycache__ entfernt
This commit is contained in:
2026-09-06 22:28:55 +00:00
parent dcafc1e7c1
commit 3f20bc392c
12 changed files with 392 additions and 63 deletions
+58 -26
View File
@@ -1,6 +1,8 @@
# 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.
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
@@ -15,29 +17,35 @@ PulseGate Desktop ist eine grafische Desktop-Variante des PulseGate SSH Managers
## Voraussetzungen
- Linux Desktop-Umgebung
### Linux
- Python 3 mit `tkinter`
- Python-Paket `PyYAML`
- `ssh`
- ein unterstützter Terminal-Emulator:
- `kitty`
- `alacritty`
- `konsole`
- `gnome-terminal`
- `xfce4-terminal`
- `xterm`
- `kitty`, `alacritty`, `konsole`, `gnome-terminal`, `xfce4-terminal` oder `xterm`
Für die optionale Web-Variante wird zusätzlich Go benötigt.
### 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:
```bash
cd /home/pascal/Projekte/PulseGate-GUI
./pulsegate-desktop
```
Direkt mit Python:
```bash
python3 desktop/pulsegate_desktop.py
```
Optional kann ein eigener Config-Pfad übergeben werden:
```bash
@@ -48,9 +56,8 @@ Optional kann ein eigener Config-Pfad übergeben werden:
Standardmäßig liest und schreibt PulseGate Desktop diese Datei:
```text
~/.config/pulsegate/config.yaml
```
- Linux: `~/.config/pulsegate/config.yaml`
- Windows: `%APPDATA%\pulsegate\config.yaml`
Beispiel:
@@ -77,31 +84,56 @@ quick_commands:
command: df -h
```
## Windows-Build und Installer
Auf einem Windows-Rechner:
1. Build der EXE (erzeugt `dist\PulseGate.exe`):
```bat
build_windows.bat
```
2. Installer kompilieren – Inno Setup 6 öffnen mit:
```text
installer\installer.iss
```
oder per Kommandozeile:
```bat
iscc installer\installer.iss
```
Ergebnis: `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 noch eine einfache lokale Web-Variante:
Im Projekt liegt zusätzlich eine optionale lokale Web-Variante:
```bash
go run ./cmd/pulsegate-gui
```
Danach öffnen:
```text
http://127.0.0.1:8090
```
Danach öffnen: `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
├── 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
├── go.mod
├── pulsegate-desktop # Launcher für die Desktop-App
├── build_windows.bat # Windows-EXE-Build (PyInstaller)
├── requirements.txt # Laufzeit-Abhängigkeiten
├── requirements-build.txt # Build-Abhängigkeiten
├── pulsegate-desktop # Linux-Launcher
└── README.md
```
@@ -121,4 +153,4 @@ go test ./...
## Hinweis
Die Desktop-App startet SSH in einem separaten lokalen Terminal-Fenster. Passwortabfragen und interaktive SSH-Sessions laufen dort direkt im Terminal.
Die Desktop-App startet SSH in einem separaten lokalen Terminal-Fenster. Passwortabfragen und interaktive SSH-Sessions laufen dort direkt im Terminal.