113 Commits

Author SHA1 Message Date
cynfo3000
97eefcde5d fix: Kopieren auf HTTP nutzt execCommand-Fallback (clipboard API braucht HTTPS) 2026-03-10 00:07:47 +01:00
cynfo3000
5cc3476479 feat: Kunden-Seite zeigt API-Keys beim Aufklappen
- Klick auf Kundenzeile klappt Key-Panel auf
- Zeigt Agent + Read-only Keys mit Permission-Badge
- Key teilweise maskiert, Kopier-Button vorhanden
- Backend: GET /api/v1/customers/{id}/apikeys
- DB: ListCustomerAPIKeys() nach customer_id gefiltert
2026-03-10 00:06:16 +01:00
cynfo3000
fba824da8b fix: Agent-Key braucht 'agent' Permission, nicht 'read'
- Auto-Erstellung bei neuem Kunden: jetzt agent-Key + read-Key
- agent: fuer OPNsense/Linux Agents (WS + Heartbeat)
- read:  fuer externe Lesezugriffe / Dashboards
- Agent-Keys fuer alle 4 Kunden nachtraglich erstellt
2026-03-10 00:03:19 +01:00
cynfo3000
15ad9be8e7 feat: Auto Read-only API-Key bei Kunden-Erstellung
- createCustomer erstellt automatisch einen customer-scoped Read-only Key
- Response gibt Customer + neuen API-Key zurueck
- Bestehende 4 Kunden Keys nachtraglich erstellt
2026-03-09 23:56:47 +01:00
cynfo3000
f658f3c4db fix: deleteAPIKey this.del statt this.delete (JS-Fehler) 2026-03-09 23:55:45 +01:00
cynfo3000
ec30be7246 security: API-Key Permissions + Customer-Scoping
- DB Migration: api_keys bekommt 'permissions' + 'customer_id' Spalten
- Permissions: agent | read | write | admin
  - agent:  nur /api/v1/agent/ws + /api/v1/agent/heartbeat
  - read:   GET-Endpoints (optional customer-scoped)
  - write:  alles ausser Terminal
  - admin:  voll (Terminal bleibt JWT-only)
- Bestehende Keys werden auf 'admin' migriert (Abwaertskompatibilitaet)
- Frontend: API-Key Verwaltung zeigt Permissions-Badge + Kunden-Scope
- API-Client: createAPIKey nimmt jetzt permissions + customer_id
2026-03-09 23:52:26 +01:00
cynfo3000
91385b42d1 security: Terminal-Endpoint JWT-only (kein API-Key Zugriff)
- Neue JWTOnlyAuth Middleware: akzeptiert nur JWT, kein API-Key
- Terminal-Route aus allgemeinem CombinedAuth raus, eigener Mount
- API-Keys für Monitoring/Automation erlaubt, aber Terminal braucht
  echten Login mit User/Pass + 2FA
- ?token= Query-Param weiterhin erlaubt (Browser-WS kann kein Header setzen)
2026-03-09 23:44:12 +01:00
cynfo3000
e9a47bee26 fix: Terminal Auth per JWT-Token statt leerem API-Key
- TerminalModal nutzt jetzt JWT aus localStorage (api.getToken()) fuer WS-Auth
- Backend Middleware: ?token= Query-Parameter fuer WebSocket JWT-Auth
- Behebt: api_key= leer -> 401 -> Terminal nicht erreichbar
2026-03-09 23:39:38 +01:00
cynfo3000
358682e5f3 fix: Backend platform-aware Agent-Update (nicht mehr hardcoded freebsd) 2026-03-09 20:31:26 +01:00
cynfo3000
291d2e3c17 feat: VM/CT Start/Stop im Frontend + Agent proxmox_action Handler
- Agent: neuer 'proxmox_action' Command (start/stop/shutdown fuer VMs und LXC)
- Backend: POST /api/v1/agents/{id}/proxmox/action Endpoint
- Frontend: Start/Stop/Shutdown Buttons in VMs- und Container-Tab
  - Play (gruen) = starten (nur wenn gestoppt)
  - Power (gelb) = Graceful Shutdown (nur VMs, nur wenn running)
  - Stop (rot) = Hard Stop (wenn running)
