Sirius DevOps
|
69a30115cc
|
Add open IP camera discovery scraper (OSINT map)
build-and-deploy / build (push) Failing after 5s
- 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 |
|
sirius0xdev
|
3d53ed2c1c
|
Containerize for Pi: env-var config, compose stack, CI workflow
build-and-deploy / build (push) Failing after 18s
- Add app/config.py (12-factor, env-driven: DB/NATS/MinIO, URL-encoded pw)
- Route database/ingestor/sources/alembic through config; kill hardcoded
svc.cluster.local hostnames
- Drop unused redis dependency
- Add docker-compose.yml (timescaledb-postgis pg13 arm64 + optional nats)
- Add .env.example, .dockerignore, .forgejo/workflows/build.yml (arm64 build+SSH deploy)
|
2026-07-07 17:50:51 -04:00 |
|