- Increase fetch_interval from 2s to 10s to reduce load on Gitea - Increase fetch_timeout from 5s to 30s for better error handling - Add documentation about runner overloading Gitea and how to fix it - Prevents 504 errors caused by runner bombarding Gitea with requests
3.0 KiB
3.0 KiB
Gitea Runner Konfiguration korrigieren
Problem
Der Gitea Runner verwendet gemischte URLs (GitHub + Gitea) und fällt bei 504-Fehlern auf GitHub zurück, was zu Timeouts führt.
Lösung: Runner neu registrieren
Schritt 1: Runner stoppen
cd deployment/gitea-runner
docker compose stop gitea-runner
Schritt 2: Backup erstellen und .runner Datei entfernen
# Backup erstellen
cp data/.runner data/.runner.backup.$(date +%s)
# .runner Datei entfernen (wird bei neuer Registration neu erstellt)
rm -f data/.runner
Schritt 3: Runner starten
docker compose up -d gitea-runner
Schritt 4: Runner neu registrieren
# .env Datei laden
source .env
# Runner registrieren (nur mit korrekter Gitea-URL)
docker compose exec -T gitea-runner act_runner register \
--instance "${GITEA_INSTANCE_URL}" \
--token "${GITEA_RUNNER_REGISTRATION_TOKEN}" \
--name "${GITEA_RUNNER_NAME}" \
--labels "${GITEA_RUNNER_LABELS}"
Wichtig: Bei der Aufforderung "Runner is already registered, overwrite local config? [y/N]" mit y antworten.
Schritt 5: Verifikation
-
Prüfe .runner Datei:
cat data/.runner | grep -E "(address|instance)"Sollte nur
https://git.michaelschiemer.deenthalten, keine GitHub-URLs. -
Prüfe Runner-Logs:
docker compose logs gitea-runner --tail=50 | grep -E "(github|instance|declare)"Sollte
declare successfullyzeigen und keine GitHub-URLs mehr enthalten. -
Prüfe in Gitea UI:
- Gehe zu: https://git.michaelschiemer.de/admin/actions/runners
- Runner sollte als "Online" angezeigt werden
Automatisierung
Falls der Runner automatisch neu registriert werden soll:
cd deployment/gitea-runner
./unregister.sh # Falls vorhanden
./register.sh # Neu registrieren
Troubleshooting
Runner registriert sich nicht:
- Prüfe, ob Gitea erreichbar ist:
curl https://git.michaelschiemer.de/api/healthz - Prüfe, ob der Registration Token noch gültig ist
- Prüfe Runner-Logs:
docker compose logs gitea-runner
Runner verwendet immer noch GitHub:
- Stelle sicher, dass die
.runnerDatei nur die korrekte Gitea-URL enthält - Prüfe, ob es mehrere Runner-Instanzen gibt:
docker ps | grep runner - Prüfe Workflow-Definitionen auf GitHub-URLs
504 Gateway Timeout:
- Prüfe Gitea-Container:
docker logs gitea - Prüfe Traefik-Logs:
docker logs traefik - Stelle sicher, dass Gitea nicht überlastet ist
Runner überlastet Gitea (DDoS-ähnliches Verhalten):
- Der Runner kann Gitea mit zu vielen Anfragen überlasten, besonders bei Fehlern
- Lösung:
fetch_intervalinconfig.yamlerhöhen (Standard: 2s → Empfohlen: 10s oder mehr) - Lösung:
fetch_timeouterhöhen (Standard: 5s → Empfohlen: 30s) - Sofortmaßnahme: Runner deaktivieren/stoppen, bis Gitea wieder stabil ist:
cd deployment/gitea-runner docker compose stop gitea-runner - Nach Anpassung der Konfiguration Runner neu starten:
docker compose up -d gitea-runner