From 29900e56256c4d3720cde1adfd2a13f854140859 Mon Sep 17 00:00:00 2001 From: Shihaam Abdul Rahman Date: Sat, 1 Aug 2026 00:01:35 +0500 Subject: [PATCH] update docs --- .gitignore | 15 +++++++++++++++ README.md | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 .gitignore create mode 100644 README.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3d7fd48 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +.env +.env.* +!.env.example + +# OS cruft +.DS_Store +Thumbs.db + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea/ +*.swp +*.swo +*~ diff --git a/README.md b/README.md new file mode 100644 index 0000000..18d9721 --- /dev/null +++ b/README.md @@ -0,0 +1,43 @@ +# radapi + +SARLINK FreeRADIUS management stack: a REST API over the +FreeRADIUS schema and a web admin portal for it. + +``` +. +├── backend/ FastAPI REST API over the FreeRADIUS MySQL/MariaDB schema +└── frontend/ React + Vite admin portal (radui) +``` + +## Components + +| Dir | What | Stack | +|-------------|----------------------------------------|--------------------------------------------| +| `backend/` | RESTful CRUD over FreeRADIUS tables | FastAPI, SQLAlchemy 2.0, PyMySQL, Pydantic v2 | +| `frontend/` | Admin UI for devices and VLANs | React 19, Vite, TypeScript, Tailwind v4 | + +Auth across both is a shared secret sent in the **`X-API-Key`** header — the +frontend collects the key on a login screen and the backend validates it. + +## Quick start + +**Backend** (see [`backend/README.md`](backend/README.md) for details): + +```bash +cd backend +python3 -m venv venv +venv/bin/pip install -r requirements.txt +cp .env.example .env # edit DB credentials + API_KEY +venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8000 +``` + +**Frontend** (see [`frontend/README.md`](frontend/README.md) for details): + +```bash +cd frontend +npm install +VITE_API_TARGET=http://127.0.0.1:8000 npm run dev # http://localhost:5173 +``` + +Log in with the same value set as `API_KEY` in `backend/.env`. In dev, Vite +proxies `/api/*` to the backend so requests stay same-origin.