scripts: deploy-prod.sh — Prod-Installation via rsync/SSH spiegeln
Neues Skript scripts/deploy-prod.sh baut das badge-freie Prod-Bundle (npm run build:prod), stellt es lokal wie der Pages-Workflow zusammen (LICENSE danebenlegen + ../LICENSE-Link geradeziehen, Footer-Version + Commit-Link) und spiegelt es per rsync --delete ueber SSH in ein als Argument uebergebenes Zielverzeichnis — am Ziel bleibt nichts Altes stehen. - Pflichtargument: rsync-Ziel (z. B. user@host:~/doms/.../subs-ssl/werkbaum/). - Ohne -y erst --dry-run-Vorschau + Rueckfrage (--delete ist destruktiv). - Warnt bei unsauberem Arbeitsbaum (Commit-Link zeigt auf HEAD). - node_modules-Guard: npm ci nur wenn noetig. End-to-End gegen ein lokales Ziel verifiziert: --delete raeumt Alt-Datei und Alt-Unterordner weg, deployte index.html enthaelt 0x 🚧/🔧 (nur die ungenutzte CSS-Regel), LICENSE danebengelegt + Link auf "LICENSE", Version 1.0.x + Commit. Doku: README (de/en) Abschnitt Prod-Installation, DECISIONS D16 (warum die sed-Zusammenstellung bewusst in Workflow UND Skript liegt). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
6f184222a6
commit
ec6d2124de
@@ -84,6 +84,22 @@ that file one level above `index.html`, or adjust the link), and the **version
|
||||
number** stays the source placeholder `1.0` (the workflow otherwise replaces it
|
||||
from `VERSION` + commit count).
|
||||
|
||||
**Easier: `scripts/deploy-prod.sh`.** The script runs exactly that prod build
|
||||
**and** both fix-ups (drop `LICENSE` alongside + straighten the link, footer
|
||||
version + commit link just like the Pages workflow) and mirrors the result to a
|
||||
server via rsync/SSH. The target path is the only required argument:
|
||||
|
||||
```bash
|
||||
scripts/deploy-prod.sh mih00@mih00.hostsharing.net:~/doms/javagil.de/subs-ssl/werkbaum/
|
||||
```
|
||||
|
||||
Without `-y` it first shows a `--dry-run` preview and asks for confirmation.
|
||||
`rsync --delete` ensures **nothing old** is left at the target — so the target
|
||||
directory is treated as exclusive to Werkbaum. (Hostsharing: for a **subdomain**
|
||||
like `werkbank.javagil.de` under the parent domain `javagil.de` the web directory
|
||||
is `…/subs-ssl/<name>/`; a directly-served domain would live under
|
||||
`…/htdocs-ssl/`.)
|
||||
|
||||
## Project documents
|
||||
|
||||
- `frontend/` — editor · `backend/` — Kotlin/Spring (scaffold to follow, see backend/README.md)
|
||||
|
||||
Reference in New Issue
Block a user