osint-dashboard/app
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
..
static first commit 2026-06-04 20:30:04 -04:00
camera_config.py Add open IP camera discovery scraper (OSINT map) 2026-08-24 14:54:51 -04:00
camera_models.py Add open IP camera discovery scraper (OSINT map) 2026-08-24 14:54:51 -04:00
camera_scraper.py Add open IP camera discovery scraper (OSINT map) 2026-08-24 14:54:51 -04:00
config.py Containerize for Pi: env-var config, compose stack, CI workflow 2026-07-07 17:50:51 -04:00
database.py Containerize for Pi: env-var config, compose stack, CI workflow 2026-07-07 17:50:51 -04:00
docker-entrypoint.sh Run migrations via entrypoint (alembic upgrade head) instead of nested asyncio.run in startup hook 2026-07-07 18:24:01 -04:00
ingest_cron.py first commit 2026-06-04 20:30:04 -04:00
ingestor.py Harden ingest_event: coerce non-UUID source_id to NULL (tolerates legacy messages) 2026-07-07 19:44:13 -04:00
main.py Add open IP camera discovery scraper (OSINT map) 2026-08-24 14:54:51 -04:00
models.py first commit 2026-06-04 20:30:04 -04:00
requirements.txt Containerize for Pi: env-var config, compose stack, CI workflow 2026-07-07 17:50:51 -04:00
run_camera_service.py Add open IP camera discovery scraper (OSINT map) 2026-08-24 14:54:51 -04:00
run_ingester.py Wire ingestion: long-running ingester (sources->NATS->Postgres), fix nats-py API (durable=/LIMITS), drop UUID source_id on RSS 2026-07-07 19:35:28 -04:00
schemas.py first commit 2026-06-04 20:30:04 -04:00
sources.py Wire ingestion: long-running ingester (sources->NATS->Postgres), fix nats-py API (durable=/LIMITS), drop UUID source_id on RSS 2026-07-07 19:35:28 -04:00