Merge pull request 'Fix n.n.: update.sh zieht aus dem Fork und läuft auch bei unverändertem Code weiter' (#73) from fds2610-bot/Finanzmanager:main into main
Reviewed-on: https://codeberg.org/fds2610/Finanzmanager/pulls/73
This commit is contained in:
commit
82439e031a
5 changed files with 43 additions and 18 deletions
10
CLAUDE.md
10
CLAUDE.md
|
|
@ -10,15 +10,17 @@ Webserver: **nginx + php-fpm**, alles in Docker Compose.
|
|||
- **Keine lokale Installation ohne Rückfrage.** Kein PHP, kein Composer, kein MariaDB
|
||||
auf dem Host – alles läuft in Containern.
|
||||
- Lokal erreichbar unter **http://localhost:8000**.
|
||||
- Der **Produktionsserver zieht den Code aus dem Upstream-Repository** und läuft
|
||||
isoliert: kein Zugriff von außen, kein Zugriff durch Claude Code. Deployment dort
|
||||
ausschließlich über `scripts/update.sh`.
|
||||
- Es gibt derzeit **nur die Entwicklungsumgebung**, keinen getrennten Produktionsserver.
|
||||
`scripts/update.sh` zieht deshalb aus dem **Fork** (`origin`, Branch `main`); der
|
||||
Upstream dient als Backup und zur Veröffentlichung. Kommt später eine isolierte
|
||||
Produktion (kein Zugriff von außen, kein Zugriff durch Claude Code), zieht sie aus dem
|
||||
Upstream: `UPDATE_REMOTE=upstream ./scripts/update.sh`.
|
||||
|
||||
```bash
|
||||
docker compose up -d # starten
|
||||
docker compose exec -u www-data php php tests/run.php # Tests
|
||||
./scripts/run-tests.sh # dasselbe, kürzer
|
||||
./scripts/update.sh # Update (Produktion)
|
||||
./scripts/update.sh # Update aus dem Fork
|
||||
./scripts/backup.sh # Backup mit Rotation
|
||||
```
|
||||
|
||||
|
|
|
|||
10
Changes.md
10
Changes.md
|
|
@ -1,5 +1,15 @@
|
|||
# Änderungen
|
||||
|
||||
## `update.sh` zieht aus dem Fork (25.09.2026)
|
||||
|
||||
- Das Update-Skript holt den Code ausdrücklich per `git pull --ff-only origin main`. Vorher
|
||||
brach es ohne Tracking-Branch mit „Es gibt keine Tracking-Informationen“ ab.
|
||||
- Quelle ist der Fork, weil es derzeit nur die Entwicklungsumgebung gibt; der Upstream ist
|
||||
Backup und Veröffentlichung. Für eine spätere Produktion: `UPDATE_REMOTE=upstream`.
|
||||
- Das Skript bricht bei unverändertem Code nicht mehr ab: Container starten und Migrationen
|
||||
laufen immer, damit ein von Hand gezogener Stand nicht ohne Migration bleibt.
|
||||
- Der Pull läuft mit HTTP/1.1 (Codeberg liefert bei HTTP/2 sonst 504).
|
||||
|
||||
## Echtzeitüberweisung im Zahlungsverkehr (25.09.2026)
|
||||
|
||||
Der Überweisungsdialog bietet jetzt das Häkchen **Echtzeitüberweisung**: Das Geld ist binnen
|
||||
|
|
|
|||
8
PLAN.md
8
PLAN.md
|
|
@ -104,9 +104,11 @@ aber mit **nginx statt Apache**.
|
|||
* **Keine lokale Installation ohne Rückfrage.** Alles läuft und wird getestet in
|
||||
Docker-Compose-Containern — kein PHP, kein Composer, kein MariaDB auf dem Host.
|
||||
* **Erreichbarkeit lokal: `http://localhost:8000`** (nginx-Port-Mapping `8000:80`).
|
||||
* **Produktionsserver zieht den Code aus dem Upstream-Repository.** Er läuft isoliert,
|
||||
ohne Zugriff von außen und ohne Zugriff durch Claude Code. Deployment ist dort
|
||||
ausschließlich `git pull` + Update-Skript, niemals ein direkter Eingriff von hier.
|
||||
* **Solange es nur die Entwicklungsumgebung gibt, zieht `update.sh` aus dem Fork**
|
||||
(`origin/main`); der Upstream dient als Backup und zur Veröffentlichung. Eine spätere,
|
||||
isolierte Produktion (ohne Zugriff von außen und durch Claude Code) zieht aus dem
|
||||
Upstream (`UPDATE_REMOTE=upstream`); Deployment dort ausschließlich `git pull` +
|
||||
Update-Skript, niemals ein direkter Eingriff von hier.
|
||||
* **Update-Prozess wie in `Steuerkram`**: `scripts/update.sh` (git pull → Backup →
|
||||
Composer → Image-Rebuild bei Bedarf → Migrationen → Rechte → optionale Tests) plus
|
||||
`scripts/backup.sh` mit Rotation (7 Tage / 4 Wochen / 12 Monate).
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ Ersteinrichtung und legt den ersten Benutzer an.
|
|||
```bash
|
||||
./scripts/run-tests.sh # Tests
|
||||
./scripts/backup.sh # Backup mit Rotation
|
||||
./scripts/update.sh # Update (auf dem Produktionsserver)
|
||||
./scripts/update.sh # Update aus dem Fork (origin/main)
|
||||
```
|
||||
|
||||
## Verzeichnisse
|
||||
|
|
|
|||
|
|
@ -1,10 +1,14 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# Update-Skript für den Produktionsserver.
|
||||
# Update-Skript.
|
||||
#
|
||||
# Holt den Stand aus dem Upstream-Repository und spielt alles ein, was dazu
|
||||
# Holt den Stand aus dem Fork (Remote „origin“) und spielt alles ein, was dazu
|
||||
# nötig ist: Backup, Abhängigkeiten, Image-Neubau bei Bedarf, Migrationen.
|
||||
#
|
||||
# Es gibt derzeit nur die Entwicklungsumgebung und keinen getrennten Produktions-
|
||||
# server; deshalb ist der Fork die Quelle. Der Upstream dient als Backup und zur
|
||||
# Veröffentlichung. Für eine spätere Produktion: UPDATE_REMOTE=upstream setzen.
|
||||
#
|
||||
# ./scripts/update.sh [--no-backup] [--no-tests] [--force-rebuild]
|
||||
|
||||
set -euo pipefail
|
||||
|
|
@ -39,17 +43,24 @@ if [[ "$OHNE_BACKUP" == false ]]; then
|
|||
./scripts/backup.sh
|
||||
fi
|
||||
|
||||
# ── Stand aus dem Upstream holen ────────────────────────────────────────────
|
||||
# ── Stand aus dem Fork holen ────────────────────────────────────────────────
|
||||
melde "Code aktualisieren"
|
||||
VORHER="$(git rev-parse HEAD)"
|
||||
git pull --ff-only
|
||||
NACHHER="$(git rev-parse HEAD)"
|
||||
|
||||
if [[ "$VORHER" == "$NACHHER" && "$NEUBAU_ERZWINGEN" == false ]]; then
|
||||
echo "Bereits aktuell – nichts zu tun."
|
||||
exit 0
|
||||
QUELLE="${UPDATE_REMOTE:-origin}"
|
||||
BRANCH="main"
|
||||
if ! git remote get-url "$QUELLE" >/dev/null 2>&1; then
|
||||
echo "Remote „$QUELLE“ existiert nicht." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
VORHER="$(git rev-parse HEAD)"
|
||||
# Remote und Branch stehen ausdrücklich da, damit kein Tracking nötig ist.
|
||||
# HTTP/1.1, weil Codeberg bei HTTP/2 mit 504 hängen bleibt.
|
||||
git -c http.version=HTTP/1.1 pull --ff-only "$QUELLE" "$BRANCH"
|
||||
NACHHER="$(git rev-parse HEAD)"
|
||||
|
||||
# Kein vorzeitiger Abbruch bei unverändertem Code: Er kann schon von Hand gezogen worden
|
||||
# sein, dann fehlen den Containern noch die Migrationen (idempotent). Ein Image-Neubau
|
||||
# nach einem von Hand gezogenen Stand muss mit --force-rebuild erzwungen werden.
|
||||
GEAENDERT="$(git diff --name-only "$VORHER" "$NACHHER" || true)"
|
||||
|
||||
# ── Image neu bauen, wenn sich die Grundlage geändert hat ───────────────────
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue