Nostr-Engagement-Features — Kontext & Lernprotokoll

Erstellt: 2026-07-21 Status: Draft (nicht production-ready) Ziel: Späteres Wiederaufgreifen ohne bei Null anzfangen

❌ Warum nicht production-ready

  1. Follower-Zählung = 0: Keine Relay-Abfragen implementiert. Platzhalter-Werte.
  2. Engagement = 0: Keine Posts haben event_id in state.json.
  3. Kein Event-ID-Workflow: Alte Posts (vor dem Status-Machine) haben keine event_ids.

📁 Dateien (alle im Draft-Verzeichnis)

state.json

generate_nostr_stats.py

engagement_fetcher.py

insights.astro (modifiziert)

Caddyfile (modifiziert)

Crontab

0 3 * * * /usr/bin/python3 /data/scripts/blog/generate_nostr_stats.py /tmp/nostr-stats.json && scp /tmp/nostr-stats.json floki:/home/cipherfox/sovereign-blog/srv/nostr-stats.json && ssh floki 'docker restart sovereign-caddy'

🔧 Was zum Laufen gebracht wurde

  1. generate_nostr_stats.py generiert korrekte nostr-stats.json
  2. ✅ Caddyfile-Handler auf Floki serviert /api/nostr-stats.json
  3. nostr-stats.json wird von Floki via Docker-Volume gemountet
  4. ✅ Crontab auf sparki generiert + deployt (wurde bereinigt)
  5. ✅ insights.astro zeigt Follower-Karten + Engagement-Zellen

🚧 Was noch fehlt

  1. Relay-Follower-Zählung:

  2. Event-ID-Workflow:

  3. Integration:

📋 Nächste Schritte (wiederaufgreifen)

  1. state.json mit event_ids füllen (alte Posts manuell oder neue via status machine)
  2. Relay-Follower-Zählung implementieren (nostr-tools)
  3. insights.astro mit Nostr-Features neu erstellen (aus draft kopieren)
  4. Caddyfile nostr-stats-Handler wieder einfügen
  5. Crontab aktivieren
  6. Testen: curl https://sovgrid.org/api/nostr-stats.json
  7. Deploy: npm run build && deploy.sh

📚 Referenzen