docs: add wiki page
60
Deployment.md
Normal file
60
Deployment.md
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
# Deployment
|
||||||
|
|
||||||
|
## Voraussetzungen
|
||||||
|
|
||||||
|
- Docker + Docker Compose installiert
|
||||||
|
- Git-Zugang zum Repository
|
||||||
|
- `.env`-Datei konfiguriert (siehe [[Umgebungsvariablen]])
|
||||||
|
|
||||||
|
## Erstinstallation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://git.mischlabs.de/MrDiderot/Michess.git
|
||||||
|
cd Michess
|
||||||
|
cp .env.example .env
|
||||||
|
# .env anpassen (Passwörter, URLs, ADMIN_EMAIL)
|
||||||
|
docker compose up -d --build
|
||||||
|
```
|
||||||
|
|
||||||
|
Frontend: `http://<server-ip>:3000`
|
||||||
|
API: `http://<server-ip>:3001`
|
||||||
|
|
||||||
|
## Update auf dem NAS
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run --rm -v /volume2/docker/michess:/work -w /work alpine/git fetch origin main && \
|
||||||
|
docker run --rm -v /volume2/docker/michess:/work -w /work alpine/git reset --hard FETCH_HEAD && \
|
||||||
|
cd /volume2/docker/michess && docker compose up --build -d michess
|
||||||
|
```
|
||||||
|
|
||||||
|
> **Warum `fetch` + `reset` statt `pull`?**
|
||||||
|
> `reset --hard origin/main` nutzt den lokalen gecachten Ref. Mit `fetch` zuerst wird `FETCH_HEAD` auf den neuesten Stand gebracht, sodass `reset --hard FETCH_HEAD` garantiert den aktuellen Stand vom Remote benutzt.
|
||||||
|
|
||||||
|
## Umgebungsvariablen
|
||||||
|
|
||||||
|
| Variable | Beschreibung | Beispiel |
|
||||||
|
|----------|-------------|---------|
|
||||||
|
| `POSTGRES_DB` | Datenbankname | `michess` |
|
||||||
|
| `POSTGRES_USER` | DB-Nutzer | `michess` |
|
||||||
|
| `POSTGRES_PASSWORD` | DB-Passwort | sicheres Passwort |
|
||||||
|
| `SESSION_SECRET` | Session-Schlüssel (min. 32 Zeichen) | zufälliger String |
|
||||||
|
| `CORS_ORIGIN` | Frontend-URL (für CORS) | `http://nas-ip:3000` |
|
||||||
|
| `ADMIN_EMAIL` | E-Mail-Adresse bekommt Admin-Rechte | `admin@example.com` |
|
||||||
|
| `NEXT_PUBLIC_APP_URL` | Frontend-URL (für Einladungslinks) | `http://nas-ip:3000` |
|
||||||
|
| `NEXT_PUBLIC_API_URL` | API-URL (im Next.js Build eingebaut) | `http://nas-ip:3001` |
|
||||||
|
| `MICHESS_PORT` | Frontend-Port | `3000` |
|
||||||
|
| `MICHESS_API_PORT` | API-Port | `3001` |
|
||||||
|
|
||||||
|
## Admin-Rolle einrichten
|
||||||
|
|
||||||
|
1. `ADMIN_EMAIL` in `.env` auf die gewünschte E-Mail setzen
|
||||||
|
2. Container neustarten – der Server setzt die Rolle automatisch
|
||||||
|
3. Mit diesem Account **ausloggen und neu einloggen**
|
||||||
|
|
||||||
|
## Docker-Dienste
|
||||||
|
|
||||||
|
| Dienst | Image | Funktion |
|
||||||
|
|--------|-------|---------|
|
||||||
|
| `michess` | Eigener Build | Frontend + Backend |
|
||||||
|
| `db` | `postgres:16-alpine` | Datenbank |
|
||||||
|
|
||||||
Reference in New Issue
Block a user