Real-time geospatial OSINT intelligence dashboard
Find a file
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
.forgejo/workflows CI: trigger run with compose-plugin-mounted runner (no SSH deploy) 2026-07-09 19:35:29 -04:00
alembic Add open IP camera discovery scraper (OSINT map) 2026-08-24 14:54:51 -04:00
app Add open IP camera discovery scraper (OSINT map) 2026-08-24 14:54:51 -04:00
.dockerignore Containerize for Pi: env-var config, compose stack, CI workflow 2026-07-07 17:50:51 -04:00
.env.example Add open IP camera discovery scraper (OSINT map) 2026-08-24 14:54:51 -04:00
.gitignore Add .gitignore (pycache, venv, .env) 2026-07-07 18:46:06 -04:00
alembic.ini Containerize for Pi: env-var config, compose stack, CI workflow 2026-07-07 17:50:51 -04:00
docker-compose.yml Add open IP camera discovery scraper (OSINT map) 2026-08-24 14:54:51 -04:00
Dockerfile Run migrations via entrypoint (alembic upgrade head) instead of nested asyncio.run in startup hook 2026-07-07 18:24:01 -04:00
Dockerfile.pg Fix Dockerfile.pg: mkdir conf.d before writing timescaledb preload 2026-07-07 18:17:31 -04:00