Einige Links auf dieser Seite sind Affiliate-Links: bei einer Anmeldung darüber erhält diese Seite eine Provision, für Sie ohne Mehrkosten. Preise und Empfehlungen bleiben davon unberührt.

Jeder Ratgeber “CI kostenlos betreiben” hört an derselben Stelle auf: GitHub gibt Ihnen Gratis-Minuten, und selbst gehostete Runner sind kostenlos. Keine der beiden Aussagen ist falsch, und keine sagt Ihnen, was ein Runner tatsächlich kostet. Dieser Beitrag rechnet mit den Zahlen, die GitHub heute veröffentlicht, und einem VPS-Preis, den wir selbst gemessen haben.

Was GitHub-gehostete Runner pro Minute kosten

Die Schlagzeile lautet $0.006 pro Minute für einen Standard-Linux-Runner mit 2 Kernen, und sie greift erst, wenn Ihre inkludierten Minuten aufgebraucht sind. Vorher zahlen Sie gar nicht pro Minute; Sie verbrauchen ein monatliches Kontingent.

RunnerRate pro Minute (USD)
Linux 1 Kern (x64)$0.002
Linux 2 Kerne (x64)$0.006
Linux 2 Kerne (arm64)$0.005
Windows 2 Kerne$0.010
macOS 3-4 Kerne$0.062

In dieser Tabelle verstecken sich zwei Dinge. Erstens rundet GitHub jeden Job auf die nächste volle Minute auf, ein 30-Sekunden-Job wird also als eine Minute abgerechnet. Zweitens ist arm64 günstiger als x64 ($0.005 gegen $0.006) - ein Grund, Ihren öffentlichen Runner auf ein Arm-Label umzustellen, wenn Ihr Stack auf Arm baut.

Größere Runner sind eine andere Leiter: Linux mit 4 Kernen kostet $0.012/min, 8 Kerne $0.022, 16 Kerne $0.042, bis hin zu 96 Kernen für $0.252. Die zählen nur, wenn Sie innerhalb eines einzelnen Jobs parallelisieren, und sie sind im Free-Plan überhaupt nicht verfügbar.

Das Freikontingent, in Minuten

“Kostenlos” heißt eine enthaltene Rechenmenge, nicht unbegrenzte Minuten. Das Monatskontingent, umgerechnet in Standard-Linux-Minuten zu $0.006:

PlanEnthaltenes ComputeStandard-Linux-Minuten
Free$122.000
Pro$183.000
Team$183.000
Enterprise Cloud$30050.000

Zwei Regeln zählen mehr als die Tabelle. Öffentliche Repositories erhalten unbegrenzt Standard-Hosted-Runner gratis - die Minuten oben gelten nur für private Repos. Und selbst gehostete Runner sind immer kostenlos und verbrauchen überhaupt nichts von Ihrem enthaltenen Compute. Genau diese zweite Regel ist der ganze Business-Case für einen eigenen Runner.

Der Break-even: wann ein VPS GitHub schlägt

Ein selbst gehosteter Runner kostet das, was die Maschine kostet, und die Minuten sind gratis. Die Frage ist, wie viele Hosted-Minuten diese Maschine ersetzen muss, bis sie sich amortisiert.

Nehmen Sie den Hetzner CX23, den wir für unseren VPS-Vergleich gemessen haben: 2 vCPU / 4 GB / 40 GB für 5,49 € im Monat, etwa $6. Bei $0.006 pro Linux-Minute kaufen $6 exakt 1.000 Hosted-Minuten. Der CX23 amortisiert sich also in dem Monat, in dem Sie sonst 1.000 bezahlte Minuten laufen lassen - also Minuten über Ihrem Freikontingent.

Durchgerechnetes Beispiel im Free-Plan:

  • Sie bekommen 2.000 Linux-Minuten gratis.
  • Sie brauchen tatsächlich 4.000 Minuten (ein stark genutztes privates Repo, oder mehrere).
  • Hosted-Kosten: (4.000 - 2.000) × $0.006 = $12.
  • Selbst gehostet: 5,49 € ≈ $6, unbegrenzte Minuten.
  • Sie sind ab dem ersten Monat im Plus, und jede weitere Minute ist gratis.

Dieselbe Rechnung auf Pro (3.000 enthalten): Selbst hosten lohnt, sobald Sie 3.000 + 1.000 = 4.000 Minuten im Monat überschreiten. Darunter ist Hosted günstiger, weil Sie Pro ohnehin bezahlen und das Kontingent Sie abdeckt.

Der Teil, den die Rechnung verschweigt

Der VPS läuft, egal ob gerade ein Build läuft oder nicht. Hosted-Runner rechnen nur genutzte Minuten ab. Diese Asymmetrie entscheidet alles:

  • Stetige, schwere CI - nächtliche Builds, ein Monorepo mit vielen Jobs - Selbst hosten gewinnt im ersten starken Monat und gewinnt weiter.
  • Spitzen-CI - ein paar Pushes pro Woche, hier und da Minuten - Sie bleiben im Freikontingent und Hosted kostet nichts. Ein VPS für 5,49 € ist dann 5,49 €, die Sie nicht hätten ausgeben müssen.
  • Kurze Jobs - GitHubs Aufrunden auf die volle Minute bestraft 20-Sekunden-Jobs. Ein selbst gehosteter Runner hat keinen Minutenzähler zum Aufrunden, hundert 20-Sekunden-Jobs sind also einfach… Zeit.

