Commit Graph

267 Commits

Author SHA1 Message Date
Twarner491 7999483b7a README: update lav price + SD card link 2026-05-28 11:12:26 -07:00
Twarner491 d3241f92cf Pre-share fixes from final review pass
Blockers
- http://birdnet.local/avian/ now serves the collage (added avian/index.html
  redirect to frontend/; previously the symlink target had no top-level
  index, so users saw a directory listing of api/ assets/ forwarding/
  frontend/ scripts/).
- Gemini model bumped from gemini-2.5-flash-image-preview (deprecated
  2026-01-15) to the stable gemini-2.5-flash-image. Pregen was non-
  functional out of the box.
- avian-mqtt.service: dropped %h (which expands to /root for system-mode
  units regardless of User=). Use WorkingDirectory=~ which DOES respect
  User=, plus a relative ExecStart.
- birdnet-api.php case 'lifelist' now aliases COUNT(*) AS n (was 'total'),
  matching what apt.js reads for atlas card counts. Atlas previously
  always displayed 0.

Bugs
- Retry-After parsing handles HTTP-date format without crashing.
- apt.js no longer fetches firstseen/timeseries (declared in state but
  never consumed). Two wasted round-trips per page load removed.
- update_birdnet.sh defaults branch=avian-visitors so the (opt-in)
  Sunday auto-update cron doesn't reset HEAD to upstream main and
  delete the avian/ overlay.
- recording.php: removed dead $BIRDS_JSON_CANDIDATES.

Polish
- Pregen --sleep default raised 4→6s (more headroom under free-tier RPM).
- en-dash in README BOM (~$35–80) replaced with hyphen for style match.
- Slop sweep across user-facing docs: no em-dashes, no en-dashes, no
  AI-slop word hits (robust/comprehensive/seamless/etc.).
2026-05-28 11:11:20 -07:00
Twarner491 41a051bc55 README: tighten tagline + mention mic placement in Pi setup 2026-05-28 10:56:47 -07:00
Twarner491 2ec45b9138 AvianVisitors hardening pass — install via fork's newinstaller
Restructures the install so users run ONE command. The fork's
newinstaller.sh clones this repo (instead of upstream Nachtzuster) and
runs BirdNET-Pi's installer. install_services.sh symlinks the avian/
overlay into the Caddy site root, so http://birdnet.local/avian/ comes
up after reboot with no Caddy config needed.

Reviewer-flagged fixes:

