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>
0 parent commit 1be5830014190737b8f527db4453bb678cf507d4
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 18 hours ago
Showing 17 changed files
View
.gitignore 0 → 100644
View
README.md 0 → 100644
View
docker-compose.yml 0 → 100644
View
monitor/README.md 0 → 100644
View
panel/backend/.env.example 0 → 100644
View
panel/backend/Dockerfile 0 → 100644
View
panel/backend/app/__init__.py 0 → 100644
View
panel/backend/app/api/__init__.py 0 → 100644
View
panel/backend/app/api/ingest.py 0 → 100644
View
panel/backend/app/api/servers.py 0 → 100644
View
panel/backend/app/config.py 0 → 100644
View
panel/backend/app/db.py 0 → 100644
View
panel/backend/app/main.py 0 → 100644
View
panel/backend/app/models.py 0 → 100644
View
panel/backend/app/schema.sql 0 → 100644
View
panel/backend/app/security.py 0 → 100644
View
panel/backend/pyproject.toml 0 → 100644