Gesamte Doku

Start

  1. 01Erste Schritte
  2. 02Installation
  3. 03Tracking

Funktionen

  1. 04Das Dashboard
  2. 05Ziele
  3. 06Kurzlinks
  4. 07KI-Quellen und Agenten
  5. 08E-Mail-Berichte
  6. 09Stündlicher Check
  7. 10Frag deine KI

Referenz

  1. 11Konfiguration
  2. 12HTTP-API

Plattformen

  1. 13Eigenständiger Server
  2. 14PHP
  3. 15WordPress
  4. 16Drupal
  5. 17Craft CMS
  6. 18Python
  7. 19Rails
  8. 20Ruby
  9. 21Go
  10. 22Java
  11. 23.NET
  12. 24Elixir
  13. 25Rust

Vertrauen

  1. 26Datenschutz

Funktionen

Stündlicher Check

Eine Anfrage pro Stunde hält Salts, Berichte, Aufbewahrung und Tagessummen aktuell.

Einmal pro Stunde erzeugt Runlight den neuen Salt des Tages zum Zählen der Besucher und löscht die alten. Derselbe Lauf verschickt fällige E-Mail-Berichte und löscht Besuche, die älter sind, als eine Website sie behält. Außerdem summiert er jeden abgeschlossenen Tag auf, damit lange Zeiträume schnell laden. Diese Pflege passiert, wenn etwas den Check aufruft.

bash

curl -X POST https://example.com/runlight/api/check -H "Authorization: Bearer $CRON_SECRET"

Der Check nimmt GET oder POST an, mit CRON_SECRET (oder dem Dashboard-Token) als Bearer-Token. Ihn öfter aufzurufen schadet nicht.

Besuche werden auch ohne den Check richtig gezählt, weil der erste Besuch des Tages ebenfalls den Salt erzeugt. Ohne ihn gehen aber keine Berichte raus, und Besuche jenseits der Aufbewahrungsdauer einer Website bleiben erhalten. Lange Zeiträume bleiben dann auch langsamer, weil sie jeden einzelnen Besuch lesen.

Vercel

Setze CRON_SECRET in den Umgebungsvariablen des Projekts und füge dann den Cron zu vercel.json hinzu.

vercel.json

{
  "crons": [{ "path": "/runlight/api/check", "schedule": "0 * * * *" }]
}

Vercel ruft ihn mit GET und dem Secret als Bearer-Token auf, und genau das erwartet Runlight.

Überall sonst

Jeder Scheduler, der eine HTTPS-Anfrage stellen kann, funktioniert, etwa eine Zeile in der crontab, GitHub Actions, Cloudflare Cron Triggers oder der Scheduler deiner Plattform.

bash

0 * * * * curl -fsS -X POST https://example.com/runlight/api/check -H "Authorization: Bearer YOUR_CRON_SECRET" > /dev/null

Du kannst auch await rl.check() aus Code aufrufen, der bei dir ohnehin per Timer läuft. Die Seite jeder Sprache zeigt ihren eigenen Weg, den Check auszuführen, etwa bin/rails runlight:check in Rails oder einen Hosted Service in .NET. Die eigenständigen Server führen ihn alle fünf Minuten selbst aus.