bin/instagram-sync.php lieferte seit dem 03.09.2026 bei jedem Lauf "Keine Posts ermittelbar". Von einem privaten Anschluss gegengeprueft: feed/user und web_profile_info antworten mit 401 require_login, das Profil-HTML traegt keine Beitragsdaten mehr, auch /embed/ liefert nur noch eine App-Huelle. Es lag also nicht an der Server-IP, und der Scraper ist geloescht, damit ihn niemand wiederbelebt. Graph API (Meta-Konto noetig) und kommerzielle Dienste wurden verworfen. Neu: bin/instagram-add.php. --profil liest die Beitragsliste ueber headless Chrome aus dem gerenderten Profil-DOM (im HTML stehen die Codes nicht) und holt zu jedem neuen Beitrag Bild, Caption und Datum ueber Instagrams oEmbed-Endpunkt; das Datum steckt in der media_id. Daneben einzelne URLs, --liste, --entfernen und --bild als Notfall. Der Shortcode ist Primaerschluessel und damit die komplette Dedupe-Logik. Die Struktur von data/instagram.json bleibt exakt gleich, deshalb war an Startseite, News-Feed und Stadionzeitung nichts zu aendern. Kein Cron mehr: der Job faellt aus public/cron.php, auf dem Webspace gibt es kein Chrome. Die Chrome-Suche liegt jetzt gemeinsam in bin/chrome-lib.php, genutzt von bin/logo-build.php und bin/instagram-add.php. data/instagram.json ist ab jetzt versioniert. Solange sie ignoriert war, lief sie gegen die versionierten Bilder auseinander: lokal lagen 10 Bilder zu 9 Eintraegen, drei Beitraege fehlten im Feed, zwei Eintraege hatten kein Bild. Repariert, jetzt 16 Eintraege zu 16 Bildern. bin/preflight.php prueft das in beide Richtungen. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J9mubC8gtpjtJntbhSJBRS
60 lines
2.6 KiB
Plaintext
60 lines
2.6 KiB
Plaintext
# Secrets — nur config.example.php wird committed
|
|
/config/config.php
|
|
/config/config.production.php
|
|
|
|
# Composer
|
|
/vendor/
|
|
|
|
# Laufzeit-Daten
|
|
/storage/logs/*
|
|
/storage/cache/*
|
|
/storage/ratelimit/*
|
|
# Druck-QR-Codes (bin/qr.php) — Zwischenprodukte für Canva, kein Repo-Inhalt.
|
|
# Wichtig: sie enthalten die base_url fest eingebacken, ein versehentlich
|
|
# eingecheckter localhost-Code wäre eine Falle.
|
|
/storage/qr/
|
|
!/storage/logs/.gitkeep
|
|
!/storage/cache/.gitkeep
|
|
!/storage/ratelimit/.gitkeep
|
|
|
|
# Maschinenverwaltet: die JSON-Caches bleiben draußen, der Sync baut sie neu.
|
|
#
|
|
# Die BILDER dagegen sind versioniert, obwohl sie auch der Sync herunterlädt:
|
|
# eine VERÖFFENTLICHTE Stadionzeitung friert Verweise auf genau diese Dateien
|
|
# dauerhaft ein (Wappen in Tabellen/Ergebnissen/Vorschau, Instagram-Fotos auf der
|
|
# Momente-Seite). Ein frischer Klon zeigte sonst 37 kaputte Bilder im Heft, und
|
|
# der Instagram-Sync räumt alte Posts irgendwann weg — dann bräche eine
|
|
# archivierte Ausgabe nachträglich. Maschinenverwaltet und flüchtig ist nicht
|
|
# dasselbe wie maschinenverwaltet und für immer referenziert.
|
|
# data/instagram.json ist seit dem 17.09.2026 VERSIONIERT: sie ist nicht mehr
|
|
# maschinenverwaltet, sondern chat-gepflegt (bin/instagram-add.php nimmt einzelne
|
|
# Beiträge auf). Ihr Inhalt ist Pflegearbeit und nicht wiederherstellbar — und
|
|
# solange sie ignoriert war, lief sie gegen die versionierten Bilder auseinander:
|
|
# am 17.09.2026 lagen lokal 10 Bilder zu 9 Einträgen, drei Beiträge fehlten im Feed
|
|
# und zwei Einträge hatten kein Bild mehr.
|
|
/data/matchcenter.json
|
|
|
|
# Dateiablage /dateien — Laufzeit-Kram der Files Gallery.
|
|
# Committed bleiben nur system/users/*/config.php (Rechte, keine Passwörter) und
|
|
# system/include/* (Skin). system/config/config.php generiert die App selbst und
|
|
# überschreibt sie bei jedem Update — unsere Werte stehen in _filesconfig.php.
|
|
#
|
|
# uploads/ IST versioniert (Beschluss 31.07.2026) — das Material des Vereins ist
|
|
# damit gesichert und lokal verfügbar. Zwei Bedingungen tragen das:
|
|
# 1. Der Ordner ist ein Schreibziel für ANDERE. Deshalb gilt: erst auf dem
|
|
# Server committen und pushen, dann lokal pullen, dann entwickeln. Nie
|
|
# umgekehrt, sonst arbeiten zwei Stände gegeneinander.
|
|
# 2. Git vergisst nichts. Eine gelöschte Datei bleibt in der Historie, das
|
|
# Repo schrumpft nie wieder. Große Videos deshalb bewusst sparsam.
|
|
/storage/dateien/system/cache/
|
|
/storage/dateien/system/config/
|
|
|
|
# Referenz-Material der alten Seite — NIE committen
|
|
# (.context_db enthält personenbezogene Daten: Mail-Logs, Hashes)
|
|
/.context/
|
|
/.context_db/
|
|
|
|
# OS
|
|
.DS_Store
|
|
docs/pflegebereich-plan.md
|