HifiPlanet-Website/DEPLOY.md
Maaxxs 96aa799d43 Consolidate the site onto a single branch: main now carries the build output
The client's hosting (All-Inkl) has no GitHub integration, so the
two-branch model - source on main, CI force-pushing the built hifi/
folder to a machine-generated deploy branch for Plesk to pull - doesn't
work there. main is now simultaneously the source of truth and the
deployable artifact:

- hifi/index.html, hifi/assets/, favicon, robots.txt and hifi/api/vendor
  are committed instead of git-ignored. Secrets (db.php, setup.php,
  ga-service-account.json) stay ignored as before.
- A prebuild script wipes hifi/assets + index.html before every vite
  build, so the tree always holds exactly the current build - this was
  the stale-hash-chunk problem that originally justified ignoring the
  output (emptyOutDir stays false to protect hifi/api). Builds are
  deterministic: rebuilding without source changes yields zero diffs.
- .github/workflows/build-deploy.yml is deleted; nothing writes to the
  deploy branch anymore. The convention is to run npm run build before
  committing (DEPLOY.md documents the workflow, the All-Inkl setup via
  SSH clone/pull with docroot on <checkout>/hifi, and the Plesk test
  server switch from deploy to main).

The remote deploy branch is left in place for now so the Plesk test
server keeps working until its Git source is switched to main; it can
be deleted afterwards.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 06:59:33 +02:00

43 lines
1.3 KiB
Markdown

# Deployment
Alles liegt auf **einem Branch: `main`** — Quellcode (`hifi-src/`) und das fertig
gebaute, deploybare Ergebnis (`hifi/` = Frontend-Build + PHP-API inkl. vendor).
Es gibt keinen `deploy`-Branch und keine GitHub Action mehr.
## Ablauf bei Änderungen
```
cd hifi-src
npm run build # räumt hifi/assets vorher automatisch leer (prebuild)
git add ... # Quellcode UND Build-Output (hifi/index.html, hifi/assets, ...)
git commit && git push
```
Wichtig: **Vor jedem Commit bauen** — der Build-Output gehört mit in den Commit,
sonst ist der Stand auf dem Server veraltet.
## Kunden-Hosting (All-Inkl)
Einmalig per SSH:
```
git clone https://github.com/MaaxxsDev/Hifi-Planet.git
```
- Domain-Docroot auf `<checkout>/hifi` zeigen lassen.
- `hifi/api/config/db.php` und `setup.php` sind bewusst nicht im Repo
(umgebungsspezifische Zugangsdaten) — beim ersten Aufruf über den
Setup-Assistenten (`/setup`) anlegen bzw. Dateien manuell hinterlegen.
Update danach einfach:
```
git pull
```
(Ohne SSH alternativ: Repo lokal klonen und den Inhalt von `hifi/` per FTP hochladen.)
## Testserver (Plesk)
In Plesk unter „Git" die Quelle vom früheren `deploy`-Branch auf **`main`**
umstellen; der Docroot bleibt auf dem Unterordner `hifi/` des Checkouts.