Dependabot auf Self-Hosted GitHub Runners einrichten [2025 Easy Guide]
Hier ist ein aktueller Schritt-für-Schritt-Guide, wie du Dependabot im Jahr 2025 auf deinen eigenen (self-hosted) GitHub Runnern zum Laufen bringst.
Dependabot ist ein unverzichtbares Tool für die Sicherheit deiner Abhängigkeiten. Standardmäßig läuft es auf GitHub-hosted Runnern. In Unternehmensumgebungen oder bei speziellen Netzwerkanforderungen (z. B. Zugriff auf interne Paket-Register) ist es jedoch notwendig, Dependabot auf self-hosted Runnern auszuführen.
Warum self-hosted?
- Zugriff auf interne Netzwerke: Erreiche private Artifactory-, Nexus- oder npm-Instanzen.
- Sicherheit: Keine Daten verlassen deine Infrastruktur.
- Performance: Nutze eigene, leistungsstärkere Hardware.
Voraussetzungen
- Ein funktionierender Self-Hosted Runner: Dein Runner muss online sein (Check unter: Settings > Actions > Runners).
- Docker installiert: Der Dependabot-Updater läuft als Docker-Container. Dein Runner muss Docker installiert haben und der User des Runners muss Berechtigungen haben, Docker-Befehle auszuführen.
- Betriebssystem: Linux (Ubuntu/Debian empfohlen). Windows/macOS-Runner unterstützen Dependabot-Container derzeit nicht nativ ohne komplexe Workarounds.
Schritt 1: Die Runner-Labels vorbereiten
Damit GitHub weiß, dass Dependabot-Jobs auf deinen eigenen Servern landen sollen, musst du die passenden Labels vergeben.
- Gehe zu deinem Repository (oder deiner Organisation).
- Navigiere zu Settings > Actions > Runners.
- Wähle deinen Runner aus und füge ein spezielles Label hinzu (z. B.
dependabot-runner). - Standardmäßig sucht Dependabot nach dem Label
self-hosted.
Schritt 2: Dependabot für self-hosted Runner aktivieren
Seit 2024/2025 hat GitHub die Integration vereinfacht. Du musst GitHub mitteilen, dass die Updates nicht auf den Standard-Cloud-Runnern laufen sollen.
Erstelle oder bearbeite die Datei .github/dependabot.yml in deinem Repository:
version: 2
updates:
- package-ecosystem: "npm" # oder "maven", "pip", "docker" etc.
directory: "/"
schedule:
interval: "weekly"
# DAS IST DER ENTSCHEIDENDE TEIL FÜR 2025:
runs-on:
- self-hosted
- dependabot-runner
Hinweis: Falls du GitHub Enterprise Server nutzt, ist das Vorgehen identisch.
Schritt 3: Netzwerk- und Firewall-Konfiguration
Damit Dependabot auf deinem Runner funktioniert, muss der Runner folgende Ziele erreichen können:
- GitHub API & Repositories: Er muss Pull Requests erstellen können.
- Paket-Manager: Zugriff auf
registry.npmjs.org,pypi.orgoder deine internen Register. - Docker Hub: Zum Herunterladen des Dependabot-Updater-Images (
ghcr.io/dependabot/dependabot-updater).
Schritt 4: Private Register (Optional)
Wenn dein self-hosted Runner auf private Pakete zugreifen soll, musst du die Zugangsdaten in der dependabot.yml hinterlegen:
version: 2
registries:
internal-npm:
type: npm-registry
url: https://artifactory.meinefirma.de/api/npm/npm-repo
token: ${{ secrets.MY_ARTIFACTORY_TOKEN }}
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
registries:
- internal-npm
runs-on: ["self-hosted"]
Wichtig: Die Secrets müssen unter Settings > Code scanning and analysis > Dependabot secrets (nicht unter Actions Secrets!) gespeichert werden.
Schritt 5: Testen und Troubleshooting
Sobald du die dependabot.yml hochgeladen hast, kannst du den Check manuell triggern:
- Gehe auf den Tab Insights.
- Klicke links auf Dependency graph.
- Klicke oben auf den Tab Dependabot.
- Klicke auf Last checked ... ago und wähle Check for updates.
Häufige Fehler 2025:
- Docker Permission Denied: Dein Runner-User ist nicht in der Gruppe
docker. Lösung:sudo usermod -aG docker $USERund Runner neu starten. - No Runner found: Überprüfe, ob die Labels in der
dependabot.ymlexakt mit denen des Runners übereinstimmen. - Disk Space: Dependabot-Container können groß sein. Stelle sicher, dass der Runner genug Platz für Docker-Images hat.
Profi-Tipp: Automatische Updates für den Runner
Da sich die Dependabot-Logik (der "Updater") ständig ändert, zieht sich der Runner bei jedem Lauf das neueste Image von ghcr.io. Stelle sicher, dass dein Runner regelmäßig docker image prune ausführt, damit die alte Versionen deine Festplatte nicht füllen.
Zusammenfassung
Mit dem Eintrag runs-on in der dependabot.yml ist die Einrichtung im Jahr 2025 denkbar einfach geworden. Die meiste Arbeit liegt in der Bereitstellung der Docker-Umgebung auf deinem Linux-Server. Viel Erfolg beim Absichern deines Codes!