# Referenz-Backend in Portainer deployen

Zwei Wege – nimm einen.

## Variante A – Stack aus Git/Upload (Image wird gebaut, am robustesten)
Code steckt im Image, Daten im Volume. Nichts muss auf dem Host liegen.

1. Lege die Dateien (mindestens `Dockerfile`, `docker-compose.yml`,
   `referenz_backend.php`) in ein Git-Repo – oder nutze den Upload.
2. Portainer: **Stacks -> Add stack -> Repository** (Repo-URL eintragen) oder
   **Web editor** mit Upload.
3. **Deploy the stack.** Portainer baut das Image und startet den Container.

## Variante B – Stack im Web-Editor (ohne Build, per Bind-Mount)
Schneller, wenn du die Datei direkt auf den Host legen kannst.

1. `referenz_backend.php` auf den Docker-Host kopieren, z. B. `/opt/sendungsportal/`.
2. Portainer: **Stacks -> Add stack -> Web editor**, Inhalt von
   `docker-compose.bindmount.yml` einfuegen.
3. **Deploy the stack.** Die `auftraege.json` erscheint danach sichtbar im selben
   Ordner auf dem Host – praktisch fuer den Unterricht.

## Danach testen
- Im Container/Host:  `http://localhost:8000/auftraege`  mit Header `X-Api-Key: nordfracht-2026`
- Von anderen Rechnern (Schueler-PCs): `http://<SERVER-IP>:8000/auftraege`
- In `tracking.html` und im C#-Client dann `localhost` durch die **Server-IP** ersetzen,
  wenn Client/Browser nicht auf demselben Rechner laufen.

## Hinweis zur Speicherung
Das Backend speichert in einer JSON-Datei (Variante A: Volume, Variante B: Host-Ordner).
Das ist absichtlich einfach gehalten – kein gleichzeitiger Mehrbenutzer-Schreibbetrieb
(kein File-Locking, last-write-wins). Fuer ein Klassenprojekt mit ~8 Leuten reicht das.
Soll es ein gemeinsames Live-Backend fuer alle parallel sein, sag Bescheid – dann
ruesten wir auf SQLite um.
