From f20b2ba1c6966d7730d11eec74ec64f2a0641699 Mon Sep 17 00:00:00 2001 From: Kevin Adametz Date: Thu, 8 Oct 2026 11:00:45 +0000 Subject: [PATCH] Protokoll der Umstellung mit Aufraeum-Liste, Kommentar Execution-Reminder - dev/betrieb/2026-10-08-protokoll-umstellung.md: Ergebnis, Releases, Aufraeumen ab 22.10.2026 (Server, Mac, Git-Server), offene Punkte - Kernel: abo:send-execution-reminder ist bewusst aktiv (veralteten Kommentar entfernt) Co-Authored-By: Claude Opus 5.5 --- app/Console/Kernel.php | 4 +- .../2026-10-08-protokoll-umstellung.md | 75 +++++++++++++++++++ dev/betrieb/README.md | 5 +- 3 files changed, 79 insertions(+), 5 deletions(-) create mode 100644 dev/betrieb/2026-10-08-protokoll-umstellung.md diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index e9534d7f..fadcd896 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -77,9 +77,7 @@ class Kernel extends ConsoleKernel ->withoutOverlapping(60) ->runInBackground(); - // Abo-Einmalprodukte: Reminder-Mail vor der Ausführung (Einmalprodukte-Fenster). - // BEWUSST INAKTIV bis zum Abschluss des Review-Gates (Feature aktuell nur VIP - // im Sales Center, Portal ausgeblendet). Nach Freigabe einkommentieren: + // Abo-Einmalprodukte: Reminder-Mail vor der Ausführung (Einmalprodukte-Fenster) $schedule->command('abo:send-execution-reminder')->dailyAt('06:00'); // Abo-Chart-Snapshots: vergangene Monate einfrieren (nach allen Abo-Jobs) diff --git a/dev/betrieb/2026-10-08-protokoll-umstellung.md b/dev/betrieb/2026-10-08-protokoll-umstellung.md new file mode 100644 index 00000000..3bb2c261 --- /dev/null +++ b/dev/betrieb/2026-10-08-protokoll-umstellung.md @@ -0,0 +1,75 @@ +# Protokoll: Umstellung auf Git-Deploy und Betriebsüberwachung (07.–08.10.2026) + +**Stand:** 08.10.2026 · Live auf `v1.2.2` · Anleitung für den laufenden Betrieb: [README.md](README.md) + +## Ergebnis + +| Bereich | Vorher | Jetzt | +|---|---|---| +| Deploy | SFTP mit Dateilisten | Git-Tag, `bash dev/betrieb/deploy.sh vX.Y.Z` (nur auf Live, bricht vor Änderungen ab) | +| Version | unbekannt | Datei `RELEASE`, `php artisan about --only=mivita`, Systemstatus | +| Queue | `QUEUE_DRIVER=sync` | Horizon (Ploi-Daemon), `QUEUE_DRIVER=redis`, `after_commit` | +| Überwachung | keine | Sysadmin → Systemstatus, `/health` (Token), Scheduler-Herzschlag | +| Alarme | keine | Mail bei fehlgeschlagener geplanter Aufgabe oder Queue-Job (1×/h je Meldung) | +| Git-Repository | 7,2 GB, `.env` und Schlüssel in der Historie | 41 MB, Historie bereinigt | + +## Releases + +| Tag | Inhalt | +|---|---| +| `v1.0.0` | erster Git-Release: `deploy.sh`, Version aus `RELEASE`, `public/vendor` versioniert (ausgedünnt), Horizon vorbereitet | +| `v1.0.1` | Live-Abgleich: Übersetzungen und Seiten (`partner`, `ueber-uns`, `erreichbarkeit`) von Live übernommen, Laufzeitdateien (`storage/fonts`, `storage/reports`, OAuth-Schlüssel) und `public/phpinfo.php` raus | +| `v1.1.0` | Systemstatus im Sysadmin-Bereich, `/health`, Scheduler-Herzschlag | +| `v1.1.1` | `bootstrap/cache` nicht mehr versioniert | +| `v1.2.0` | Alarm-Mails, kurze `withoutOverlapping`-Sperren | +| `v1.2.1` | bereinigte Git-Historie (alle Hashes neu), IDE-Helper-Dateien nicht mehr versioniert | +| `v1.2.2` | `deploy.sh` nur bei `APP_ENV=production`, `dev/app-bak` entfernt | + +Alle Tags vor dem 08.10. wurden beim Bereinigen der Historie neu erzeugt; Commit-Hashes in älteren +Notizen unter `dev/` gehören zur alten Historie. + +## Erledigt auf dem Server + +- Deploy-Key (nur lesen) für `forge.adametz.media`, Host-Key geprüft, FPM-Reload ohne Passwort getestet +- Live-Verzeichnis in einen Git-Checkout umgewandelt; Dateien nur auf Live nach `~/vor-git/` verschoben +- `.git` nach der Historien-Bereinigung neu aufgesetzt +- `.env`: `MONITORING_HEALTH_TOKEN`, `QUEUE_DRIVER=redis`; Zugangsdaten aus der früheren `.env`-Historie getauscht +- Horizon als Ploi-Daemon, Worker-Prüfung grün +- Cron: Ploi-Eintrag in `/etc/cron.d/` (`schedule:run` jede Minute, Benutzer `ploi`) — nicht in `crontab -l` +- Branches `payment/phase-r-payone-refactoring` und `wip/payment-phase-r-payone-refactoring-2026-09-28` gelöscht; gearbeitet wird auf `master` + +## Aufräumen — ab 22.10.2026, wenn bis dahin nichts aufgefallen ist + +Alles hier sind Sicherungen aus der Umstellung; nichts davon wird von der App benutzt. + +**Auf dem Server** (`ploi@mivita-prod`): + +```bash +rm -rf ~/git-alt-2026-10-08 # altes .git vor der Bereinigung (7 GB) +rm -rf ~/vor-git # Dateien, die nur auf Live lagen (alte Views, Duplikat-Migrationen, nikki-beach-Bilder, wartung.php, .phpinfo.php, cron_script.sh, Theme-Reste aus public/vendor, IDE-Dateien) +rm -f ~/live-abweichungen.tgz # Archiv für den Abgleich +rm -f ~/backup-vor-git-2026-10-07.tgz # Sicherung des Live-Verzeichnisses vor der Umwandlung +rm -f /home/ploi/mivita.care/storage/logs/scheduler.log # Diagnose-Log vom 07.10. +``` + +**Auf dem Mac** (im Projektordner, alles unter `_work/`, also nicht versioniert): + +```bash +rm -rf _work/git-alt-2026-10-08 # altes .git vor der Bereinigung (7 GB) +rm -rf _work/mivita-clean.git # bereinigte Kopie, aus der gepusht wurde +rm -rf _work/live-abweichungen _work/live-abweichungen.tgz # Abgleich mit Live +rm -rf _work/migrations-duplikate # zwei doppelte Migrationen (Klassen-Konflikt), liegen auch in ~/vor-git +rm -f _work/status-vorher.txt # Git-Status vor dem Austausch von .git +``` + +**In Forgejo und Gitea (NAS):** Garbage Collection auslösen, falls noch nicht geschehen — erst dann +sind die alten Objekte (`.env`, Schlüssel, 10-GB-Datei) auch auf den Git-Servern weg. + +## Noch offen + +- **Externer Monitor auf `/health`** (Uptime Kuma auf dem Monitoring-Server oder z. B. UptimeRobot): + der Systemstatus zeigt Fehler nur, wenn ihn jemand öffnet; ein Serverausfall fällt so nicht auf. +- **Passport-Schlüssel** (`storage/oauth-*.key`) standen bis 08.10. in der Git-Historie. Falls sie nicht + mit den Zugangsdaten getauscht wurden: `php artisan passport:keys --force` — alle API-Tokens werden ungültig. +- **Monitoring-Server** (GlitchTip, ntfy) aus `dev/git-deploy-monitoring/` — ntfy ist in `config/monitoring.php` + vorbereitet (`MONITORING_NTFY_*`). diff --git a/dev/betrieb/README.md b/dev/betrieb/README.md index ee26ba2d..ac691745 100644 --- a/dev/betrieb/README.md +++ b/dev/betrieb/README.md @@ -1,6 +1,7 @@ # Betrieb mivita.care — Git-Deploy per Tag -**Stand:** 07.10.2026 · Vorlage und Hintergründe: [`dev/git-deploy-monitoring/`](../git-deploy-monitoring/README.md) +**Stand:** 08.10.2026 · Vorlage und Hintergründe: [`dev/git-deploy-monitoring/`](../git-deploy-monitoring/README.md) · +Protokoll der Umstellung mit Aufräum-Liste: [2026-10-08-protokoll-umstellung.md](2026-10-08-protokoll-umstellung.md) Ausgeliefert wird ein **Git-Tag** (`vX.Y.Z`), nie ein Branch-Stand und keine Dateiliste per SFTP. Das Live-Verzeichnis ist ein Git-Checkout dieses Tags; [`deploy.sh`](deploy.sh) führt den Deploy @@ -9,7 +10,7 @@ von Hand per SSH aus und bricht ab, **bevor** es etwas verändert, wenn etwas ni | | Wert | |---|---| | Server | Ploi, Benutzer `ploi`, PHP-FPM 8.4 (`php8.4-fpm`), Redis lokal | -| Queue | Horizon als Ploi-Daemon, `QUEUE_DRIVER=redis` (bis zur Umstellung F: `sync`) | +| Queue | Horizon als Ploi-Daemon, `QUEUE_DRIVER=redis` (aktiv seit 08.10.2026) | | Live-Verzeichnis | `/home/ploi/mivita.care` | | Git-Server (Deploy liest hier) | `origin` = `ssh://git@forge.adametz.media:222/kadmin/mivita.git` | | Release-Branch | `master` — Tags werden auf `master` gesetzt |