| 2026-10-04 |
chore: demo port 8022 in .env.example
...
Co-Authored-By: Claude Code <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
8 hours ago
|
feat: close the panel behind gnexus-auth (OAuth PKCE)
...
Auth off by default (client_id empty). When GHARD_AUTH_CLIENT_ID is set,
the web UI gets a creds-style sign-in gate: splash -> /me -> login screen
(OAuth starts from the click, not page load). Sessions and OAuth state
live in SQLite (survive restarts); webhook endpoint applies global_logout/
profile updates. Scripts/MCP keep working with the Bearer token, agents
keep X-Server-Key ingest. Includes compose env passthrough, README guide.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
9 hours ago
|
| 2026-09-11 |
feat: network storage section — panel probes mounted shares itself
...
Backend: shares + share_samples tables, background probe loop
(os.statvfs every GHARD_SHARE_INTERVAL, 7-day retention, ok=0 when
the mount is unreachable), CRUD + samples API, instant first sample
on create/update, shares in MCP panel_overview.
Frontend: /storage page — share cards with status badge/progress/
used-free-total, 24h fill chart, add/delete via modal + confirm.
ChartLine shows a visible point while there are fewer than 3 samples.
README: CIFS/NFS mount + fstab examples, GHARD_SHARE_INTERVAL row.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
23 days ago
|
| 2026-09-10 |
feat: English UI, no-login API, logo/favicon, layout fixes
...
- UI fully translated to English (dashboard, server page, toasts, formatters)
- login removed: GHARD_ADMIN_TOKEN is optional now (unset = open API);
agent key auth untouched; README/.env.example updated
- SVG logo + favicon (monitor with pulse, kit-style)
- reactivity: dashboard poll 5s, server 5s, history 10s
- layout: metric cards full-row flex, metric value nowrap,
info/note 50/50 grid, topbar logo 48x48, server card max-width 420px,
uptime on its own line, delete confirmed via GnConfirmDialog
- docker: ca-certificates for npm git dependency
Co-Authored-By: Claude Code <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
24 days ago
|
feat: stage 1 — panel skeleton (FastAPI + SQLite) and ingest API
...
- FastAPI backend: config (pydantic-settings, GHARD_* env), aiosqlite + WAL
- SQLite schema: servers, metrics, events
- POST /api/v1/ingest: auth by X-Server-Key (sha256 hash), net rates in MB/s
computed on panel from raw counter deltas, server card upsert
- Servers API: create (key shown once), list with dashboard summary,
detail, PATCH name/note, delete, metrics history
- Dockerfile + docker-compose with persistent volume
Co-Authored-By: Claude Code <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
24 days ago
|