Reinstate the Vercel build settings
Reverts61ccce5, which revertedecbda3f. The decision came back to Vercel, so the two platform accommodations return: output: "standalone" is conditional on VERCEL again, and /api/import goes back to 60 seconds, the free tier's ceiling. The Docker path is unaffected and stays documented — including the internal network notes and deploy/Caddyfile written in between, which remain correct for anyone taking that road. DEPLOYMENT.md conflicted at the top and now carries both introductions instead of one replacing the other. Verified with VERCEL=1: builds clean and emits no standalone directory. Stated once and recorded here rather than repeated: Vercel's Hobby plan excludes commercial use, and this is a company's HR system. Defensible while the database holds nothing but the 852 invented people from the seed; Pro at $20/month is the licensed path once real personnel data is in it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,71 @@
|
||||
# Deployment mit Docker
|
||||
# Deployment
|
||||
|
||||
Dieser Guide beschreibt, wie die App als Docker-Container auf einem eigenen
|
||||
Linux-Server läuft.
|
||||
Zwei Wege, beide unterstützt. Das Abbild ist umgebungsneutral — es gibt keine
|
||||
Werte mehr, die beim Bauen eingebacken werden —, ein Wechsel ist also
|
||||
jederzeit möglich.
|
||||
|
||||
| | passt, wenn |
|
||||
|---|---|
|
||||
| [Vercel](#vercel) | ihr nichts betreiben wollt; schnellster Weg |
|
||||
| [Docker](#deployment-mit-docker) | es in eure eigene Infrastruktur soll |
|
||||
|
||||
**In beiden Fällen gleich:** die Umgebungsvariablen aus [Abschnitt 1](#1-env-anlegen),
|
||||
die Umleitungs-URI in der Entra-Registrierung, und dass eine neue Person nach
|
||||
ihrer ersten Anmeldung eine `profiles`-Zeile braucht (siehe
|
||||
[docs/entra-sso.md](docs/entra-sso.md)).
|
||||
|
||||
## Vercel
|
||||
|
||||
Das Repository liegt auf `git.elycon.solutions` — einem selbst betriebenen
|
||||
Git. **Vercels Git-Anbindung kann nur GitHub, GitLab und Bitbucket**, dieses
|
||||
Repository lässt sich dort also nicht verknüpfen. Zwei Möglichkeiten:
|
||||
|
||||
### a) Von der Arbeitsstation ausrollen (ohne GitHub)
|
||||
|
||||
```bash
|
||||
npx vercel login
|
||||
npx vercel link
|
||||
npx vercel --prod
|
||||
```
|
||||
|
||||
Funktioniert mit jedem Repository. Der Preis: kein automatisches Ausrollen
|
||||
bei einem Push — jede Veröffentlichung ist ein bewusster Befehl. Für zwei
|
||||
Personen ist das eher Vorteil als Nachteil.
|
||||
|
||||
### b) Zusätzlich nach GitHub spiegeln
|
||||
|
||||
```bash
|
||||
git remote add github git@github.com:<konto>/alpenwerk-hr.git
|
||||
git push github feat/sap-om-org-model
|
||||
```
|
||||
|
||||
Danach das GitHub-Repository in Vercel verbinden. Ab dann rollt jeder Push
|
||||
aus. Zwei Fernziele bedeuten aber auch: beide müssen gepflegt werden.
|
||||
|
||||
### Danach
|
||||
|
||||
1. **Umgebungsvariablen** im Vercel-Projekt setzen (Settings → Environment
|
||||
Variables), dieselben wie in [Abschnitt 1](#1-env-anlegen). `AUTH_URL` ist
|
||||
nicht nötig, Vercel setzt den Host selbst.
|
||||
2. **Umleitungs-URI** in der Entra-Registrierung ergänzen:
|
||||
`https://<projekt>.vercel.app/api/auth/callback/microsoft-entra-id`
|
||||
3. Der nächtliche Lauf ist über `vercel.json` bereits eingerichtet.
|
||||
|
||||
Zwei Eigenheiten der Plattform, die im Code berücksichtigt sind:
|
||||
`output: "standalone"` entfällt dort automatisch (Vercel baut selbst), und
|
||||
`/api/import` ist auf 60 Sekunden begrenzt — die Obergrenze des kostenlosen
|
||||
Tarifs. Im Pro-Tarif liessen sich 300 setzen, falls eine Importdatei mit
|
||||
vielen tausend Zeilen ansteht.
|
||||
|
||||
Der Verbindungspool passt zu serverlosen Aufrufen, **weil** `DATABASE_URL`
|
||||
auf den Transaktions-Modus zeigt (Port 6543). Mit dem Sitzungs-Modus wären
|
||||
die 15 Verbindungen des Tarifs nach wenigen gleichzeitigen Aufrufen
|
||||
verbraucht.
|
||||
|
||||
## Deployment mit Docker
|
||||
|
||||
Dieser Guide beschreibt, wie die App stattdessen als Docker-Container auf
|
||||
einem eigenen Linux-Server läuft.
|
||||
|
||||
## Was wird containerisiert – und was nicht
|
||||
|
||||
|
||||
Reference in New Issue
Block a user