- 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
6.2 KiB
🔧 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?
- Gehe zu deinem Repository auf Gitea
- Klicke auf Settings (Einstellungen)
- 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.devMY_EMAIL=contact@dk0.dev(oder deine Email)MY_INFO_EMAIL=info@dk0.dev(oder deine Info-Email)LOG_LEVEL=infoN8N_WEBHOOK_URL=https://n8n.dk0.dev(optional)
Secrets (verschlüsselt):
MY_PASSWORD= Dein Email-PasswortMY_INFO_PASSWORD= Dein Info-Email-PasswortADMIN_BASIC_AUTH=admin:dein_sicheres_passwortN8N_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
productionBranch - Verwendet:
NEXT_PUBLIC_BASE_URL(wenn gesetzt) oder Default:https://dk0.dev
Dev Workflow (.gitea/workflows/dev-deploy.yml):
- Triggert nur auf
devBranch - Verwendet:
NEXT_PUBLIC_BASE_URL(wenn gesetzt) oder Default:https://dev.dk0.dev
Das bedeutet:
- Du setzt eine Variable
NEXT_PUBLIC_BASE_URLin 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.devsetzt - 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.devMY_INFO_EMAIL=info@dk0.devLOG_LEVEL=info(wird für Production verwendet, Dev überschreibt mitdebug)
Secrets (für beide Branches):
MY_PASSWORD= Dein Email-PasswortMY_INFO_PASSWORD= Dein Info-Email-PasswortADMIN_BASIC_AUTH=admin:dein_passwortN8N_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:
# 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_URLin Gitea gesetzt ist, wird diese verwendet - Wenn nicht gesetzt, verwendet jeder Branch seinen eigenen Default
⭐ Beste Lösung:
- NICHT
NEXT_PUBLIC_BASE_URLin Gitea setzen - Dann verwendet Production automatisch
https://dk0.dev - Und Dev verwendet automatisch
https://dev.dk0.dev - ✅ Perfekt getrennt, ohne Konfiguration!
🎯 Best Practice
- Production: Setze alle Variablen explizit in Gitea
- Dev: Nutze die Defaults im Workflow (oder setze separate Variablen)
- 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:
# 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.devNEXT_PUBLIC_BASE_URL_DEV=https://dev.dk0.dev
Soll ich die Workflows entsprechend anpassen?