cynfo3000
67e15040fb
feat: ProxmoxPanel mit verschachtelter Navigation wie AgentPanel
...
Haupt-Tabs: Uebersicht / Virtualisierung / Speicher / System
Sub-Tabs: VMs+Container | Storage+ZFS+Backups+PBS | Dienste+Updates+Aufgaben+Tunnel+Agent
2026-03-10 00:53:37 +01:00
cynfo3000
81669c59a5
feat: kein automatischer read-Key mehr bei Kundenerstellung
2026-03-10 00:42:32 +01:00
cynfo3000
56cb19d052
feat: API-Keys in Einstellungen gruppiert nach Kunde
2026-03-10 00:36:31 +01:00
cynfo3000
cdb2443d8f
refactor: API-Keys in Einstellungen kompakter (gleicher Stil wie Kunden-Panel)
2026-03-10 00:34:42 +01:00
cynfo3000
4023a14fe1
feat: Agent zeigt Warnung wenn er nicht den Kunden-Key nutzt
...
- last_api_key Spalte in agents, wird bei Heartbeat gesetzt
- GetAgentsByCustomer liefert last_api_key mit
- Frontend: rot + Warnsymbol wenn Key abweicht vom Kunden-Agent-Key
- Grau wenn noch kein Heartbeat mit Key-Info
2026-03-10 00:23:59 +01:00
cynfo3000
20a976767b
fix: getCustomerAgents liefert status + agent_version
2026-03-10 00:21:58 +01:00
cynfo3000
4a79305eee
feat: Kunden-Panel zeigt Agents + API-Keys nebeneinander
2026-03-10 00:20:56 +01:00
cynfo3000
ebd8f1ebb8
fix: agent permission erlaubt /api/v1/agent/register (BSD Agent braucht das zum Start)
2026-03-10 00:15:17 +01:00
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