# Detector als Dienst auf dem dedizierten Erkennungs-Host. # # Wird von scripts/setup_detector_host.sh installiert. Von Hand: # sudo cp deploy/vogelalbum-detector.service /etc/systemd/system/ # sudo systemctl daemon-reload && sudo systemctl enable --now vogelalbum-detector # # Zugangsdaten in /etc/vogelalbum.env (chmod 600, root:root): # VOGELALBUM_SOURCE=http://vogelkamera.local:8080/stream # VOGELALBUM_API=https://vogelalbum.gaertner.onl # VOGELALBUM_TOKEN= # VOGELALBUM_SAVE_TO=/var/lib/vogelalbum/rohdaten # # Für eine zweite Kamera: Datei als vogelalbum-detector@.service ablegen, %i im # EnvironmentFile-Pfad verwenden und je Kamera eine /etc/vogelalbum-.env # anlegen. Dann läuft `systemctl enable --now vogelalbum-detector@nistkasten`. [Unit] Description=Vogelalbum Detector (Arterkennung am Vogelhaus) After=network-online.target Wants=network-online.target [Service] Type=simple User=vogelalbum Group=vogelalbum WorkingDirectory=/opt/vogelalbum EnvironmentFile=/etc/vogelalbum.env Environment=PYTHONUNBUFFERED=1 # Die Schwellwerte stehen bewusst hier und nicht im Code: sie gehören zur # Kamera, nicht zum Programm. 'gate detector' ignoriert Bewegung — nötig, # weil unsere Kamera auf eine Hecke schaut, die im Wind steht. # --nachtsicht ergaenzen, wenn die Kamera Infrarot hat. Ohne den Schalter # pausiert die Analyse, sobald das Bild zu dunkel zum Erkennen ist. ExecStart=/opt/vogelalbum/venv/bin/python -m detector watch \ --gate detector \ --classify-every 2 \ --cooldown 5 \ --min-bird-frames 1 \ --verbose # Der Stream reißt nachts gern mal ab; einfach wieder hochkommen. Restart=always RestartSec=15 # Ein Bilderkenner braucht weder Schreibzugriff aufs System noch neue Rechte. NoNewPrivileges=true PrivateTmp=true ProtectSystem=strict ProtectHome=true ProtectKernelTunables=true ProtectControlGroups=true RestrictSUIDSGID=true ReadWritePaths=/var/lib/vogelalbum StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target