35 lines
1.7 KiB
Markdown
35 lines
1.7 KiB
Markdown
# Deployment auf dem Server
|
||
|
||
## .env wird nicht mit Git übertragen
|
||
|
||
Die Datei **`.env`** steht in `.gitignore` und wird beim `git push` **nicht** mit ins Repository übernommen. Auf dem Server fehlen dadurch die Umgebungsvariablen für Appwrite – die Meldung *"Appwrite ist nicht konfiguriert"* entsteht genau deshalb.
|
||
|
||
## Lösung: .env auf dem Server anlegen
|
||
|
||
**Im Repo mitgepusht:** `.env.example`, `scripts/setup-env.cjs`, und die Script-Einträge in `package.json` (`setup:env`, `deploy:server`). Die `.env` wird weiterhin **nicht** ins Git aufgenommen.
|
||
|
||
**Nach dem ersten Klonen oder nach jedem Pullen auf dem Server:**
|
||
|
||
**Option A – ein Befehl (empfohlen):**
|
||
Legt `.env` aus `.env.example` an (falls noch nicht vorhanden) und baut die App:
|
||
|
||
```bash
|
||
npm run deploy:server
|
||
```
|
||
|
||
**Option B – einzeln:**
|
||
Nur `.env` anlegen (überschreibt keine bestehende `.env`):
|
||
|
||
```bash
|
||
npm run setup:env
|
||
npm run build
|
||
```
|
||
|
||
**Option C – mit deploy.sh / Container:**
|
||
Wenn auf dem Server ein `deploy.sh` und Docker/Compose genutzt werden: Nach `git pull` kann `deploy.sh` die `.env` aus `.env.example` erzeugen (falls fehlend) und vor jedem Build eine `.env.local` aus den Container-Umgebungsvariablen schreiben (z. B. alle `VITE_APPWRITE_*`). So kommt die Appwrite-Konfiguration zuverlässig ins Frontend-Build. Ein Neustart von Nginx ist in der Regel nicht nötig; der neue Build liegt in `/out` (oder dem konfigurierten Ausgabeordner).
|
||
|
||
**Option D – manuell:**
|
||
`.env` selbst anlegen mit dem Inhalt von `.env.example` oder den Werten aus dieser Doku, danach `npm run build`.
|
||
|
||
**.env nicht committen** – sie bleibt nur lokal bzw. auf dem Server und enthält projektspezifische Werte.
|