5.4 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 (production → dk0.dev)
Für den production Branch brauchst du:
Variables (öffentlich sichtbar):
NEXT_PUBLIC_BASE_URL_PRODUCTION=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 testing Branch brauchst du die gleichen Variablen, aber mit anderen Werten:
Variables:
NEXT_PUBLIC_BASE_URL_TESTING=https://testing.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:testing_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_PRODUCTION(wenn gesetzt) oder Default:https://dk0.dev
Testing Workflow (.gitea/workflows/dev-deploy.yml):
- Triggert nur auf
testingBranch - Verwendet:
NEXT_PUBLIC_BASE_URL_TESTING(wenn gesetzt) oder Default:https://testing.dk0.dev
Das bedeutet:
- Du setzt zwei Variablen in Gitea (empfohlen, weil Gitea nicht branch-spezifisch scoped):
NEXT_PUBLIC_BASE_URL_PRODUCTIONNEXT_PUBLIC_BASE_URL_TESTING
⚠️ WICHTIG:
Gitea kann Variablen/Secrets nicht pro Branch trennen. Darum nutzen wir separate Variablennamen für Production und Testing.
✅ Empfohlene Konfiguration
⭐ Einfachste Lösung: nur URLs setzen (optional)
Die Workflows haben bereits die richtigen Defaults:
- Production Branch → automatisch
https://dk0.dev - Testing Branch → automatisch
https://testing.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)
Optional setzen:
NEXT_PUBLIC_BASE_URL_PRODUCTION=https://dk0.devNEXT_PUBLIC_BASE_URL_TESTING=https://testing.dk0.dev
📝 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_PRODUCTION -
Value:
https://dk0.dev -
Protect: ✅ (optional, schützt vor Änderungen)
-
Klicke "Add Variable"
-
Klicke auf "New Variable"
-
Name:
NEXT_PUBLIC_BASE_URL_TESTING -
Value:
https://testing.dk0.dev -
Protect: ✅ (optional)
-
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_PRODUCTION || 'https://dk0.dev' }}
# Testing Workflow (triggert nur auf testing branch)
NEXT_PUBLIC_BASE_URL: ${{ vars.NEXT_PUBLIC_BASE_URL_TESTING || 'https://testing.dk0.dev' }}
Das bedeutet:
- Jeder Workflow hat seinen eigenen Default
- Wenn die jeweilige Variable (
NEXT_PUBLIC_BASE_URL_PRODUCTION/NEXT_PUBLIC_BASE_URL_TESTING) in Gitea gesetzt ist, wird diese verwendet - Wenn nicht gesetzt, verwendet jeder Branch seinen eigenen Default
⭐ Beste Lösung:
- Setze
NEXT_PUBLIC_BASE_URL_PRODUCTIONundNEXT_PUBLIC_BASE_URL_TESTING(oder lass beide weg und nutze Defaults).
🎯 Best Practice
- Production (
production):docker-compose.production.yml→ Port 3000 → NPM Hostdk0.dev - Testing (
testing):docker-compose.testing.yml→ Port 3002 → NPM Hosttesting.dk0.dev - Secrets: immer als Gitea Secrets, nie im Code