Changed Project Name to Pulsegate
+added README.MD
This commit is contained in:
233
README.md
Normal file
233
README.md
Normal file
@@ -0,0 +1,233 @@
|
||||
# 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.
|
||||
|
||||

|
||||
|
||||
## 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
|
||||
```
|
||||
|
||||
## Screenshot austauschen
|
||||
|
||||
Der enthaltene Screenshot ist ein Beispielbild.
|
||||
Einen echten Screenshot kannst du unter Hyprland z. B. mit `grim` erstellen:
|
||||
|
||||
```bash
|
||||
grim -g "$(slurp)" pulsegate_screenshot.png
|
||||
```
|
||||
|
||||
Oder mit einem anderen Screenshot-Tool deiner Wahl.
|
||||
Lege die Datei anschließend neben die README:
|
||||
|
||||
```text
|
||||
README.md
|
||||
pulsegate_screenshot.png
|
||||
```
|
||||
|
||||
## 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`
|
||||
- Health Checks mit SSH-Login-Test
|
||||
- Quick Commands pro Servergruppe
|
||||
Reference in New Issue
Block a user