Contributing
Repository: github.com/oncra/life. Code Apache-2.0, documents CC BY 4.0.
Run it
Requirements: Docker with Compose, a host with 2 GB RAM, a domain pointing at it.
git clone https://github.com/oncra/life.git /opt/life && cd /opt/life
cp deploy/env.example .env # set POSTGRES_PASSWORD, ADMIN_API_KEY, SITE_HOST, SITE_URL
docker compose up -d --build
docker compose logs -f worker # watch the satellite backfill
Caddy obtains the TLS certificate. Migrations run on app start. The worker processes jobs and schedules satellite updates.
Development without Docker: Node 22, a Postgres 17 (DATABASE_URL in .env), then npx prisma migrate deploy && npm run dev and npm run worker in a second terminal.
Layout
content/ the green paper, spec and guides (what you are reading)
prisma/ schema and hand-reviewed SQL migrations
src/lib/satellite.ts Sentinel-2 NDVI from COGs
src/lib/readings.ts the seven readings and the verdict (the method)
src/lib/ingest.ts payload schemas and LoRaWAN decoder mapping
src/app/api/v1/ the API
src/components/ map and charts
scripts/worker.ts background jobs
clients/ push scripts for BirdNET-Pi and AudioMoth cards
deploy/ Caddyfile, env example, deploy script
Propose a method change
Open a pull request that changes src/lib/readings.ts and the matching section of content/spec.md together, with the evidence (a paper, a dataset, a comparison on existing places). Method changes are released as a new version; verdicts carry the version they were computed with (specified).
House rules
- Measure behaviour, not inputs. A proposal that scores a management action rather than a living response does not belong in a reading.
- Never a weighted sum across readings.
UNKNOWNis a valid return and must carry a note saying what is missing.- Every direction must be reproducible from its
evidenceobject. - No raw audio, no personal data beyond a steward's chosen contact.
- Prices and product claims in the hardware guide carry a check date and a URL.
Roadmap (from the specification's "specified" items)
- Neighbour crowd: regional reference from public parcel registries (NL: BRP Gewaspercelen) and all registered places.
- Server-side acoustic indices and a BirdWeather poller.
- Visit scheduler with a public random beacon; disagreement detection.
- Method versioning and the drift ledger.
- Carbon coupling with the Oncra registry by API.
- kNDVI, solar-day de-duplication, inward buffer, Landsat/HLS archive, Sentinel-1.
- Magic-link login, organisations, per-place sharing.