mirror of
https://github.com/BigBodyCobain/Shadowbroker.git
synced 2026-05-10 11:07:33 +02:00
8cddf6794d
New features:
- NASA GIBS (MODIS Terra) daily satellite imagery with 30-day time slider
- Esri World Imagery high-res satellite layer (sub-meter, zoom 18+)
- KiwiSDR SDR receivers on map with embedded radio tuner
- Sentinel-2 intel card — right-click for recent satellite photo popup
- LOCATE bar — search by coordinates or place name (Nominatim geocoding)
- SATELLITE style preset in bottom bar cycling
- v0.4 changelog modal on first launch
Fixes:
- Satellite imagery renders below data icons (imagery-ceiling anchor)
- Sentinel-2 opens full-res PNG directly (not STAC catalog JSON)
- Light/dark theme: UI stays dark, only map basemap changes
Security:
- Removed test files with hardcoded API keys from tracking
- Removed .git_backup directory from tracking
- Updated .gitignore to exclude test files, dev scripts, cache files
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Former-commit-id: e89e992293
52 lines
1.8 KiB
Markdown
52 lines
1.8 KiB
Markdown
# ShadowBroker Frontend
|
|
|
|
Next.js 16 dashboard with MapLibre GL, Cesium, and Framer Motion.
|
|
|
|
## Development
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev # http://localhost:3000
|
|
```
|
|
|
|
## API URL Configuration
|
|
|
|
The frontend needs to reach the backend (default port `8000`). Resolution order:
|
|
|
|
1. **`NEXT_PUBLIC_API_URL`** env var — if set, used as-is (build-time, baked by Next.js)
|
|
2. **Server-side (SSR)** — falls back to `http://localhost:8000`
|
|
3. **Client-side (browser)** — auto-detects using `window.location.hostname:8000`
|
|
|
|
### Common scenarios
|
|
|
|
| Scenario | Action needed |
|
|
|----------|---------------|
|
|
| Local dev (`localhost:3000` + `localhost:8000`) | None — auto-detected |
|
|
| LAN access (`192.168.x.x:3000`) | None — auto-detected from browser hostname |
|
|
| Public deploy (same host, port 8000) | None — auto-detected |
|
|
| Backend on different port (e.g. `9096`) | Set `NEXT_PUBLIC_API_URL=http://host:9096` before build |
|
|
| Backend on different host | Set `NEXT_PUBLIC_API_URL=http://backend-host:8000` before build |
|
|
| Behind reverse proxy (e.g. `/api` path) | Set `NEXT_PUBLIC_API_URL=https://yourdomain.com` before build |
|
|
|
|
### Setting the variable
|
|
|
|
```bash
|
|
# Shell (Linux/macOS)
|
|
NEXT_PUBLIC_API_URL=http://myserver:8000 npm run build
|
|
|
|
# PowerShell (Windows)
|
|
$env:NEXT_PUBLIC_API_URL="http://myserver:8000"; npm run build
|
|
|
|
# Docker Compose (set in .env file next to docker-compose.yml)
|
|
NEXT_PUBLIC_API_URL=http://myserver:8000
|
|
```
|
|
|
|
> **Note:** This is a build-time variable. Changing it requires rebuilding the frontend.
|
|
|
|
## Theming
|
|
|
|
Dark mode is the default. A light/dark toggle is available in the left panel toolbar.
|
|
Theme preference is persisted in `localStorage` as `sb-theme` and applied via
|
|
`data-theme` attribute on `<html>`. CSS variables in `globals.css` define all
|
|
structural colors for both themes.
|