docs: add wiki page

2026-04-14 12:58:15 +02:00
parent 5c695bef58
commit 1d069e6bd6

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 |