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
186 lines
6.2 KiB
Markdown
186 lines
6.2 KiB
Markdown
# 🔧 Gitea Variables & Secrets Setup Guide
|
|
|
|
## Übersicht
|
|
|
|
In Gitea kannst du **Variables** (öffentlich) und **Secrets** (verschlüsselt) für dein Repository setzen. Diese werden in den CI/CD Workflows verwendet.
|
|
|
|
## 📍 Wo findest du die Einstellungen?
|
|
|
|
1. Gehe zu deinem Repository auf Gitea
|
|
2. Klicke auf **Settings** (Einstellungen)
|
|
3. Klicke auf **Variables** oder **Secrets** im linken Menü
|
|
|
|
## 🔑 Variablen für Production Branch
|
|
|
|
Für den `production` Branch brauchst du:
|
|
|
|
### Variables (öffentlich sichtbar):
|
|
- `NEXT_PUBLIC_BASE_URL` = `https://dk0.dev`
|
|
- `MY_EMAIL` = `contact@dk0.dev` (oder deine Email)
|
|
- `MY_INFO_EMAIL` = `info@dk0.dev` (oder deine Info-Email)
|
|
- `LOG_LEVEL` = `info`
|
|
- `N8N_WEBHOOK_URL` = `https://n8n.dk0.dev` (optional)
|
|
|
|
### Secrets (verschlüsselt):
|
|
- `MY_PASSWORD` = Dein Email-Passwort
|
|
- `MY_INFO_PASSWORD` = Dein Info-Email-Passwort
|
|
- `ADMIN_BASIC_AUTH` = `admin:dein_sicheres_passwort`
|
|
- `N8N_SECRET_TOKEN` = Dein n8n Secret Token (optional)
|
|
|
|
## 🧪 Variablen für Dev Branch
|
|
|
|
Für den `dev` Branch brauchst du die **gleichen** Variablen, aber mit anderen Werten:
|
|
|
|
### Variables:
|
|
- `NEXT_PUBLIC_BASE_URL` = `https://dev.dk0.dev` ⚠️ **WICHTIG: Andere URL!**
|
|
- `MY_EMAIL` = `contact@dk0.dev` (kann gleich sein)
|
|
- `MY_INFO_EMAIL` = `info@dk0.dev` (kann gleich sein)
|
|
- `LOG_LEVEL` = `debug` (für Dev mehr Logging)
|
|
- `N8N_WEBHOOK_URL` = `https://n8n.dk0.dev` (optional)
|
|
|
|
### Secrets:
|
|
- `MY_PASSWORD` = Dein Email-Passwort (kann gleich sein)
|
|
- `MY_INFO_PASSWORD` = Dein Info-Email-Passwort (kann gleich sein)
|
|
- `ADMIN_BASIC_AUTH` = `admin:staging_password` (kann anders sein)
|
|
- `N8N_SECRET_TOKEN` = Dein n8n Secret Token (optional)
|
|
|
|
## ✅ Lösung: Automatische Branch-Erkennung
|
|
|
|
**Gitea unterstützt keine branch-spezifischen Variablen, aber die Workflows erkennen automatisch den Branch!**
|
|
|
|
### Wie es funktioniert:
|
|
|
|
Die Workflows triggern auf unterschiedlichen Branches und verwenden automatisch die richtigen Defaults:
|
|
|
|
**Production Workflow** (`.gitea/workflows/production-deploy.yml`):
|
|
- Triggert nur auf `production` Branch
|
|
- Verwendet: `NEXT_PUBLIC_BASE_URL` (wenn gesetzt) oder Default: `https://dk0.dev`
|
|
|
|
**Dev Workflow** (`.gitea/workflows/dev-deploy.yml`):
|
|
- Triggert nur auf `dev` Branch
|
|
- Verwendet: `NEXT_PUBLIC_BASE_URL` (wenn gesetzt) oder Default: `https://dev.dk0.dev`
|
|
|
|
**Das bedeutet:**
|
|
- 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`)
|
|
|
|
### ⚠️ WICHTIG:
|
|
|
|
Da beide Workflows die **gleiche Variable** verwenden, aber unterschiedliche Defaults haben:
|
|
|
|
**Option 1: Variable NICHT setzen (Empfohlen)**
|
|
- Production verwendet automatisch: `https://dk0.dev`
|
|
- Dev verwendet automatisch: `https://dev.dk0.dev`
|
|
- ✅ Funktioniert perfekt ohne Konfiguration!
|
|
|
|
**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
|
|
|
|
## ✅ 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
|
|
|
|
### 1. Gehe zu Repository Settings
|
|
```
|
|
https://git.dk0.dev/denshooter/portfolio/settings
|
|
```
|
|
|
|
### 2. Klicke auf "Variables" oder "Secrets"
|
|
|
|
### 3. Für Variables (öffentlich):
|
|
- Klicke auf **"New Variable"**
|
|
- **Name:** `NEXT_PUBLIC_BASE_URL`
|
|
- **Value:** `https://dk0.dev` (für Production)
|
|
- **Protect:** ✅ (optional, schützt vor Änderungen)
|
|
- Klicke **"Add Variable"**
|
|
|
|
### 4. Für Secrets (verschlüsselt):
|
|
- Klicke auf **"New Secret"**
|
|
- **Name:** `MY_PASSWORD`
|
|
- **Value:** Dein Passwort
|
|
- Klicke **"Add Secret"**
|
|
|
|
## 🔄 Aktuelle Workflow-Logik
|
|
|
|
Die Workflows verwenden diese einfache Logik:
|
|
|
|
```yaml
|
|
# Production Workflow (triggert nur auf production branch)
|
|
NEXT_PUBLIC_BASE_URL: ${{ vars.NEXT_PUBLIC_BASE_URL || 'https://dk0.dev' }}
|
|
|
|
# Dev Workflow (triggert nur auf dev branch)
|
|
NEXT_PUBLIC_BASE_URL: ${{ vars.NEXT_PUBLIC_BASE_URL || 'https://dev.dk0.dev' }}
|
|
```
|
|
|
|
**Das bedeutet:**
|
|
- 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
|
|
|
|
**⭐ 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
|
|
|
|
1. **Production:** Setze alle Variablen explizit in Gitea
|
|
2. **Dev:** Nutze die Defaults im Workflow (oder setze separate Variablen)
|
|
3. **Secrets:** Immer in Gitea Secrets setzen, nie in Code!
|
|
|
|
## 🔍 Prüfen ob Variablen gesetzt sind
|
|
|
|
In den Workflow-Logs siehst du:
|
|
```
|
|
📝 Using Gitea Variables and Secrets:
|
|
- NEXT_PUBLIC_BASE_URL: https://dk0.dev
|
|
```
|
|
|
|
Wenn eine Variable fehlt, wird der Default verwendet.
|
|
|
|
## ⚙️ Alternative: Environment-spezifische Variablen
|
|
|
|
Falls du separate Variablen für Dev und Production willst, können wir die Workflows anpassen:
|
|
|
|
```yaml
|
|
# Production
|
|
NEXT_PUBLIC_BASE_URL: ${{ vars.NEXT_PUBLIC_BASE_URL_PRODUCTION || 'https://dk0.dev' }}
|
|
|
|
# Dev
|
|
NEXT_PUBLIC_BASE_URL: ${{ vars.NEXT_PUBLIC_BASE_URL_DEV || 'https://dev.dk0.dev' }}
|
|
```
|
|
|
|
Dann könntest du setzen:
|
|
- `NEXT_PUBLIC_BASE_URL_PRODUCTION` = `https://dk0.dev`
|
|
- `NEXT_PUBLIC_BASE_URL_DEV` = `https://dev.dk0.dev`
|
|
|
|
Soll ich die Workflows entsprechend anpassen?
|