Frontend (avian/frontend/apt.js)
- Switch all API paths from /api/*.json (which didn't route) to relative
  action-based URLs (./api/birdnet-api.php?action=recent etc.).
- Fetch ./masks.json + ./dims.json relatively (were /avian/*.json).
- Replace every innerHTML user-content sink with createElement +
  textContent + setAttribute — species labels are user-editable in
  BirdNET-Pi, so untrusted.
- Add esc() helper for the few remaining innerHTML attribute contexts.
- fetchJson throws on non-200 (was silently parsing 404 HTML as JSON).
- Defensive null-check in loadMask if MASKS hasn't loaded.

Backend (avian/api/*.php)
- birdnet-api.php now derives DB_PATH from dirname(__DIR__, 3) so any
  BirdNET-Pi install user works (no hardcoded /home/birdnet).
- recording/spectrogram/cutout use getenv('HOME') for the same reason.
- cutout.php reworked as the canonical image resolver: bundled
  illustration → bundled cutout → cached rembg → fresh
  Wikipedia+rembg, with the binomial regex guard and atomic rename
  on cache write. Wikipedia URL host pinned to wikimedia.org /
  wikipedia.org to block SSRF.
- Stale 'X-BirdNET-Proxy-Token' auth claims removed everywhere.

Pregen (avian/scripts/pregen.py)
- Gemini key moved from URL query to x-goog-api-key header.
- Model bumped to gemini-2.5-flash-image-preview.
- Bounded retry on 429 + 5xx with Retry-After honoured.
- Default --sleep raised from 1s to 4s (under free-tier RPM).
- Unified parser handles |/_/comma in all three input modes.
- responseModalities now [TEXT, IMAGE] (was IMAGE-only).
- --poses validated against POSES keys.
- ASCII [ok]/[fail] markers (was ✓/✗ — Windows console crash).
- Surfaces finishReason + blockReason on safety blocks.

Prompt template
- 'Two placeholders' typo → three.
- 'warm paper' / 'transparent background' contradiction resolved.

Forwarding
- mqtt-bridge.py: paho-mqtt 2.x CallbackAPIVersion compat shim.
- avian-mqtt.service: dropped broken %i, set User=birdnet + %h path.
- forwarding/README.md uses the actual action-based URLs.

README
- One-line install via curl … newinstaller.sh.
- No more 'install BirdNET-Pi separately' step (our fork does it).
- License section uses absolute github.com links.
- bird.onethreenine.net replaces the not-yet-existent project writeup.
- docs/thumb.png replaced with the 24-bird Twitter capture.

Removed
- avian/caddy/ and avian/scripts/install.sh — no longer needed; the
  overlay symlink in install_services.sh handles everything.
2026-05-28 10:49:41 -07:00
Twarner491 d0ad1454c4 AvianVisitors: BirdNET-Pi collage frontend overlay
Adds avian/ on top of upstream BirdNET-Pi:
- frontend/    static collage UI (mask-packed bird tiles, sized by detection count)
- assets/      ~450 bundled kachō-e illustrations + cutouts + binary masks
- api/         PHP shims for recent/lifelist/firstseen/timeseries JSON
- scripts/     installer + Gemini pregen + editable prompt template
- caddy/       snippet mounting /collage on existing Caddy
- forwarding/  optional HA / MQTT / Cloudflare configs

Default install: http://birdnet.local/collage/ with no auth.

Upstream BirdNET-Pi README preserved at README.upstream.md.
2026-05-28 10:14:25 -07:00
frederik 41d64a38ee Trixie is here 2025-11-22 19:35:59 +01:00
frederik 7c917e7d07 cleanup the readme a bit 2025-11-22 19:04:53 +01:00
frederik 19d47f2fae fix: the wheels do not require AVX anymore 2025-03-29 10:44:02 +01:00
Alexandre 61389cf160 Add an external link 2025-03-08 10:00:53 +01:00
Alexandre 9d6cb99d82 Docker compose
Co-Authored-By: gotschi <213873+gotschi@users.noreply.github.com>
2025-03-08 10:00:53 +01:00
Alexandre cddc1e6834 Add Docker as system
Co-Authored-By: gotschi <213873+gotschi@users.noreply.github.com>
2025-03-08 10:00:53 +01:00
frederik e1c25b8165 add x86 disclamer and pointers 2024-12-09 21:43:14 +01:00
frederik 1e4441d2d8 mention ui backup/restore in the Readme 2024-12-03 19:10:03 +01:00
frederik 1847665eb7 README: add backup info 2024-10-26 10:54:26 +02:00
Emmo213 17576c6a12 Readme fix (#195)
* Ignore all local databases

* Fixed broken link

* Cleanup
2024-09-30 20:44:33 +02:00
Lloyd Bayley 136497c98a Spelling error in Readme.md (#120)
Luxembourgh -> Luxembourg
2024-06-23 09:16:18 +02:00
Nachtzuster 9789a97465 Now in Japan too 2024-06-15 14:27:37 +02:00
frederik 780ec060c3 bump apprise version to 1.8.0 2024-06-01 10:34:48 +02:00
Nachtzuster 1ffa7ba169 README.md: clarify the outdated details 2024-05-15 18:34:11 +02:00
frederik befda17bd4 update screenshot overview 2024-05-05 17:56:58 +02:00
frederik 15b823b4c3 update readme 2024-05-05 17:56:58 +02:00
Alexandre f552b50196 Readme : Homeassistant addon as installation solution (#45)
* Homeassistant addon as installation solution

* Update README.md
2024-04-29 17:55:40 +02:00
frederik 885db76be5 Raspberry Pi 5 should work too 2024-04-15 15:08:00 +02:00
frederik a9fbb571ab update README 2024-03-09 13:31:36 +01:00
frederik 6873ee44f7 fix README 2024-02-20 14:23:28 +01:00
frederik add216750d README: add list changes 2024-02-20 11:41:27 +01:00
Nachtzuster 8b3ab5e36a Please stick to Bullseye 2024-02-16 21:22:32 +01:00
Nachtzuster cb008d66a5 Always have a backup 2024-02-15 11:32:01 +01:00
Nachtzuster 4243a37406 Update README.md 2024-02-14 13:59:54 +01:00
Nachtzuster 02f7f8c515 Bookworm is recomended now 2024-02-14 12:26:01 +01:00
frederik 6bcae6ffad howto migrate 2024-02-13 18:06:57 +01:00
frederik 054f41ec37 point to this repo 2024-02-13 18:06:57 +01:00
Patrick McGuire f8e74cad35 Update README.md
and Omar, Belarus, and the Czech Republic
2023-09-26 11:18:40 -04:00
Patrick McGuire ebdac164c8 Update README.md
adding Rwanda to list of countries
2023-09-26 11:10:51 -04:00
Patrick McGuire 00f8a6f348 Update README.md
added Crete
2023-05-16 08:50:36 -04:00
ehpersonal38 c6a4a68706 Update README.md 2023-05-13 18:25:36 -04:00
Patrick McGuire b9c2a0e5b7 Update README.md
no more subdomains
2023-05-10 13:29:46 -04:00
ehpersonal38 fdc175255f Update README.md 2023-05-05 21:36:59 -04:00
ehpersonal38 b505aacc5d Update README.md 2023-04-30 20:15:26 -04:00
ehpersonal38 35b5c64927 Update README.md 2023-04-11 10:59:28 -04:00
ehpersonal38 05919105ce Update README.md 2023-04-09 12:29:34 -04:00
ehpersonal38 4982af6b53 Update README.md 2023-03-10 14:08:45 -05:00
ehpersonal38 973a4b3d4c Update README.md 2023-02-15 22:31:04 -05:00
ehpersonal38 f244735598 Update README.md 2023-02-15 20:21:07 -05:00
ehpersonal38 01b1fe9595 Update README.md 2023-02-09 12:50:09 -05:00
DD4WH 191e3ec593 Update README.md 2023-02-03 14:03:34 +01:00
DD4WH 20f032b16f Update README.md
added RPi 400, because it also runs the BirdNET-Pi software without problems. Many people seem to think that no Raspberry Pi model is available due to the chip crisis, but in fact the Raspberry Pi 400 is and has always been for sale!
2023-02-03 13:59:52 +01:00
Patrick McGuire acdc4f4d04 Update README.md 2023-02-02 14:27:53 -05:00
Patrick McGuire 2cc4dbac6a Update README.md 2023-01-16 10:50:03 -05:00
Patrick McGuire 366954db03 Update README.md 2023-01-10 13:51:24 -05:00