{"id":21330490,"url":"https://github.com/friendsofredaxo/maintenance","last_synced_at":"2026-04-01T17:32:35.631Z","repository":{"id":24824243,"uuid":"102537723","full_name":"FriendsOfREDAXO/maintenance","owner":"FriendsOfREDAXO","description":"Wartungsmodus: Sperrung des Frontends für Besucher und des Backends für Redakteure","archived":false,"fork":false,"pushed_at":"2025-11-16T14:06:09.000Z","size":3895,"stargazers_count":59,"open_issues_count":1,"forks_count":7,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-11-16T15:09:34.955Z","etag":null,"topics":["backend","frontend","maintenance","maintenance-mode","redaxo","redaxo-addon"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FriendsOfREDAXO.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-09-05T22:59:20.000Z","updated_at":"2025-11-16T14:05:18.000Z","dependencies_parsed_at":"2024-07-07T21:46:28.645Z","dependency_job_id":"ec1e84ab-2959-467b-84f0-dd8d5093c25f","html_url":"https://github.com/FriendsOfREDAXO/maintenance","commit_stats":null,"previous_names":[],"tags_count":60,"template":false,"template_full_name":null,"purl":"pkg:github/FriendsOfREDAXO/maintenance","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FriendsOfREDAXO%2Fmaintenance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FriendsOfREDAXO%2Fmaintenance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FriendsOfREDAXO%2Fmaintenance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FriendsOfREDAXO%2Fmaintenance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FriendsOfREDAXO","download_url":"https://codeload.github.com/FriendsOfREDAXO/maintenance/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FriendsOfREDAXO%2Fmaintenance/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284734138,"owners_count":27054622,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-16T02:00:05.974Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend","frontend","maintenance","maintenance-mode","redaxo","redaxo-addon"],"created_at":"2024-11-21T22:19:25.615Z","updated_at":"2026-04-01T17:32:35.624Z","avatar_url":"https://github.com/FriendsOfREDAXO.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wartung (Maintenance) für REDAXO 5.x\n\nDas AddOn ermöglicht es Administratoren, das Frontend und/oder des Backend von REDAXO für Besucher und/oder Redakteure zu sperren. Zum Beispiel bei Wartungsarbeiten oder in der Entwicklungsphase.\n\n## Funktionen\n\n### Sperren des Frontends\n\n* Wahl der Authentifizierung: Geheime URL oder Passwort\n* Optionales Sperren des Frontends auch für REDAXO-Benutzer (außer Admins)\n* Optionale Weiterleitung zu einer festgelegten URL, z.B. REDAXO-Login\n* Festlegen des HTTP-Statuscodes (z.B. 503 Service Unavailable)\n* **Silent Mode**: Nur HTTP-Status ohne HTML-Content (ideal für Staging/Development)\n* Anpassen der Sperrseite durch eigenes Fragment (`maintenance/frontend.php`)\n* Definieren von Ausnahmen, die dennoch Zugriff erhalten, z.B. für\n  * IP-Adressen (einzelne IPs und CIDR-Bereiche, z.B. `192.168.1.0/24` oder `2001:db8::/32`, IPv4 und IPv6)\n  * Hosts\n  * YRewrite-Domains (neu in Version 3.0.0)\n* **Automatische search_it-Erkennung**: Der search_it-Crawler wird anhand des Absenders automatisch erkannt und darf crawlen (neu in Version 4.1.0)\n* Meldung und Zeitraum zur Ankündigung eines Wartungsfensters definieren (neu in Version 3.0.0)\n* **Zeitgesteuerte Wartung**: Automatische Aktivierung/Deaktivierung zu festgelegten Zeiten (neu in Version 3.5.0)\n\n### Zeitgesteuerte Wartung\n\nDie **zeitgesteuerte Wartung** ermöglicht es, den Wartungsmodus automatisch zu einem bestimmten Zeitpunkt zu aktivieren und zu deaktivieren:\n\n* **Cronjob-basiert**: Die Ausführung erfolgt ausschließlich über den Cronjob \"Geplante Wartung prüfen\"\n* **Automatische Bereinigung**: Nach erfolgreicher Deaktivierung werden die geplanten Zeiten automatisch gelöscht\n\n**Verwendung:**\n\n1. **Cronjob einrichten** (erforderlich):\n   - Im REDAXO-Backend zu **System \u003e Cronjobs** navigieren\n   - Auf **\"+\"** klicken, um einen neuen Cronjob zu erstellen\n   - Folgende Einstellungen vornehmen:\n     - **Name**: z.B. \"Geplante Wartung prüfen\"\n     - **Typ**: `Geplante Wartung prüfen` (aus Dropdown wählen)\n     - **Ausführungsart**: z.B. \"Jede Minute\" oder \"Alle 5 Minuten\"\n     - **Umgebung**: \"Frontend, Backend, Skript\"\n   - Speichern\n\n2. In den Frontend-Einstellungen unter \"Zeitgesteuerte Wartung\":\n   - **Startzeitpunkt** eingeben (z.B. `2025-12-31 02:00:00`)\n   - **Endzeitpunkt** eingeben (z.B. `2025-12-31 06:00:00`)\n3. Speichern - der Wartungsmodus wird zur konfigurierten Zeit automatisch aktiviert und deaktiviert\n\n**Format**: `YYYY-MM-DD HH:MM:SS` (z.B. `2025-12-31 23:59:59`)\n\n**Wichtig**: Ohne eingerichteten Cronjob funktioniert die zeitgesteuerte Wartung nicht!\n\n### Sperren des REDAXO-Backends\n\n* Sperren des REDAXO-Backends für alle Benutzer (außer Admins)\n\n### Wartungsmodus ankündigen\n\nEine Meldung und Zeitraum zur Ankündigung eines Wartungsfensters definieren (neu in Version 3.0.0). Die Ausgabe erfolgt über `FriendsOfRedaxo\\Maintenance\\Maintenance::getAnnouncement()`, z.B.\n\n```php\n$announcement = FriendsOfRedaxo\\Maintenance\\Maintenance::getAnnouncement();\nif($announcement) {\n    echo '\u003cdiv class=\"alert alert-danger\"\u003e'.$announcement.'\u003c/div\u003e';\n}\n```\n\nEine für Nutzer*innen hilfreiche Meldung ist beispielsweise:\n\n\u003e Geplante Wartungsarbeiten am 01.01.2022 von 00:00 bis 06:00 Uhr. In dieser Zeit ist die Website möglicherweise nicht erreichbar.\n\n### Eigene HTML-Seite für den Wartungsmodus\n\nStandardmäßig wird eine einfache HTML-Seite angezeigt, die den Wartungsmodus anzeigt.\n\nDiese kann durch eine eigene HTML-Seite ersetzt werden. Dazu muss im Projekt-AddOn ein Ordner `fragments/maintenance` angelegt werden. In diesem Ordner kann eine Datei `frontend.php` mit eigenem HTML-Code erstellt werden. D.h. `/src/addons/maintenance/fragments/maintenance/frontend.php`\n\nSo kann bspw. eigener Text, Logo oder komplett andere Gestaltung erfolgen.\n\n### Silent Mode für Staging/Development-Umgebungen\n\nDer **Silent Mode** ist ideal für Staging-Systeme und Development-Umgebungen, die permanent gesperrt sein sollen:\n\n* Sendet nur den HTTP-Status-Code (z.B. 503 oder 403)\n* Zeigt **keine** HTML-Wartungsseite an\n* Verhindert Rückschlüsse auf das verwendete CMS\n* Perfekt für Produktiv-Vorschau-Systeme, die nur nach Login zugänglich sein sollen\n\n**Aktivierung:** In den erweiterten Einstellungen (Einstellungen) unter \"HTTP-Einstellungen\" die Option \"Silent Mode\" aktivieren.\n\n## Anzeige des aktuellen Status im REDAXO-Hauptmenü\n\nDer Menüeintrag erhält bei Aktivierung einer der Wartungsmodi ein zusätzliches Tag.\n\n* Standard: Alle Funktionen sind deaktiviert.\n* `F` in rotem Tag: Der Wartungsmodus ist für das Frontend aktiv.\n* `B` in blauem Tag: Der Wartungsmodus ist für das Backend aktiv.\n\n## Extensionpoint MAINTENANCE_MEDIA_UNBLOCK_LIST\n\nÜber diesen Extension-Point kann ein Array mit Medien übergeben werden, die das Addon nicht sperren soll.\n\n## `search_it` und Wartungs-Modus\n\nIst die Frontendsperre aktiviert, erkennt das Addon den `search_it`-Crawler automatisch und lässt ihn durch. Der Crawler sendet beim Indexieren den Parameter `search_it_build_index` und wird zusätzlich über die Absender-IP (Loopback oder Server-IP) verifiziert. Ein manueller Eintrag der Server-IP in der Whitelist ist **nicht mehr nötig**.\n\n\u003e **Sicherheitshinweis:** Der Bypass gilt nur für Requests, die vom Server selbst kommen (`127.0.0.1`, `::1` oder `SERVER_ADDR`). Externe Besucher können diesen Mechanismus nicht missbrauchen.\n\n## Konsole\n\nDas Addon bietet verschiedene Konsolen-Befehle zur Verwaltung des Wartungsmodus:\n\n### Status anzeigen\n\nZeigt den aktuellen Status aller Wartungsmodi an:\n\n```bash\nphp redaxo/bin/console maintenance:mode status\n```\n\n### Frontend-Wartungsmodus\n\nAktivieren:\n```bash\nphp redaxo/bin/console maintenance:mode frontend on\n```\n\nDeaktivieren:\n```bash\nphp redaxo/bin/console maintenance:mode frontend off\n```\n\n### Backend-Wartungsmodus\n\nAktivieren:\n```bash\nphp redaxo/bin/console maintenance:mode backend on\n```\n\nDeaktivieren:\n```bash\nphp redaxo/bin/console maintenance:mode backend off\n```\n\n### Alle Modi gleichzeitig\n\nAlle Wartungsmodi (Frontend, Backend und alle Domains) aktivieren:\n```bash\nphp redaxo/bin/console maintenance:mode all on\n```\n\nAlle Wartungsmodi deaktivieren:\n```bash\nphp redaxo/bin/console maintenance:mode all off\n```\n\n### Domain-spezifische Wartung (YRewrite)\n\nEinzelne Domain sperren:\n```bash\nphp redaxo/bin/console maintenance:mode domain example.com --lock\n```\n\nEinzelne Domain entsperren:\n```bash\nphp redaxo/bin/console maintenance:mode domain example.com --unlock\n```\n\n### Legacy-Unterstützung\n\nDie alten Befehle funktionieren weiterhin (steuern nur den Frontend-Modus):\n\n```bash\nphp redaxo/bin/console maintenance:mode on\nphp redaxo/bin/console maintenance:mode off\n```\n\n## Autor\n\n[FriendsOfREDAXO](https://github.com/FriendsOfREDAXO)\n\n## Projekt-Lead\n\n* [Simon Krull](https://github.com/crydotsnake)\n* [Thomas Skerbis](https://github.com/skerbis)\n\n\n## Credits\n\nDanke an:\n\n* [Christian Gehrke](https://github.com/chrison94) // first version\n* [Joachim Dörr](https://github.com/joachimdoerr)\n* [Thorben](https://github.com/eaCe)\n* [Oliver Kreischer](https://github.com/olien)\n* [Alexander Walther](https://www.alexplus.de)\n\n* u.v.a\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffriendsofredaxo%2Fmaintenance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffriendsofredaxo%2Fmaintenance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffriendsofredaxo%2Fmaintenance/lists"}