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
156 lines
3.5 KiB
Markdown
156 lines
3.5 KiB
Markdown
# 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 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
|
||
- Python 3 mit `tkinter`
|
||
- Python-Paket `PyYAML`
|
||
- `ssh`
|
||
- ein unterstützter Terminal-Emulator:
|
||
- `kitty`, `alacritty`, `konsole`, `gnome-terminal`, `xfce4-terminal` oder `xterm`
|
||
|
||
### 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
|
||
./pulsegate-desktop
|
||
```
|
||
|
||
Direkt mit Python:
|
||
|
||
```bash
|
||
python3 desktop/pulsegate_desktop.py
|
||
```
|
||
|
||
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:
|
||
|
||
- Linux: `~/.config/pulsegate/config.yaml`
|
||
- Windows: `%APPDATA%\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
|
||
```
|
||
|
||
## 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 eine optionale lokale Web-Variante:
|
||
|
||
```bash
|
||
go run ./cmd/pulsegate-gui
|
||
```
|
||
|
||
Danach öffnen: `http://127.0.0.1:8090`
|
||
|
||
## Projektstruktur
|
||
|
||
```text
|
||
.
|
||
├── 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:
|
||
|
||
```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. |