2.0 KiB
2.0 KiB
Share Inbox Service
Kleiner privater PHP-Service zum Einsammeln von Inhalten per HTTP und zum späteren Abrufen als JSON.
Hinweis zu KI-Unterstützung
Hinweis: Teile dieses Repositories wurden unter Einsatz generativer KI erstellt oder überarbeitet. Die Verantwortung für Inhalt und Veröffentlichung liegt beim Maintainer.
Lizenz
Dieses Repository steht unter der MIT-Lizenz.
Funktionen
POST /sharespeichert eingehende Daten.GET /inboxlistet gespeicherte Einträge.- Storage kann per Flag zwischen
ndjsonundsqliteumgeschaltet werden.
Voraussetzungen
- PHP 8.1+ mit aktiviertem
pdo_sqlite, fallssqlitegenutzt werden soll
Konfiguration
- Beispielkonfiguration kopieren:
cp .env.example .env
- Wichtige Variablen:
INBOX_SECRET: Shared Secret fürPOST /shareINBOX_MAX_BODY_BYTES: maximales Request-Body-LimitINBOX_STORAGE_DIR: Speicherort außerhalb des Webroots, Standardvar/inboxINBOX_STORAGE_BACKEND:ndjsonodersqliteINBOX_CORS_ALLOW_ORIGINS: kommaseparierte Liste erlaubter Origins oder*
Lokal starten
php -S 127.0.0.1:8080 -t src/public src/public/index.php
Beispiele
Request speichern:
curl -X POST http://127.0.0.1:8080/share \
-H "Content-Type: application/json" \
-H "X-Inbox-Secret: change-me" \
-d '{"type":"url","content":"https://example.com"}'
Inbox lesen:
curl "http://127.0.0.1:8080/inbox?limit=20"
Tests
Die Tests benötigen keine externen PHP-Abhängigkeiten und starten den eingebauten PHP-Server selbst.
php tests/run.php
Zusätzlich gibt es weiter einen kleinen manuellen Smoke-Test für eine bereits laufende Instanz:
chmod +x bin/smoke-test.sh
INBOX_SECRET=change-me bin/smoke-test.sh
Hinweise
- Laufzeitdaten liegen standardmäßig unter
var/inbox/und damit nicht im Webroot. - Fehlerdetails gehen ins PHP-Error-Log, nicht mehr an Clients.
sqliteist als optionaler Modus gedacht; Standard bleibtndjson.