Die Werte stehen je Umgebung in .env.local (lokal), .env.stage oder .env.live. Die Spalte Standard zeigt den Wert aus der mitgelieferten .env, sofern dort einer gesetzt ist.
| Variable | Standard | Bedeutung |
|---|---|---|
APP_ENV |
dev |
Symfony-Umgebung. compose.live.yml setzt prod, compose.stage.yml und der lokale Stack setzen dev (mit Debug-Werkzeugen wie Profiler und Debug-Toolbar, die ohne Anmeldung erreichbar sind, siehe Sicherheit) |
APP_DEBUG |
0 |
Debug-Modus |
APP_SECRET |
leer | Geheimer Schlüssel der App, Pflichtwert. Erzeugen mit php -r "echo bin2hex(random_bytes(32));" |
DATABASE_URL |
sqlite:///%kernel.project_dir%/var/data.db |
Datenbank. Vorgesehen ist SQLite, ein eigener Datenbank-Container ist nicht nötig |
MESSENGER_TRANSPORT_DSN |
doctrine://default?auto_setup=0 |
Warteschlange für Checks und E-Mails, liegt in derselben Datenbank |
APP_ADMIN_USER |
admin |
Benutzername des einzigen Admin-Zugangs |
APP_ADMIN_PASSWORD_HASH |
not-set |
Bcrypt-Hash des Admin-Passworts, siehe Installation |
MAILER_DSN |
smtp://mailpit:1025 |
SMTP-Zugang für Alarm-E-Mails, z. B. smtp://user:pass@smtp.example.com:587 |
MAILER_FROM |
watchdog@example.com |
Absenderadresse der Alarm-E-Mails |
DEFAULT_URI |
http://localhost:8087 |
Basis-URL für das URL-Generieren außerhalb von Web-Requests. In den Alarm-E-Mails steht kein Link zur App |
TRUSTED_PROXIES |
leer | IP des Reverse Proxys, niemals *. In compose.stage.yml und compose.live.yml setzt Compose den Wert fest auf REMOTE_ADDR, ein Eintrag in der Env-Datei wirkt dort nicht |
WATCHDOG_AGENT_TOKEN |
leer | Token des Host-Agenten, siehe Agenten |
WATCHDOG_DASHBOARD_URL |
leer | Nur für Agenten: Basis-URL des Dashboards ohne abschließenden Schrägstrich |
HOST_ROOT |
leer | Nur für Agenten: Pfad-Präfix, unter dem das Host-Dateisystem eingebunden ist, z. B. /host/root |
DOCKER_GID |
995 |
Nur Compose: Gruppen-ID des Docker-Sockets für Worker und Scheduler (group_add) |
Zeitzone: Dockerfile und Compose-Dateien setzen Europe/Berlin. Zeiten in der Oberfläche, die tägliche Ausführungszeit und die Aufbewahrungsbereinigung beziehen sich auf diese Zeitzone.
Die Navigation besteht aus Dashboard, Clients, Contacts und Agents.
| Feld | Bedeutung |
|---|---|
| Name | Anzeigename, steht in Betreff und Text der Alarm-E-Mails |
| Active | Inaktive Clients werden nicht geplant und nicht an Agenten ausgeliefert. Manuelles Run now funktioniert trotzdem |
| Alert contacts | Empfänger der Alarm-E-Mails für alle Checks dieses Clients. Ohne Kontakte versendet Watchdog keine E-Mails |
Löschst Du einen Client, verschwinden auch seine Checks.
| Feld | Bedeutung |
|---|---|
| URL | Muss eine gültige URL mit Domain-Endung sein, Hostnamen ohne Punkt wie http://localhost lehnt das Formular ab |
| Label (optional) | Kurzname für Auswahllisten und E-Mails, standardmäßig die URL |
| BasicAuth username / password | Optionale Zugangsdaten, die HTTP- und HTTP-Inhalt-Checks mitsenden. Das Passwort wird unverschlüsselt in der Datenbank gespeichert |
| Feld | Standard | Bedeutung |
|---|---|---|
| Check type | Einer der Check-Typen | |
| Runner | Dashboard (Network) | Dashboard (Network) führt den Check im Worker-Container aus, Agent (Local) auf einem Agenten. Welche Runner ein Typ erlaubt, regelt das Formular per JavaScript |
| Agent | Nur bei Runner Agent: der ausführende Agent | |
| Interval | 5 min | Abstand zwischen zwei Läufen in Tagen, Stunden und Minuten, mindestens 1 Minute |
| Daily at (optional) | leer | Uhrzeit HH:MM. Wenn gesetzt, läuft der Check einmal täglich zu dieser Zeit und das Intervall wird ignoriert |
| Keep results for (days) | leer | Aufbewahrungsdauer der Ergebnisse. Leer behält alle Ergebnisse |
| Active | an | Inaktive Checks werden nicht geplant |
Die typspezifischen Felder stehen auf den Seiten der einzelnen Check-Typen. Felder, die Du leer lässt, ersetzt Watchdog beim Ausführen durch die Standardwerte des Typs.
Das Intervall ist ein Richtwert mit kleiner Toleranz. Der Scheduler prüft Dashboard-Checks im Minutentakt und startet einen Check, sobald seit dem letzten Ergebnis mindestens das Intervall minus 30 Sekunden vergangen sind. Der Agent prüft alle 30 Sekunden und startet einen Check, sobald das Intervall minus 5 Sekunden erreicht ist. Ein Intervall unter einer Minute gibt es nicht.
Täglich um 03:00 Uhr löscht der Scheduler für jeden Check mit gesetzter Aufbewahrung alle Ergebnisse, die älter als die angegebene Zahl an Tagen sind. Checks ohne Wert behalten alle Ergebnisse. Bei einem Check im Fünf-Minuten-Takt entstehen rund 288 Ergebnisse pro Tag, setze die Aufbewahrung daher bewusst.
Impressum und Datenschutzerklärung im Footer sind Platzhalter. Die Dateien templates/legal/impressum.html.twig und templates/legal/datenschutz.html.twig kannst Du durch eigene Texte ersetzen. Die Vorlagen liegen als *.dist bei, make setup legt fehlende Dateien daraus an.
| Thema | Wert |
|---|---|
| API-Rate-Limit | 60 Anfragen pro Minute und IP für alle Pfade unter /api/ |
| Fehlgeschlagene Nachrichten | Wiederholungen: bis zu 3, jeweils mit doppeltem Abstand, danach Transport failed |
| Container-Neustart | Worker und Scheduler beenden sich nach 3600 Sekunden oder 128 MB Speicher und starten durch restart: unless-stopped neu |