#!/bin/sh set -e # Im Betrieb verlangen die Settings einen SECRET_KEY und verweigern sonst den # Start. Fuer ein oeffentliches Deployment ist das richtig — dort gehoert der # Schluessel in die Umgebung. Zu Hause ist es eine Huerde ohne Gegenwert: # niemand soll sich ein Geheimnis ausdenken muessen, um Vögel zu zaehlen. # Deshalb hier einmalig erzeugen und aufs Datenvolume legen. Er muss ueber # Neustarts stabil bleiben, sonst sind alle Sitzungen jedes Mal ungueltig. if [ -z "${DJANGO_SECRET_KEY:-}" ]; then KEYFILE="${SQLITE_DIR:-/app}/secret_key" if [ ! -s "$KEYFILE" ]; then mkdir -p "$(dirname "$KEYFILE")" python -c "from django.core.management.utils import get_random_secret_key as g; print(g())" > "$KEYFILE" chmod 600 "$KEYFILE" echo "SECRET_KEY erzeugt: $KEYFILE" fi DJANGO_SECRET_KEY="$(cat "$KEYFILE")" export DJANGO_SECRET_KEY fi python manage.py migrate --noinput python manage.py collectstatic --noinput # Katalog und Abzeichen sind Stammdaten, keine Nutzerdaten — bei jedem Start # abgleichen, damit neue Arten ohne manuellen Schritt ankommen. python manage.py seed_dex # Referenzfotos aus Wikipedia. Der Befehl überspringt Arten, die schon eins # haben — nach dem ersten Start kostet er also keine einzige Anfrage mehr. # Netzprobleme dürfen den Start nicht blockieren: ohne Referenzfotos ist die # Sammlung hässlich, aber funktionsfähig. # # 🔑 **Im Hintergrund, und zwar seit dem 09.10.2026.** Davor lief der Abruf # vor gunicorn — bei einer leeren Datenbank sind das rund 148 Anfragen an # Wikipedia, und weil Wikimedia hart drosselt, liegen Pausen dazwischen. Der # allererste Start hat damit minutenlang nichts ausgeliefert: kein Fehler, # keine Seite, nur Stille. Wer dem Schnellstart aus dem README folgt, hält # genau das für kaputt — und es war die Stelle, an der es am leichtesten # passiert. # # Jetzt steht die Sammlung sofort, und die Fotos tropfen nach. Die Arten sind # schon da (seed_dex oben), es fehlen anfangs nur ihre Bilder. python manage.py fetch_reference_images \ || echo "Referenzfotos übersprungen" & exec gunicorn vogelalbum.wsgi:application --bind 0.0.0.0:8000 --workers 3