Dazu kommen zwei weitere Vorteile von Self-Hosting, die nichts mit Geld zu tun haben. Hosted-Jobs sind auf 6 Stunden begrenzt; ein selbst gehosteter Runner kennt diese Obergrenze nicht. Und Hosted-Parallelität ist durch den Plan gedeckelt, während ein selbst gehosteter Runner so viele parallele Jobs erlaubt, wie die Kerne der Maschine hergeben.

Was ein selbst gehosteter Runner Sie wirklich kostet

Der Preis in Dollar ist nicht der ganze Preis. Sie betreiben jetzt einen Dienst, der beliebigen Code aus Ihrem Repository ausführt, und Ihnen gehören Patching, Updates und die Sicherheitsgrenze.

Drei Regeln, die wir auf unserer eigenen Box befolgen:

  1. Niemals auf dem Produktionshost. Ein Runner führt nicht vertrauenswürdigen Workflow-Code aus. Geben Sie ihm einen eigenen VPS oder zumindest einen eigenen Container ohne Zugriff auf Ihre Seite, Konfigs oder Backups.
  2. Ephemer, nicht langlebig. Registrieren Sie pro Job oder pro Tag einen frischen Runner, damit ein vergiftetes Image nicht zurückbleibt. Actions Runner Controller (ARC) erledigt das auf Kubernetes; ein schlichtes docker run --rm des Runner-Images erledigt es auf einer einzelnen Box.
  3. Keine Secrets in der Runner-Umgebung. Der Runner sieht nur das repo-bezogene GITHUB_TOKEN der Jobs, die er ausführt. Halten Sie Ihre Deploy-Keys dort, wo ein Job sie nicht lesen kann - dieselbe Überlegung, die wir im rsync-Deploy-Guide aufgeschrieben haben.

Der Runner selbst ist ein einzelnes Binary oder ein Container, den Sie unter Docker betreiben; exotisch ist er nicht. Was man leicht falsch macht, ist alles drumherum, und genau das kostet echte Zeit.

Die Einrichtung ist auf jeder Box gleich: Legen Sie einen Runner unter Settings → Actions → Runners → New self-hosted runner an, kopieren Sie den Download-Befehl - er enthält Ihren Token und die aktuelle Version - führen Sie dann config.sh aus und installieren Sie ihn als Dienst. Die GitHub-Seite nennt Ihnen die exakten drei Befehle; die Versionsnummer ändert sich, der Ablauf nicht.

Was soll ich nehmen?

Nehmen Sie GitHub-gehostet, wenn Sie im Freikontingent bleiben - private Repos unter 2.000 Minuten im Monat oder jedes öffentliche Repo - Sie null Wartung wollen und Ihre Jobs in Minuten statt Stunden fertig sind.

Nehmen Sie einen selbst gehosteten Runner auf Hetzner , wenn Sie das Freikontingent jeden Monat aufbrauchen, lange oder stark parallele Jobs brauchen oder Builds im privaten Netz neben Ihren Servern wollen.

Nehmen Sie Vultr oder DigitalOcean , wenn Sie einen Runner in einer Region brauchen, die Hetzner nicht abdeckt, oder sekundengenaue Abrechnung für einen Runner, den Sie nur bei Bedarf hochfahren.

FAQ

Sind GitHub Actions kostenlos? Öffentliche Repositories erhalten unbegrenzt Standard-Hosted-Runner gratis. Private Repositories erhalten ein monatliches Kontingent - $12 Compute im Free-Plan, das sind 2.000 Standard-Linux-Minuten - und zahlen danach $0.006 pro weiterer Linux-Minute.

Was kostet ein selbst gehosteter Runner? Die Runner-Software ist kostenlos. Sie zahlen nur die Maschine, auf der sie läuft - ab etwa 5,49 € im Monat für einen Hetzner CX23 - und Ihre Zeit für die Wartung. Die Minuten sind unbegrenzt.

Wann ist ein selbst gehosteter Runner günstiger? Wenn Ihr Private-Repo-Verbrauch das Freikontingent um mehr als rund 1.000 Linux-Minuten im Monat übersteigt. Darunter kostet der etwa $6 teure VPS mehr, als die ersetzten Hosted-Minuten wert sind.

Haben Hosted-Runner Grenzen? Ja. Jobs laufen nach 6 Stunden in einen Timeout, und die Parallelität ist durch Ihren Plan gedeckelt. Selbst gehostete Runner haben keine Kosten pro Minute und keine 6-Stunden-Grenze, aber Ihnen gehört die Maschine samt Updates.

Ist ein selbst gehosteter Runner sicher zu betreiben? Nur wenn Sie ihn isolieren. Er führt beliebigen Code aus Ihrem Repository aus, sollte also niemals einen Host mit Produktions-Workloads teilen, ephemer sein und keine langlebigen Secrets enthalten. Unser Audit übernommener Server ist die Isolations-Checkliste.

Wie geht es weiter?

Die Maschine darunter ist die Entscheidung, die Sie eigentlich treffen. Der VPS-Vergleich zerlegt Hetzner gegen DigitalOcean gegen Vultr mit Benchmarks, die wir selbst gefahren sind, und der Caddy-und-Docker-Guide zeigt das Ein-Box-Setup, das einen selbst gehosteten Runner und eine kleine Site auf einem Server hält, ohne dass sie sich berühren.