- api/client.js: proxmoxAction() Methode
2026-03-09 20:22:45 +01:00
cynfo3000
4cd9764cec docs: config.example.js auf aktuelles Runtime-Config-Pattern gebracht 2026-03-09 19:11:58 +01:00
cynfo3000
682dd4183e docs: Debian 13 PostgreSQL-Versionskonflikt mit TimescaleDB dokumentiert
Debian 13 (Trixie) liefert PostgreSQL 17.8, TimescaleDB benoetigt >= 17.9.
Loesung: offizielles PostgreSQL-Apt-Repo (apt.postgresql.org/bookworm-pgdg)
statt Debian-eigene Pakete verwenden.
Fehlerbehebung fuer bestehende Installationen ebenfalls dokumentiert.
2026-03-08 21:14:18 +01:00
cynfo3000
e76f39e9f4 chore: linux binary zu .gitignore 2026-03-08 19:17:53 +01:00
cynfo3000
10684dfc0a feat: TOTP 2FA + diverse Verbesserungen
2FA (TOTP):
- backend/api/auth.go: zweistufiger Login-Flow mit Pending-Token (5min),
  Endpunkte /2fa/validate, /2fa/setup, /2fa/confirm, /2fa/disable
- backend/db/users.go: GetUserByID, SetTOTPSecret, EnableTOTP, DisableTOTP
- backend/db/postgres.go: Migration totp_secret + totp_enabled Spalten
- backend/models/user.go: TOTPEnabled/TOTPSecret Felder, neue Request-Typen
- backend/main.go: neue Routen registriert (/2fa/validate ohne Auth, rest geschuetzt)
- backend/go.mod+sum: github.com/pquerna/otp hinzugefuegt
- frontend/src/pages/Login.jsx: zweistufiger Login (Passwort -> TOTP)
- frontend/src/pages/SettingsPage.jsx: TwoFactorSection mit Setup/Deaktivieren
- frontend/src/stores/auth.js: validateTOTP Action
- frontend/src/api/client.js: setupTOTP, confirmTOTP, disableTOTP, validateTOTP

