Vogelalbum 1.0.0

Eine Kamera am Vogelhaus, ein Rechner der erkennt wer da war — und eine
Sammlung, die sich von allein fuellt.

Zwei neuronale Netze: eines findet den Vogel im Bild, eines bestimmt die
Art. 148 heimische Arten, auf Deutschland eingeschraenkt und neu normiert —
ohne diese Einschraenkung wird aus einer Kohlmeise eine nordamerikanische
Schwesterart. Daraus entsteht ein Sammelalbum: nummerierte Seiten,
gefundene Arten in Farbe, fehlende als Schatten, dazu Erstfang, Punkte,
Stufen und 15 Abzeichen.

Laeuft vollstaendig auf eigener Hardware. Kein Cloud-Dienst, kein Konto,
keine Telemetrie; die Bilder verlassen das eigene Netz nicht.

Zwei getrennt deploybare Teile: die Sammlung als Django-Anwendung, die
Erkennung als eigener Dienst. Der Erkennungs-Dienst fragt selbst an und
braucht deshalb weder eine erreichbare Adresse noch einen offenen Port —
er laeuft hinter einem gewoehnlichen Router.

Dabei: Firmware fuer Raspberry Pi und ESP32-S3, Anbindung an Home
Assistant ueber MQTT, Oberflaeche auf Deutsch und Englisch, Einstellungen
je Kamera aus dem Browser, und ein Weg fuer Fotos von unterwegs.

AGPL-3.0.
This commit is contained in:
christian committed 2026-10-15 14:30:02 +00:00
commit c11fe9ab04
189 files changed
+29806

No files matched your search

+51
View File
@@ -0,0 +1,51 @@
# Sicherheitslücken melden
**Bitte nicht als öffentliches Issue.** Eine Lücke, die in einem Issue steht,
ist eine Anleitung, solange sie nicht behoben ist.
**Melde sie an <webmaster@gaertner.onl>.** Vogelalbum ist ein Feierabendprojekt
einer einzelnen Person — eine Antwort kann ein paar Tage dauern. Kommt nach
einer Woche keine, gern noch einmal nachfassen; dann ist die Nachricht
untergegangen.
Hilfreich in der Meldung:
- was betroffen ist (Web-App, Detector, Kameraseite) und welche Fassung
- wie sich das Verhalten auslösen lässt, möglichst Schritt für Schritt
- was dabei herauskommt und warum das ein Problem ist
Wer eine Lücke meldet und bis zur Behebung nicht veröffentlicht, wird — auf
Wunsch — im Changelog namentlich genannt. Rechtliche Schritte gegen jemanden,
der auf diesem Weg und in gutem Glauben meldet, gibt es nicht.
## Was unterstützt wird
Vogelalbum hat noch keine Version. Gefixt wird der aktuelle Stand von `main`.
## Womit zu rechnen ist
Ein paar Dinge sind **Absicht** und keine Lücke — damit niemand Zeit damit
verliert:
- **Die Web-App hat keine Benutzerkonten.** Die Sammlung ist zum Ansehen da.
Wer sie öffentlich stellt, stellt sie öffentlich. Geschützt sind nur der
Django-Admin und das Upload-Formular.
- **Die API-Token stehen in Umgebungsvariablen**, nicht in einem Tresor. In
der Datenbank liegen sie als SHA-256.
- **Der Detector erreicht die Web-App, nicht umgekehrt.** Die Verbindung geht
nur in eine Richtung; das ist der Kern des Aufbaus und kein Versehen.
- **Die Kameraseiten (`pi/`, `esp32cam/`) kennen keine Authentifizierung.** Sie
gehören ins Heimnetz, nicht ans offene Internet. Wer den Stream nach außen
gibt, legt selbst etwas davor.
- **`VOGELALBUM_LIVE_ERLAUBT=0`** schaltet das Live-Bild hart ab, auch gegen einen
Fehlklick im Admin. Auf einer öffentlichen Instanz gehört die Variable auf
`0`.
## Was dagegen eine Meldung wert ist
- Lesen oder Schreiben von Sichtungen ohne gültigen Token
- Herauskommen aus dem Admin-Login oder aus dem Upload-Formular
- Pfade, über die sich Dateien außerhalb des Medienordners lesen oder
schreiben lassen
- alles, was aus einem hochgeladenen Bild Code macht
- ein Token, das in Logs, in der Prozessliste oder in der Oberfläche landet