mirror of
https://github.com/BigBodyCobain/Shadowbroker.git
synced 2026-04-24 11:35:57 +02:00
e2a9ef9bbf
Previously, NEXT_PUBLIC_API_URL was a build-time Next.js variable, making
it impossible to configure the backend URL in docker-compose `environment`
without rebuilding the image.
This change introduces a proper server-side proxy:
- next.config.ts: adds a rewrite rule that forwards all /api/* requests
to BACKEND_URL (read at server startup, not baked at build time).
Defaults to http://localhost:8000 so local dev works without config.
- api.ts: API_BASE is now an empty string — all fetch calls use relative
/api/... paths, which the Next.js server proxies to the backend.
- docker-compose.yml: replaces NEXT_PUBLIC_API_URL build arg with a
runtime BACKEND_URL env var defaulting to http://backend:8000, using
Docker's internal networking. Port 8000 no longer needs to be exposed.
- README: updates Docker setup docs, standalone compose example, and
environment variable reference to reflect BACKEND_URL.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Former-commit-id: b4c9e78cdd
37 lines
987 B
YAML
37 lines
987 B
YAML
version: '3.8'
|
|
|
|
services:
|
|
backend:
|
|
build:
|
|
context: ./backend
|
|
container_name: shadowbroker-backend
|
|
ports:
|
|
- "8000:8000"
|
|
environment:
|
|
- AIS_API_KEY=${AIS_API_KEY}
|
|
- OPENSKY_CLIENT_ID=${OPENSKY_CLIENT_ID}
|
|
- OPENSKY_CLIENT_SECRET=${OPENSKY_CLIENT_SECRET}
|
|
- LTA_ACCOUNT_KEY=${LTA_ACCOUNT_KEY}
|
|
# Override allowed CORS origins (comma-separated). Auto-detects LAN IPs if empty.
|
|
- CORS_ORIGINS=${CORS_ORIGINS:-}
|
|
volumes:
|
|
- backend_data:/app/data
|
|
restart: unless-stopped
|
|
|
|
frontend:
|
|
build:
|
|
context: ./frontend
|
|
container_name: shadowbroker-frontend
|
|
ports:
|
|
- "3000:3000"
|
|
environment:
|
|
# Points the Next.js server-side proxy at the backend container via Docker networking.
|
|
# Change this if your backend runs on a different host or port.
|
|
- BACKEND_URL=${BACKEND_URL:-http://backend:8000}
|
|
depends_on:
|
|
- backend
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
backend_data:
|