fix: Simplify Gitea variables and improve staging banner design
All checks were successful
Dev Deployment (Zero Downtime) / deploy-dev (push) Successful in 13m7s
All checks were successful
Dev Deployment (Zero Downtime) / deploy-dev (push) Successful in 13m7s
- Remove branch-specific variable names (not needed) - Each workflow uses its own default based on branch - Users only need to set general variables, not branch-specific ones - Redesign staging banner as floating box in bottom-right corner - Better UX: doesn't block content, dismissible, modern design
This commit is contained in:
@@ -44,62 +44,66 @@ Für den `dev` Branch brauchst du die **gleichen** Variablen, aber mit anderen W
|
||||
- `ADMIN_BASIC_AUTH` = `admin:staging_password` (kann anders sein)
|
||||
- `N8N_SECRET_TOKEN` = Dein n8n Secret Token (optional)
|
||||
|
||||
## ⚠️ Problem: Gitea unterstützt keine branch-spezifischen Variablen
|
||||
## ✅ Lösung: Automatische Branch-Erkennung
|
||||
|
||||
**Gitea hat keine eingebaute Funktion für branch-spezifische Variablen!**
|
||||
**Gitea unterstützt keine branch-spezifischen Variablen, aber die Workflows erkennen automatisch den Branch!**
|
||||
|
||||
### Lösung 1: Separate Variablen (Empfohlen)
|
||||
### Wie es funktioniert:
|
||||
|
||||
Du kannst Variablen mit Suffixen erstellen:
|
||||
|
||||
**Variables:**
|
||||
- `NEXT_PUBLIC_BASE_URL_PRODUCTION` = `https://dk0.dev`
|
||||
- `NEXT_PUBLIC_BASE_URL_DEV` = `https://dev.dk0.dev`
|
||||
- `LOG_LEVEL_PRODUCTION` = `info`
|
||||
- `LOG_LEVEL_DEV` = `debug`
|
||||
|
||||
Dann musst du die Workflows anpassen, um die richtige Variable zu verwenden.
|
||||
|
||||
### Lösung 2: Workflow-spezifische Werte (Aktuell implementiert)
|
||||
|
||||
Die Workflows haben bereits **Hardcoded Defaults**:
|
||||
Die Workflows triggern auf unterschiedlichen Branches und verwenden automatisch die richtigen Defaults:
|
||||
|
||||
**Production Workflow** (`.gitea/workflows/production-deploy.yml`):
|
||||
```yaml
|
||||
NEXT_PUBLIC_BASE_URL: ${{ vars.NEXT_PUBLIC_BASE_URL || 'https://dk0.dev' }}
|
||||
```
|
||||
- Triggert nur auf `production` Branch
|
||||
- Verwendet: `NEXT_PUBLIC_BASE_URL` (wenn gesetzt) oder Default: `https://dk0.dev`
|
||||
|
||||
**Dev Workflow** (`.gitea/workflows/dev-deploy.yml`):
|
||||
```yaml
|
||||
NEXT_PUBLIC_BASE_URL: ${{ vars.NEXT_PUBLIC_BASE_URL || 'https://dev.dk0.dev' }}
|
||||
```
|
||||
- Triggert nur auf `dev` Branch
|
||||
- Verwendet: `NEXT_PUBLIC_BASE_URL` (wenn gesetzt) oder Default: `https://dev.dk0.dev`
|
||||
|
||||
**Das bedeutet:**
|
||||
- Wenn `NEXT_PUBLIC_BASE_URL` in Gitea gesetzt ist → wird verwendet
|
||||
- Wenn **nicht** gesetzt → verwendet den Default (Production: `dk0.dev`, Dev: `dev.dk0.dev`)
|
||||
- Du setzt **eine** Variable `NEXT_PUBLIC_BASE_URL` in Gitea
|
||||
- **Production Branch** → verwendet diese Variable (oder Default `https://dk0.dev`)
|
||||
- **Dev Branch** → verwendet diese Variable (oder Default `https://dev.dk0.dev`)
|
||||
|
||||
## ✅ Empfohlene Konfiguration (JETZT IMPLEMENTIERT!)
|
||||
### ⚠️ WICHTIG:
|
||||
|
||||
Die Workflows unterstützen jetzt **branch-spezifische Variablen**:
|
||||
Da beide Workflows die **gleiche Variable** verwenden, aber unterschiedliche Defaults haben:
|
||||
|
||||
### Für Production:
|
||||
Setze in Gitea Variables:
|
||||
- `NEXT_PUBLIC_BASE_URL_PRODUCTION` = `https://dk0.dev` ⭐ **Empfohlen**
|
||||
- ODER `NEXT_PUBLIC_BASE_URL` = `https://dk0.dev` (Fallback)
|
||||
- `LOG_LEVEL_PRODUCTION` = `info` (optional)
|
||||
- ODER `LOG_LEVEL` = `info` (Fallback)
|
||||
**Option 1: Variable NICHT setzen (Empfohlen)**
|
||||
- Production verwendet automatisch: `https://dk0.dev`
|
||||
- Dev verwendet automatisch: `https://dev.dk0.dev`
|
||||
- ✅ Funktioniert perfekt ohne Konfiguration!
|
||||
|
||||
### Für Dev:
|
||||
Setze in Gitea Variables:
|
||||
- `NEXT_PUBLIC_BASE_URL_DEV` = `https://dev.dk0.dev` ⭐ **Empfohlen**
|
||||
- ODER `NEXT_PUBLIC_BASE_URL` = `https://dev.dk0.dev` (Fallback)
|
||||
- `LOG_LEVEL_DEV` = `debug` (optional)
|
||||
- ODER `LOG_LEVEL` = `debug` (Fallback)
|
||||
**Option 2: Variable setzen**
|
||||
- Wenn du `NEXT_PUBLIC_BASE_URL` = `https://dk0.dev` setzt
|
||||
- Dann verwendet **beide** Branches diese URL (nicht ideal für Dev)
|
||||
- ⚠️ Nicht empfohlen, da Dev dann die Production-URL verwendet
|
||||
|
||||
### Fallback-Logik:
|
||||
1. Zuerst wird die branch-spezifische Variable geprüft (`NEXT_PUBLIC_BASE_URL_PRODUCTION` / `NEXT_PUBLIC_BASE_URL_DEV`)
|
||||
2. Falls nicht gesetzt, wird die allgemeine Variable verwendet (`NEXT_PUBLIC_BASE_URL`)
|
||||
3. Falls auch die nicht gesetzt ist, wird der Default verwendet (`https://dk0.dev` / `https://dev.dk0.dev`)
|
||||
## ✅ Empfohlene Konfiguration
|
||||
|
||||
### ⭐ Einfachste Lösung: NICHTS setzen!
|
||||
|
||||
Die Workflows haben bereits die richtigen Defaults:
|
||||
- **Production Branch** → automatisch `https://dk0.dev`
|
||||
- **Dev Branch** → automatisch `https://dev.dk0.dev`
|
||||
|
||||
Du musst **NICHTS** in Gitea setzen, es funktioniert automatisch!
|
||||
|
||||
### Wenn du Variablen setzen willst:
|
||||
|
||||
**Nur diese Variablen setzen (für beide Branches):**
|
||||
- `MY_EMAIL` = `contact@dk0.dev`
|
||||
- `MY_INFO_EMAIL` = `info@dk0.dev`
|
||||
- `LOG_LEVEL` = `info` (wird für Production verwendet, Dev überschreibt mit `debug`)
|
||||
|
||||
**Secrets (für beide Branches):**
|
||||
- `MY_PASSWORD` = Dein Email-Passwort
|
||||
- `MY_INFO_PASSWORD` = Dein Info-Email-Passwort
|
||||
- `ADMIN_BASIC_AUTH` = `admin:dein_passwort`
|
||||
- `N8N_SECRET_TOKEN` = Dein n8n Token (optional)
|
||||
|
||||
**⚠️ NICHT setzen:**
|
||||
- `NEXT_PUBLIC_BASE_URL` - Lass diese Variable leer, damit jeder Branch seinen eigenen Default verwendet!
|
||||
|
||||
## 📝 Schritt-für-Schritt Anleitung
|
||||
|
||||
@@ -125,24 +129,26 @@ https://git.dk0.dev/denshooter/portfolio/settings
|
||||
|
||||
## 🔄 Aktuelle Workflow-Logik
|
||||
|
||||
Die Workflows verwenden diese Logik:
|
||||
Die Workflows verwenden diese einfache Logik:
|
||||
|
||||
```yaml
|
||||
# Production
|
||||
NEXT_PUBLIC_BASE_URL: ${{ vars.NEXT_PUBLIC_BASE_URL_PRODUCTION || vars.NEXT_PUBLIC_BASE_URL || 'https://dk0.dev' }}
|
||||
# Production Workflow (triggert nur auf production branch)
|
||||
NEXT_PUBLIC_BASE_URL: ${{ vars.NEXT_PUBLIC_BASE_URL || 'https://dk0.dev' }}
|
||||
|
||||
# Dev
|
||||
NEXT_PUBLIC_BASE_URL: ${{ vars.NEXT_PUBLIC_BASE_URL_DEV || vars.NEXT_PUBLIC_BASE_URL || 'https://dev.dk0.dev' }}
|
||||
# Dev Workflow (triggert nur auf dev branch)
|
||||
NEXT_PUBLIC_BASE_URL: ${{ vars.NEXT_PUBLIC_BASE_URL || 'https://dev.dk0.dev' }}
|
||||
```
|
||||
|
||||
**Das bedeutet:**
|
||||
1. **Production** sucht zuerst nach `NEXT_PUBLIC_BASE_URL_PRODUCTION`, dann `NEXT_PUBLIC_BASE_URL`, dann Default
|
||||
2. **Dev** sucht zuerst nach `NEXT_PUBLIC_BASE_URL_DEV`, dann `NEXT_PUBLIC_BASE_URL`, dann Default
|
||||
- Jeder Workflow hat seinen **eigenen Default**
|
||||
- Wenn `NEXT_PUBLIC_BASE_URL` in Gitea gesetzt ist, wird diese verwendet
|
||||
- Wenn **nicht** gesetzt, verwendet jeder Branch seinen eigenen Default
|
||||
|
||||
**Empfehlung:**
|
||||
- Setze `NEXT_PUBLIC_BASE_URL_PRODUCTION` = `https://dk0.dev` für Production
|
||||
- Setze `NEXT_PUBLIC_BASE_URL_DEV` = `https://dev.dk0.dev` für Dev
|
||||
- So kannst du beide Branches unabhängig konfigurieren!
|
||||
**⭐ Beste Lösung:**
|
||||
- **NICHT** `NEXT_PUBLIC_BASE_URL` in Gitea setzen
|
||||
- Dann verwendet Production automatisch `https://dk0.dev`
|
||||
- Und Dev verwendet automatisch `https://dev.dk0.dev`
|
||||
- ✅ Perfekt getrennt, ohne Konfiguration!
|
||||
|
||||
## 🎯 Best Practice
|
||||
|
||||
|
||||
Reference in New Issue
Block a user