Excubia
Health-Checks für Laravel-Apps.
Ein Befehl liest Ihre Lockfiles und zeigt, was keinen Support mehr hat, verwundbar oder verwaist ist oder das nächste Laravel-Major blockiert, und in welcher Reihenfolge Sie es beheben. Über Artisan prüft Excubia auch die laufende App und ihre Infrastruktur. Open Source unter MIT, in der CI und in Produktion.
vendor/bin/excubia checkExcubiaHealth checks for Laravel apps.3 critical · 2 high · 3 medium · 2 low Criticalphp Security support ended on 2025-12-31. Upgrade PHP to 8.5 (supported until 2029-12-31).laravel/framework Security fixes ended on 2025-02-04. Upgrade to Laravel 11; security fixes for your version end 2025-02-04. Highlaravel/framework Known vulnerability PKSA-3r5d-mb8f-1qw9. Update laravel/framework to ≥ fixed version (PKSA-3r5d-mb8f-1qw9).… Upgrade plan1. Update laravel/framework to ≥ fixed version (fixes 7 advisories).2. Upgrade PHP to 8.5 (supported until 2029-12-31).3. Upgrade to Laravel 11; security fixes for your version end 2025-02-04.Über 40 Checks, ein Report
Alles in Ihrer App, das veraltet oder ausfällt
Die Lockfile-Checks laufen überall mit vendor/bin/excubia, ohne Ihre App zu starten. Über php artisan excubia:check prüft Excubia zusätzlich die gestartete App und die Dienste, von denen sie abhängt. Jeder Report endet mit einem geordneten Upgrade-Plan.
- Support-Ende
- PHP, Laravel und Node: eine Warnung, bevor der Sicherheitssupport endet, ein Fehler, sobald er beendet ist.
- Bekannte Sicherheitslücken
- Composer-Pakete gegen die Sicherheitshinweise von Packagist; npm-, Yarn- und pnpm-Pakete gegen OSV.dev.
- Zustand der Pakete
- Verwaiste, veraltete und nicht aktualisierte Pakete, Lizenzen der Abhängigkeiten und die PHP-Erweiterungen, die Ihre Pakete brauchen.
- Nächstes Laravel-Major
- Direkte Abhängigkeiten, deren neuestes Release das nächste Laravel-Major noch nicht erlaubt.
- App-Konfiguration
- Debug-Modus, App-Key, Caches, offene Migrationen, Session-Cookies, CORS, Treiber in Produktion, Log-Level, Dev-Pakete und
.env.example. - Infrastruktur
- Datenbank, Cache, Speicher, Festplattenplatz, Queues und Worker (inklusive Horizon), Scheduler, Redis-Speicher und Backups.
- PHP in Produktion
- OPcache- und php.ini-Einstellungen so, wie der Webserver sie sieht, nicht die CLI.
- Laravel-Pakete
- Octane, Reverb, Cashier, Sanctum und Passport, nur wenn sie installiert sind.
Gemacht für CI
Lieber der Build scheitert als die Produktion
Die Standalone-CLI braucht nur PHP und Ihre composer.lock: keine Datenbank, keine .env, keine Installation Ihres Projekts. Die Ausgabe ist für Menschen, Skripte und KI-Agenten gemacht.
- Verlässliche Exit-Codes.
--fail-onstoppt die Pipeline, sobald ein Befund die gewählte Schwere erreicht, bevor ein verwundbares Release live geht.- GitHub Action und SARIF.
qiick-io/excubia-core@v1führt den Check aus, schreibt den Report in die Job-Zusammenfassung und sendet die Befunde an GitHub Code Scanning.- Tabelle, JSON, Markdown oder SARIF.
- Eine lesbare Tabelle im Terminal, versioniertes JSON für Skripte und Agenten, Markdown für Pull Requests.
- Konfiguration im Repository.
excubia.jsonsetzt Schwellenwerte, schaltet Checks ab und ignoriert einen einzelnen Sicherheitshinweis mit Begründung und Ablaufdatum.
name: Excubia
on:
pull_request:
schedule:
- cron: '0 6 * * 1'
permissions:
contents: read
security-events: write
jobs:
excubia:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: qiick-io/excubia-core@v1
with:
fail-on: criticalIn Produktion
Monitoring auf Ihrem eigenen Server
In der ausgelieferten App installiert, kann Excubia an excubia-app berichten, das Open-Source-Dashboard, das Sie selbst hosten. Jeder Teil ist standardmäßig aus und wird einzeln in excubia.json eingeschaltet.
- Geplante Reports
excubia:pushsendet den vollständigen Report aus dem Scheduler und nach jedem Deployment, mit Deploy-Markern.- Laufzeitdaten
- Aggregiert und gesampelt: Requests, Jobs, Queries und N+1-Muster, Mails, Cache, geplante Tasks, Serverressourcen und die Nutzung des Laravel AI SDK.
- Exceptions
- Gruppiert und maskiert, bevor sie die App verlassen, auch fehlgeschlagene Queue-Jobs und Artisan-Befehle.
- Health-Endpoint
- Ein mit Oh Dear kompatibler Endpoint, dazu minütliche Health-Samples für Alerts in excubia-app.
- Keine Inhalte
- Zählwerte, Zeiten und Namen; Exception-Meldungen werden maskiert. Nie Request-Bodys, Query-Werte oder Nachrichteninhalte.
- Nichts geht an Qiick
- Daten gehen nur an Ihre eigene excubia-app, nie an Qiick oder Dritte. Keine Telemetrie.
Auch excubia-app ist Open Source: das selbst gehostete Dashboard für Reports, Laufzeitdaten, Exceptions und Alerts. qiick-io/excubia-app
Loslegen
Mit einem Befehl installiert
Excubia ist ein Composer-Paket für PHP 8.2+. Es liest composer.lock und Ihr JavaScript-Lockfile; die Artisan-Befehle brauchen Laravel 12 oder 13.
Paket installieren
Als Dev-Abhängigkeit, für Checks auf Ihrem Rechner und in der CI.
composer require --dev qiick/excubia-coreChecks ausführen
Startet nie Ihre App und führt keinen Projektcode aus. In einer Laravel-App ergänzt
php artisan excubia:checkdie Konfigurations- und Infrastruktur-Checks.vendor/bin/excubia checkIn Produktion (optional)
Ohne
--devin der ausgelieferten App installieren, um Reports zu senden, Laufzeitdaten zu übertragen oder den Health-Endpoint anzubieten.php artisan excubia:push
Nur Namen und Versionen verlassen Ihren Rechner. Die Checks senden Paket- und Laufzeitnamen samt Versionen an die öffentlichen Datenquellen, die sie abfragen, sonst nichts: keine Dateiinhalte, keine .env-Werte, kein Quellcode, keine Pfade oder Hostnamen. Private Pakete werden nie gesendet. Keine Telemetrie.
Warum Excubia?
- excŭbĭae
- excŭbĭae, ārum, f.von excubo, „draußen liegen, Wache halten“
- „das Wachehalten draußen, das Wachen“; konkret „die Wachehaltenden, die Wache“
- nach Lewis & Short, A Latin Dictionary (1879)
Im Lateinischen waren die excubiae die Wachen vor dem Lager oder dem Haus: die Posten, die Wache hielten, damit alle anderen ruhen konnten. Excubia übernimmt diese Aufgabe für Ihre Laravel-App. Es prüft Lockfiles, Abhängigkeiten sowie PHP- und Node-Versionen, damit Sie von Problemen erfahren, bevor Ihre Nutzer sie bemerken.
Roadmap
Heute Release Candidate, bald 1.0
Excubia 1.0 ist funktional vollständig, die öffentlichen Schnittstellen sind eingefroren: CLI-Optionen, Report-JSON, Check-IDs, Exit-Codes, excubia.json und die Push-Formate. Bis 1.0.0 kommen nur noch Fehlerbehebungen. Als Nächstes, in dieser Reihenfolge:
01
Excubia 1.0
Dieselben Funktionen und Schnittstellen wie der Release Candidate, nach einer letzten Runde Fehlerbehebungen und Feedback.
02
excubia-app 1.0
Das stabile, selbst gehostete Dashboard für Reports, Laufzeitdaten, Exceptions und Alerts.
03
1.1: Request-Traces
Gesampelte Request-Traces, wie alles andere optional.
04
1.1: Logs und Nutzer
Log-Einträge und pseudonyme Nutzerzahlen, jeweils optional mit eigener Stufe für personenbezogene Daten.