HexaWetter v1.2.0: Security, Admin, Radar, UI
This commit is contained in:
17
README.md
17
README.md
@@ -2,6 +2,13 @@
|
||||
|
||||
HexaWetter ist ein vollständiges Self-Hosting-Wetterportal mit Forecast, DWD-Beobachtungen, interaktiver Radar-Karte (WMS + Zeitleiste), Warnungen, Geocoding und lokalem Radar-Rendering.
|
||||
|
||||
## Repository
|
||||
|
||||
```bash
|
||||
git clone ssh://git@git.hexahost.dev:8006/smueller/HexaWetter.git
|
||||
cd HexaWetter
|
||||
```
|
||||
|
||||
## Features
|
||||
|
||||
- **Dashboard**: Aktuelles Wetter, DWD-Station, 48h-Stundenansicht, 7-Tage-Forecast
|
||||
@@ -16,7 +23,7 @@ HexaWetter ist ein vollständiges Self-Hosting-Wetterportal mit Forecast, DWD-Be
|
||||
|
||||
```bash
|
||||
pip install bcrypt
|
||||
python scripts/hash_admin_password.py 'dein-sicheres-passwort'
|
||||
python scripts/setup_secrets.py 'dein-sicheres-passwort'
|
||||
```
|
||||
|
||||
Die ausgegebenen Werte in `.env` eintragen, dann Stack neu starten.
|
||||
@@ -24,11 +31,14 @@ Die ausgegebenen Werte in `.env` eintragen, dann Stack neu starten.
|
||||
Admin-UI: `http://localhost:8080/admin.html`
|
||||
|
||||
Sicherheit:
|
||||
- **API-Key** (`API_KEY`) für alle `/api/*`-Endpunkte (Nginx setzt den Header automatisch)
|
||||
- bcrypt-Passwort-Hash (niemals Klartext in `.env` committen)
|
||||
- JWT mit `ADMIN_JWT_SECRET` (min. 32 Zeichen)
|
||||
- Rate-Limiting auf Login (5 Versuche / 5 Min.)
|
||||
- Token nur in `sessionStorage` (nicht localStorage)
|
||||
- Security-Headers auf allen API-Antworten
|
||||
- API-Port nur auf `127.0.0.1` gebunden (kein direkter externer Zugriff)
|
||||
- Schreibende Endpunkte (Radar-Sync, Cache leeren, Einstellungen) nur im Admin-Bereich
|
||||
|
||||
|
||||
```bash
|
||||
@@ -36,7 +46,7 @@ cp .env.example .env
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
Web-UI: `http://localhost:8080` · API: `http://localhost:8081/api/health`
|
||||
Web-UI: `http://localhost:8080` · API (lokal): `http://127.0.0.1:8081/api/health`
|
||||
|
||||
## Architektur
|
||||
|
||||
@@ -59,7 +69,8 @@ Web-UI: `http://localhost:8080` · API: `http://localhost:8081/api/health`
|
||||
| `GET /api/warnings` | DWD-Warnungen (standortbezogen) |
|
||||
| `GET /api/geocode/search` | Ortssuche |
|
||||
| `GET /api/radar/wms/times` | WMS-Zeitschritte für Animation |
|
||||
| `GET /api/radar/rendered` | Lokal gerenderte Radar-Frames |
|
||||
| `GET /api/admin/radar/files` | Lokale Radar-Rohdaten (Admin) |
|
||||
| `GET /api/admin/radar/rendered` | Gerenderte Radar-Frames (Admin) |
|
||||
|
||||
## Selfhosted Forecast (optional)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user