Weitere Aenderungen (unstaged -> jetzt committed):
- frontend/src/components/ScriptModal.jsx: neu
- frontend/src/components/AgentPanel.jsx: Erweiterungen
- frontend/src/components/ProxmoxPanel.jsx: Erweiterungen
- agent-linux/ws/handler.go: Erweiterungen
- backend/api/scheduler.go + tasks.go: Erweiterungen
- backend/db/tasks.go + models/task.go: Erweiterungen
2026-03-08 19:17:43 +01:00
cynfo3000
c76868e806 feat: Updates-Tab, Aufgaben-Tab ProxmoxPanel, security_only Tasks, 3x Netzwerk-Charts, Updates-Spalte Übersicht, dist-upgrade, DeleteAgent cascades metrics 2026-03-07 14:30:12 +01:00
cynfo3000
a51d1bb02f docs: Linux-Agent vollständige Command-Referenz (exec, reboot, tunnel, pty_start/stop/resize, agent_update, OTA-Prozess) 2026-03-07 00:43:33 +01:00
cynfo3000
879cf5cd28 feat: Web Terminal fuer FreeBSD/OPNsense-Agent (PTY Manager + pty_start/stop/resize Commands) 2026-03-07 00:40:17 +01:00
cynfo3000
b4caf498a0 feat: Web Terminal in OPNsense TunnelTab; README auf Multi-Platform aktualisiert (OPNsense + Linux/Proxmox) 2026-03-07 00:36:54 +01:00
cynfo3000
cb5922714c docs: Nginx-Config mit API-Proxy + WebSocket-Support, vite ws:true 2026-03-07 00:33:38 +01:00
cynfo3000
e44bd314e8 fix: Terminal WS ueber Nginx-Proxy statt direkt zum Backend (kein self-signed Cert Problem) 2026-03-07 00:30:59 +01:00
cynfo3000
257eee0c83 fix: HTTP/2 deaktivieren fuer WebSocket-Kompatibilitaet (Terminal WSS) 2026-03-07 00:29:07 +01:00
cynfo3000
fa623569f6 fix: copyToClipboard Fallback fuer HTTP-Kontext (navigator.clipboard nur HTTPS) 2026-03-07 00:26:42 +01:00
cynfo3000
73ff57eaf0 fix: Proxmox TunnelTab SSH-Copy identisch zu OPNsense (auto-copy + grüne Bestätigung + SSH-Button pro Tunnel) 2026-03-07 00:24:29 +01:00
cynfo3000
67a337ed9f feat: Web Terminal (xterm.js + PTY over WebSocket) + SSH-Copy-Karte im Tunnel-Tab 2026-03-07 00:20:03 +01:00
cynfo3000
3c83cf11de feat: PBS — Disk-Auslastung via df, laufende Tasks, Kacheln kleiner ohne Debian-Version 2026-03-07 00:08:01 +01:00
cynfo3000
6487c2cf59 fix: PBS Backup-Count robusteres find-Pattern fuer alle Namespace-Strukturen 2026-03-06 23:58:16 +01:00
cynfo3000
5995f2e9cc fix: PBS Backup-Anzahl via find statt snapshot-Befehl (existiert nicht in dieser PBS-Version) 2026-03-06 23:56:22 +01:00
cynfo3000
e565039743 fix: Linux-Agent Update — platform im Heartbeat mitschicken, Backend nutzt plattformspezifische Firmware statt hardcoded freebsd 2026-03-06 23:41:22 +01:00
cynfo3000
7ebbdc76cb fix: React.useState -> useState in PBSTab 2026-03-06 23:37:55 +01:00
cynfo3000
1204e05d0b feat: PBS Tab — Stat-Karten (Datastores/Backups/SyncJobs/Kernel) + neues Layout 2026-03-06 23:36:48 +01:00
cynfo3000
67651a5aeb feat: PBS Datastores — Backup-Anzahl, neues Layout mit GC/Verify/Prune Buttons 2026-03-06 23:34:43 +01:00
cynfo3000
a036849565 fix: hostname-basiertes Agent-Matching entfernt — gleiche Kurzhostnames (z.B. PVE-REP) bei verschiedenen Kunden bekamen dieselbe ID 2026-03-06 23:26:09 +01:00
cynfo3000
d54027047a fix: install.sh loescht alte agent_id bei Neuinstall — verhindert ID-Kollision bei geclonten Systemen 2026-03-06 23:19:20 +01:00
cynfo3000
474a396589 feat: PBS-Badge neben Hostname in Proxmox-Uebersicht 2026-03-06 23:11:13 +01:00
cynfo3000
c1d1bd8a5e feat: PBS Collector — automatische Erkennung, Datastores + Tasks + GC, Frontend-Tab 'Backup Server' 2026-03-06 23:02:54 +01:00
cynfo3000
a0fb6b465f fix: Linux Installationsanleitung auf /installer/download Endpoint und install-linux.sh umgestellt 2026-03-06 22:22:26 +01:00
cynfo3000
ae1a8617f5 fix: Linux install.sh erstellt (systemd, Debian/Proxmox), Makefile nutzt plattformspezifische install.sh 2026-03-06 22:20:20 +01:00
cynfo3000
9cb504fea1 feat: Interface-Durchsatz-Chart — Backend berechnet RX/TX-Rate (bps), Frontend zeigt Dual-Sparkline per Klick auf Interface 2026-03-06 22:00:33 +01:00
cynfo3000
eb5266f848 feat: Sparkline-Charts für CPU und RAM (8h) — generischer useMetricChart Hook 2026-03-06 21:56:03 +01:00
cynfo3000
aca013b848 feat: PF States Chart (Sparkline letzte 8h) — Backend schreibt pf_states in TimescaleDB, Frontend zeigt SVG-Sparkline 2026-03-06 21:47:47 +01:00
cynfo3000
e01fd7698c docs: 10 weitere Screenshots hinzugefügt (Login, Dashboard, Netzwerk, Sicherheit) 2026-03-06 18:54:12 +01:00
cynfo3000
225332f519 docs: 5 neue Screenshots hinzugefügt (Backups, Aufgaben, Tunnel, Updates, Agent) 2026-03-06 18:53:13 +01:00
cynfo3000
337f20165a docs: Screenshot 03 — IPs, MACs und Hostname geschwärzt 2026-03-06 12:55:36 +01:00
cynfo3000
fccf5b823a docs: Screenshots hinzugefügt (Firewalls, System, Netzwerk, HAProxy) 2026-03-06 12:47:21 +01:00
cynfo3000
3060516080 docs: Donate-Link hinzugefügt 2026-03-06 12:33:56 +01:00
cynfo3000
0e56b518b0 fix: Makefile agent-bsd Pfad korrigiert, install.sh ins Release-ZIP aufgenommen 2026-03-06 10:11:32 +01:00
cynfo3000
138a43e69b docs: updater/README.md erstellt (cross-platform, FreeBSD+Linux), Komponenten-Tabelle ergänzt 2026-03-06 10:07:15 +01:00
cynfo3000
0698c26a29 docs: README Komponenten-Tabelle aktualisiert — AGENT.md/FIRMWARE.md entfernt, agent-bsd/agent-linux README verlinkt 2026-03-06 10:04:42 +01:00
cynfo3000
8e831e241a docs: FIRMWARE.md in agent-bsd/README.md zusammengeführt und gelöscht 2026-03-06 09:58:50 +01:00
cynfo3000
afed19724d docs: AGENT.md entfernt (veraltet, ersetzt durch agent-bsd/README.md und agent-linux/README.md) 2026-03-06 09:56:42 +01:00