dev: Git-Deploy live seit v1.1.3 (06.10.2026) — Protokoll, Befunde der Umwandlung, Runbook §10 und GlitchTip-Doku angepasst
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
92709d8862
commit
79bb6cf1d0
3 changed files with 38 additions and 15 deletions
|
|
@ -372,10 +372,11 @@ Newsroom-Übersicht, eine alte PM-Detailseite (lädt Bild + Anhang?), Firmenlogo
|
|||
## 10. Betrieb nach Go-Live (Stand 20.07.2026 — System ist LIVE)
|
||||
|
||||
Live-Setup: Hetzner-Cloud-Server via **Ploi**, App unter `~/pressekonto.com`,
|
||||
Deploys liefen bis `v1.1.0` per **SFTP-Datei-Upload**. **Ab `v1.1.1` per Git-Tag**
|
||||
Deploys liefen bis `v1.1.0` per **SFTP-Datei-Upload**. **Seit `v1.1.3` (06.10.2026) per Git-Tag**
|
||||
mit `dev/betrieb/deploy.sh`; Ablauf, einmalige Umstellung und Rollback in
|
||||
`dev/betrieb/git-deploy.md`. Die SFTP-Checkliste unten gilt nur noch bis zur
|
||||
Umstellung. Echte Domains
|
||||
`dev/betrieb/git-deploy.md`. Die SFTP-Checkliste unten ist historisch. Auf
|
||||
Live nichts mehr per SFTP in `~/pressekonto.com` ablegen, auch keine Doku, sonst
|
||||
stoppt der nächste Deploy an der Abweichungsprüfung. Echte Domains
|
||||
(pressekonto.com, presseecho.de, businessportal24.com) inkl. www-DNS geschaltet,
|
||||
Stripe im Live-Mode, `legacy:verify` 0 failures. Migration/Cutover: erledigt,
|
||||
Doku archiviert unter `dev/archive/optimize/cutover-runbook.md`.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Git-Deploy
|
||||
|
||||
**Stand:** 06.10.2026 · **Status:** vorbereitet, Umstellung steht aus (erstes Release über Git: `v1.1.1`)
|
||||
**Stand:** 06.10.2026 · **Status:** umgestellt am 06.10.2026, erster Git-Deploy `v1.1.3` (Protokoll unten)
|
||||
|
||||
Bis `v1.1.0` gingen Deploys als Paket per SFTP auf den Server
|
||||
([`deploy-v1.1.0.md`](deploy-v1.1.0.md)). Künftig ist `~/pressekonto.com` ein
|
||||
|
|
@ -37,7 +37,8 @@ Git-Checkout, und ausgeliefert wird ein Tag aus `origin`.
|
|||
cat ~/.ssh/forge_pressekonto.pub
|
||||
```
|
||||
|
||||
3. `~/.ssh/config` ergänzen:
|
||||
3. `~/.ssh/config` anlegen bzw. ergänzen (`chmod 600 ~/.ssh/config`). Ploi verwaltet nur
|
||||
`authorized_keys`, die Datei kommt ihm nicht in die Quere:
|
||||
|
||||
```
|
||||
Host forge.adametz.media
|
||||
|
|
@ -173,17 +174,35 @@ beides für den alten Tag neu auf. Migrationen sind additiv. Der alte Code läuf
|
|||
mit den neuen Spalten, ein `migrate:rollback` gibt es auf Live nicht. Nur bei
|
||||
Datenproblemen das DB-Backup einspielen und danach Runbook Abschnitt 9 (Archiv) befolgen.
|
||||
|
||||
## F — Erste Umstellung mit `v1.1.1`
|
||||
## F — Erste Umstellung (erledigt 06.10.2026)
|
||||
|
||||
`v1.1.1` dient nur dazu, den neuen Weg zu testen. Das Release enthält keine
|
||||
Migration und keine Fachänderung.
|
||||
Gedacht war `v1.1.1` als reines Test-Release. Live ging direkt `v1.1.3`. Dazwischen
|
||||
lagen ein Hotfix (`v1.1.2`) und ein Fehler, der erst bei der Umwandlung auffiel (`v1.1.3`).
|
||||
|
||||
| Schritt | Inhalt |
|
||||
|---|---|
|
||||
| lokal | `/public/build` aus der `.gitignore`; `deploy.sh`, diese Datei und Runbook §10 committen; Doku-Commits seit `v1.1.0`; Build-Commit; Tag `v1.1.1`; Push auf beide Remotes |
|
||||
| Server | A (Zugang), B (Umwandlung auf `v1.1.0`), dann `bash dev/betrieb/deploy.sh v1.1.1` |
|
||||
| Prüfung | D 17. Zusätzlich `git status --porcelain`: Bis `v1.1.0` war `public/build` ignoriert, ab `v1.1.1` ist es versioniert. Alte Build-Reste auf Live (z. B. `public/build/admin/`, `public/build/assets/`, `public/build/manifest.json` aus der stillgelegten `vite.config.js`) erscheinen erst jetzt als `??`. Nach `~/vor-git/` verschieben, sonst bricht der nächste Deploy an der Abweichungsprüfung ab. |
|
||||
| danach | `~/deploy-v1.1.0.tgz`, `~/backup-vor-v1.1.0.tgz` und nach ein paar stabilen Tagen `~/backup-vor-git.tgz` löschen |
|
||||
Was bei der Umwandlung (B) auftrat, für den Fall, dass ein weiterer Server so umgestellt wird:
|
||||
|
||||
- **Auf Live fehlte die `.gitignore`**, sie war nie im Paket. Deshalb zeigte Schritt 9
|
||||
auch `.env`, `vendor/`, `storage/` und `public/build` als `??`. Nach dem Checkout
|
||||
verschwinden diese Zeilen.
|
||||
- **Pfade mit Umlauten oder Leerzeichen** gibt Git in Anführungszeichen aus. Sie rutschen
|
||||
am Filter in Schritt 9 vorbei. Das betraf nur Entwicklerdateien.
|
||||
- **Per SFTP gelöschte Dateien liegen noch auf Live.** Gefunden wurde
|
||||
`app/Actions/Fortify/UpdateUserProfileInformation.php` (seit 18.09. gelöscht). Sie ist
|
||||
nach `~/vor-git/` verschoben.
|
||||
- **Eigene Flux-Icons waren nie im Repository.** Das macOS-Muster `Icon` in der `.gitignore`
|
||||
traf wegen `core.ignorecase` auch `resources/views/flux/icon/`. Behoben in `v1.1.3`.
|
||||
Für den ersten Deploy war der Ordner per `.git/info/exclude` ausgeblendet, damit der
|
||||
Checkout die identischen Dateien aus dem Tag übernimmt.
|
||||
- **Doku war nach dem Checkout noch per SFTP hochgeladen worden** (`dev/betrieb/`). Die
|
||||
Abweichungsprüfung hat den Deploy gestoppt, bevor etwas verändert war. Die Dateien sind
|
||||
nach `~/vor-git/` gesichert und auf den Repo-Stand zurückgesetzt.
|
||||
- **`deploy.sh` gab es in `v1.1.0` noch nicht.** Beim ersten Mal lief es aus dem Tag:
|
||||
`git show v1.1.3:dev/betrieb/deploy.sh > /tmp/deploy.sh && bash /tmp/deploy.sh v1.1.3`.
|
||||
- **Alte Build-Dateien** tauchten nach dem Deploy als `??` auf. Bis `v1.1.0` war
|
||||
`public/build` ignoriert. Sie sind als `~/vor-git/build-reste.tgz` gesichert und entfernt.
|
||||
|
||||
Aufräumen nach ein paar stabilen Tagen: `~/deploy-v1.1.0.tgz`,
|
||||
`~/backup-vor-v1.1.0.tgz`, `~/backup-vor-git.tgz`, `~/vor-git/`.
|
||||
|
||||
## Später: Changelog
|
||||
|
||||
|
|
@ -200,3 +219,6 @@ Ausfall des Anbieters keinen Deploy abbricht.
|
|||
|---|---|---|
|
||||
| 06.10.2026 | Vorbereitung | `origin` auf Forgejo (Hetzner) umgestellt, NAS als zweites Remote, Push erledigt. `deploy.sh` gegen ein simuliertes Repository geprüft: Abbruch bei neuen Migrationen ohne Option, Deploy, wiederholter Aufruf, Rollback, unbekannter Tag, Fehler mitten im Lauf. Die Umwandlung eines bestehenden Verzeichnisses (B) wurde ebenso simuliert: Abweichungen werden sichtbar, `.env` und ungetrackte Dateien bleiben, ignorierte Builds werden beim Checkout überschrieben. |
|
||||
| 06.10.2026 | `v1.1.1` lokal | `/public/build` versioniert. Alte Build-Reste von 2025 lokal entfernt (nicht mehr referenziert). Suite 2.316 grün, einer übersprungen (parallel, 96 s); Larastan ohne Meldung. Build-Commit und Tag `v1.1.1` gesetzt, Push auf `origin`/`NAS` nach Freigabe. |
|
||||
| 06.10.2026 | `v1.1.2` | Hotfix nach GlitchTip-Auswertung (anderer Chat). Gepusht ohne Tags, Tags mit `git push origin --tags` nachgeholt. Künftig `--follow-tags`. |
|
||||
| 06.10.2026 | Umwandlung Live (A, B) | Server-Zugang zu Forgejo per Deploy-Key (nur lesen). Git 2.43. Befunde siehe F: fehlende `.gitignore`, Altdatei Fortify, Flux-Icons nicht im Repository. |
|
||||
| 06.10.2026 | `v1.1.3` | `.gitignore`-Muster `Icon` korrigiert, vier Icons versioniert. Erster Git-Deploy `v1.1.0` → `v1.1.3`: keine Migration, Composer „Nothing to install", Caches, Worker, FPM ohne Fehler, Version `v1.1.3`. Danach alte Build-Dateien entfernt. `v1.1.1` und `v1.1.2` waren nie einzeln live. |
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ Wenn der Auftrag lautet „schau in GlitchTip“, „was sagt GlitchTip“ o. Ä
|
|||
4. **Reproduzieren mit rotem Test**, dann Fix (Projektregel: jede Änderung mit Test). Ist der Fehler ein Muster, das wieder auftreten kann, einen **Wächtertest** über alle Dateien schreiben (Beispiele: `BladePhpBlockGuardTest`, `BladeAlpineTranslationGuardTest`).
|
||||
5. **Qualitätsgates:** betroffene Tests, dann `php artisan test --compact --parallel`, `vendor/bin/phpstan analyse --memory-limit=2G`, `vendor/bin/pint --dirty --format agent`; bei JS `npm run build`.
|
||||
6. **Dokumentieren:** Eintrag in Abschnitt 7 (ID, Klasse, Ursache, Fix, Commit). Commit-Nachricht nennt die GlitchTip-ID.
|
||||
7. **Ausliefern** über den nächsten Deploy (Hotfix: letzte Versionsstelle erhöhen). Ablauf seit `v1.1.1`: Git-Deploy per Tag, [`../betrieb/git-deploy.md`](../betrieb/git-deploy.md) Abschnitte C und D (Assets bauen und committen, Tag, Push, auf dem Server `deploy.sh`).
|
||||
7. **Ausliefern** über den nächsten Deploy (Hotfix: letzte Versionsstelle erhöhen). Ablauf seit `v1.1.3`: Git-Deploy per Tag, [`../betrieb/git-deploy.md`](../betrieb/git-deploy.md) Abschnitte C und D (Assets bauen und committen, Tag, Push, auf dem Server `deploy.sh`).
|
||||
8. **Auflösen** in GlitchTip macht der Betreiber (Token ist nur lesend) — erst nach dem Deploy. Kommt der Fehler mit neuem Release wieder, öffnet GlitchTip den Eintrag erneut.
|
||||
|
||||
---
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue