Files
portfolio/GITEA_VARIABLES_SETUP.md
Cursor Agent 9839d1ba7c Checkpoint before follow-up message
Co-authored-by: dennis <dennis@konkol.net>
2026-01-12 14:49:44 +00:00

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?

  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 (productiondk0.dev)

Für den production Branch brauchst du:

Variables (öffentlich sichtbar):

  • NEXT_PUBLIC_BASE_URL_PRODUCTION = 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 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 production Branch
  • Verwendet: NEXT_PUBLIC_BASE_URL_PRODUCTION (wenn gesetzt) oder Default: https://dk0.dev

Testing Workflow (.gitea/workflows/dev-deploy.yml):

  • Triggert nur auf testing Branch
  • 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_PRODUCTION
    • NEXT_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.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)

Optional setzen:

  • NEXT_PUBLIC_BASE_URL_PRODUCTION = https://dk0.dev
  • NEXT_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_PRODUCTION und NEXT_PUBLIC_BASE_URL_TESTING (oder lass beide weg und nutze Defaults).

🎯 Best Practice

  1. Production (production): docker-compose.production.yml → Port 3000 → NPM Host dk0.dev
  2. Testing (testing): docker-compose.testing.yml → Port 3002 → NPM Host testing.dk0.dev
  3. Secrets: immer als Gitea Secrets, nie im Code