chore: Docs umstrukturiert, Client-Updates, Scripts nach scripts/
This commit is contained in:
83
docs/deployment/WEBHOOK_AUTHORIZATION.md
Normal file
83
docs/deployment/WEBHOOK_AUTHORIZATION.md
Normal file
@@ -0,0 +1,83 @@
|
||||
# Webhook Authorization Header - Anleitung
|
||||
|
||||
Der Webhook unterstützt **zwei Authentifizierungsmethoden**:
|
||||
|
||||
1. **Signature-Verification** (Standard, von Gitea)
|
||||
2. **Authorization Header** (Optional, zusätzliche Sicherheit)
|
||||
|
||||
## Option 1: Nur Signature (Standard)
|
||||
|
||||
Das ist die Standard-Methode, die Gitea automatisch verwendet:
|
||||
|
||||
### Konfiguration
|
||||
|
||||
In `server/.env`:
|
||||
```bash
|
||||
GITEA_WEBHOOK_SECRET=dein_secret_hier
|
||||
```
|
||||
|
||||
### In Gitea
|
||||
|
||||
- **Secret:** Trage das gleiche Secret ein
|
||||
- **Authorization Header:** Nicht nötig
|
||||
|
||||
Gitea sendet automatisch den `X-Gitea-Signature` Header.
|
||||
|
||||
## Option 2: Authorization Header (Zusätzliche Sicherheit)
|
||||
|
||||
Falls du zusätzliche Sicherheit möchtest oder den Webhook manuell aufrufst:
|
||||
|
||||
### Schritt 1: Token generieren
|
||||
|
||||
```bash
|
||||
node -e "console.log(require('crypto').randomBytes(16).toString('hex'))"
|
||||
```
|
||||
|
||||
### Schritt 2: Server konfigurieren
|
||||
|
||||
In `server/.env`:
|
||||
```bash
|
||||
GITEA_WEBHOOK_SECRET=dein_secret_hier
|
||||
GITEA_WEBHOOK_AUTH_TOKEN=dein_auth_token_hier
|
||||
```
|
||||
|
||||
### Schritt 3: In Gitea konfigurieren
|
||||
|
||||
Gitea unterstützt **keine** Authorization Header direkt, aber du kannst:
|
||||
|
||||
#### Option A: Nur Signature verwenden (empfohlen)
|
||||
- Lass `GITEA_WEBHOOK_AUTH_TOKEN` leer
|
||||
- Nur `GITEA_WEBHOOK_SECRET` verwenden
|
||||
|
||||
#### Option B: Manuelle Webhook-Aufrufe
|
||||
Wenn du den Webhook manuell aufrufst (z.B. via curl), verwende:
|
||||
|
||||
```bash
|
||||
curl -X POST https://emailsorter.webklar.com/api/webhook/gitea \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-Gitea-Signature: sha256=..." \
|
||||
-H "Authorization: Bearer dein_auth_token_hier" \
|
||||
-d '{"ref":"refs/heads/main",...}'
|
||||
```
|
||||
|
||||
## Option 3: Beide Methoden kombinieren
|
||||
|
||||
Für maximale Sicherheit kannst du beide verwenden:
|
||||
|
||||
```bash
|
||||
# In server/.env
|
||||
GITEA_WEBHOOK_SECRET=secret_fuer_signature
|
||||
GITEA_WEBHOOK_AUTH_TOKEN=token_fuer_auth_header
|
||||
```
|
||||
|
||||
**Verhalten:**
|
||||
- Wenn beide gesetzt sind, müssen **beide** passen
|
||||
- Wenn nur eine gesetzt ist, reicht diese
|
||||
|
||||
## Empfehlung
|
||||
|
||||
**Für Gitea-Webhooks:** Verwende nur `GITEA_WEBHOOK_SECRET` (Signature)
|
||||
|
||||
**Für manuelle Aufrufe:** Verwende `GITEA_WEBHOOK_AUTH_TOKEN` (Authorization Header)
|
||||
|
||||
**Für maximale Sicherheit:** Verwende beide
|
||||
Reference in New Issue
Block a user