This commit is contained in:
@@ -16,8 +16,13 @@ FreeRADIUS schema and a web admin portal for it.
|
||||
| `backend/` | RESTful CRUD over FreeRADIUS tables | FastAPI, SQLAlchemy 2.0, PyMySQL, Pydantic v2 |
|
||||
| `frontend/` | Admin UI for clients, 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.
|
||||
Auth is **per-user**: sign in with a username and password and the backend issues
|
||||
a session token (sent as `Authorization: Bearer`). Admins can additionally mint
|
||||
revocable **`X-API-Key`** keys for scripts. On first deploy the API seeds a
|
||||
default **`admin` / `admin`** login that must change its password on first
|
||||
sign-in. Admins manage users, mint/revoke API keys, and view an activity log of
|
||||
every user's actions; regular users get full RADIUS access but can only change
|
||||
their own password.
|
||||
|
||||
## Quick start
|
||||
|
||||
@@ -27,13 +32,13 @@ Runs both services with hot-reload — the frontend on Vite, the backend on
|
||||
`uvicorn --reload`, each with its source volume-mounted from the host.
|
||||
|
||||
```bash
|
||||
cp backend/.env.example backend/.env # edit DB credentials + API_KEY
|
||||
cp backend/.env.example backend/.env # edit DB credentials
|
||||
docker compose up --build # frontend :5173, backend :8000
|
||||
```
|
||||
|
||||
The frontend proxies `/api/*` to the `backend` service over the compose
|
||||
network, so log in at http://localhost:5173 with the `API_KEY` from
|
||||
`backend/.env`.
|
||||
network, so log in at http://localhost:5173 with **`admin` / `admin`** on first
|
||||
run, then change the password when prompted.
|
||||
|
||||
### Manual
|
||||
|
||||
@@ -43,7 +48,7 @@ network, so log in at http://localhost:5173 with the `API_KEY` from
|
||||
cd backend
|
||||
python3 -m venv venv
|
||||
venv/bin/pip install -r requirements.txt
|
||||
cp .env.example .env # edit DB credentials + API_KEY
|
||||
cp .env.example .env # edit DB credentials
|
||||
venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8000
|
||||
```
|
||||
|
||||
@@ -55,5 +60,6 @@ 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.
|
||||
Log in with **`admin` / `admin`** on first run (you'll be prompted to change the
|
||||
password). In dev, Vite proxies `/api/*` to the backend so requests stay
|
||||
same-origin.
|
||||
|
||||
Reference in New Issue
Block a user