Files
PulseGate/README.md
2026-05-03 03:08:05 +02:00

215 lines
3.9 KiB
Markdown

# PulseGate
**PulseGate** ist ein neon-inspiriertes SSH Control Center als TUI-Anwendung für dein Terminal.
Die App verwaltet gespeicherte Server, unterstützt Key- und Passwort-Login, Quick Commands, Statuschecks und Kitty/TERM-Fixes für saubere SSH-Sessions unter Hyprland/Kitty.
![PulseGate Screenshot](./pulsegate_screenshot.png)
## Features
- Server aus `config.yaml` laden
- Server hinzufügen, bearbeiten und löschen
- SSH-Verbindung per Key oder Passwort
- Passwortspeicherung über den Linux-Keyring
- Quick Commands pro ausgewähltem Server ausführen
- Command-Output in der TUI anzeigen
- SSH-Port-Statuscheck mit Refresh
- Kitty-Fix über `TERM=xterm-256color`
- Vollbild-TUI mit Navigation, Settings und Help-View
## Voraussetzungen
### Arch / CachyOS
```bash
sudo pacman -S go git sshpass gnome-keyring libsecret seahorse
```
Optional, aber empfohlen:
```bash
sudo pacman -S openssh
```
## Installation
Repository klonen oder Projektordner öffnen:
```bash
cd ~/Projects/pulsegate
```
Go-Abhängigkeiten installieren:
```bash
go mod tidy
```
Falls du die Dependencies manuell installieren möchtest:
```bash
go get github.com/charmbracelet/bubbletea
go get github.com/charmbracelet/lipgloss
go get github.com/charmbracelet/bubbles/textinput
go get gopkg.in/yaml.v3
go get github.com/99designs/keyring
go get golang.org/x/term
```
## Konfiguration
Lege im Projektordner eine `config.yaml` an:
```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
password_id: unraid-root
kitty_fix: true
- name: Webhost
host: 10.0.0.23
user: administrator
port: 22
group: Homelab
auth: key
key: ~/.ssh/id_ed25519
kitty_fix: true
quick_commands:
- name: Docker PS
command: docker ps
- name: Disk Usage
command: df -h
- name: RAM Usage
command: free -h
- name: Uptime
command: uptime
```
## Starten
Während der Entwicklung:
```bash
go run .
```
Als Binary bauen:
```bash
go build -o pulsegate
./pulsegate
```
Optional global installieren:
```bash
sudo cp pulsegate /usr/local/bin/
pulsegate
```
## Bedienung
| Taste | Funktion |
|---|---|
| `↑` / `↓` oder `k` / `j` | Auswahl bewegen |
| `Enter` | Server verbinden oder Command ausführen |
| `a` | Server hinzufügen |
| `e` | Server bearbeiten |
| `d` | Server löschen |
| `c` | Quick Commands öffnen |
| `r` | SSH-Port-Status aktualisieren |
| `Tab` | Ansicht wechseln |
| `s` | Settings öffnen |
| `h` | Hilfe öffnen |
| `q` | Zurück oder beenden |
## Passwort-Login
PulseGate speichert Passwörter nicht in der `config.yaml`, sondern über den Linux-Keyring.
Beim ersten Verbindungsaufbau mit `auth: password` fragt PulseGate nach dem Passwort und speichert es unter der angegebenen `password_id`.
Beispiel:
```yaml
auth: password
password_id: unraid-root
```
Zum Anzeigen oder Löschen gespeicherter Passwörter kannst du Seahorse verwenden:
```bash
seahorse
```
Dort nach `pulsegate` oder der jeweiligen `password_id` suchen.
## SSH-Key-Login
Beispielkonfiguration:
```yaml
auth: key
key: ~/.ssh/id_ed25519
```
Public Key auf den Server kopieren:
```bash
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server-ip
```
## Kitty / TERM Fix
Wenn du über Kitty per SSH auf Server gehst, kann es zu Fehlern kommen wie:
```text
Error opening terminal: xterm-kitty
```
PulseGate kann für solche Server automatisch setzen:
```bash
TERM=xterm-256color
```
Aktivierung global:
```yaml
settings:
terminal:
term: xterm-256color
enable_kitty_fix: true
```
Aktivierung pro Server:
```yaml
kitty_fix: true
## Roadmap
Mögliche nächste Features:
- Suche und Filter mit `/`
- Scrollbarer Command-Output
- Servergruppen / Tags
- Import aus `~/.ssh/config`
- Passwort ändern/löschen direkt in der TUI
- Themes wie `neon-green`, `neon-cyan`, `orange-authentik`
- Quick Commands pro Servergruppe