Files
christian c11fe9ab04 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.
2026-10-15 14:30:02 +00:00

18 lines
812 B
Docker

# Der Medien-Eingang, mit seiner Konfiguration fest im Image.
#
# 🔑 Warum nicht einfach die .conf hineinmounten: Einzeldatei-Bind-Mounts sind
# auf Coolify brüchig. Schlägt ein Deploy fehl, legt Docker die fehlende
# Mount-Quelle als leeres VERZEICHNIS auf dem Host an — der nächste Versuch
# mountet dann ein Verzeichnis auf eine Datei und der Container kommt in eine
# Absturzschleife, die nach einem Konfigurationsfehler aussieht und keiner
# ist. Das hat auf derselben Coolify-Instanz schon einmal einen Abend
# gekostet; deshalb hier gebacken statt gemountet.
#
# Preis dafür: eine Änderung an nginx-media.conf braucht einen Rebuild, nicht
# nur einen Neustart. Die Datei ändert sich praktisch nie.
FROM nginx:1.27-alpine
COPY deploy/nginx-media.conf /etc/nginx/conf.d/default.conf
EXPOSE 8080