osint-dashboard/.env.example
Sirius DevOps 69a30115cc
Some checks failed
build-and-deploy / build (push) Failing after 5s
Add open IP camera discovery scraper (OSINT map)
- camera_scraper: public-directory-only discovery (Insecam-style HTML +
  plain-text lists), hard private-range guard (fail closed), per-host
  rate limiting, Nominatim geocoding at <=1 req/s, TTL'd local snapshot
  cache, sha256 url_hash dedupe with Postgres upsert
- cameras table (migration 002) + /api/cameras?bbox= + snapshot endpoint
  with cache passthrough in main.py
- run_camera_service: long-running cycle worker following NATS->ingester
  pattern; publishes events.camera for shared ingester
- docker-compose camera-service profile, .env.example knobs

Verified E2E against TimescaleDB+PostGIS: private-range entries dropped,
dedupe across cycles holds, bbox query returns expected rows.
2026-08-24 14:54:51 -04:00

29 lines
1.2 KiB
Text

# OSINT Dashboard — environment configuration
# Copy to `.env` and adjust. All values have safe defaults for local compose.
# ── PostgreSQL / TimescaleDB ───────────────────────────────────────────────
DB_USER=osint
DB_PASSWORD=osint
DB_HOST=db
DB_PORT=5432
DB_NAME=osint_data
# ── NATS JetStream (optional — only needed when profile `ingest` is used) ──
NATS_URL=nats://nats:4222
# ── MinIO (optional — document storage; endpoint used if wired later) ──────
MINIO_ENDPOINT=minio:9000
MINIO_ACCESS_KEY=
MINIO_SECRET_KEY=
# "true" for TLS endpoints (e.g. S3-compatible prod); "false" for local HTTP.
MINIO_SECURE=false
# ── Camera discovery scraper ───────────────────────────────────────────────
# Comma-separated public directory/list URLs (Insecam-style pages or
# plain-text lists: url[|lat,lon|vendor|location]).
CAMERA_SOURCE_URLS=
CAMERA_SCRAPE_INTERVAL=3600
CAMERA_REQUEST_DELAY=2.0
NOMINATIM_URL=https://nominatim.openstreetmap.org
NOMINATIM_MIN_INTERVAL=1.1
SNAPSHOT_TTL_SECONDS=300