GitHub Runner einfach selbst hosten

GitHub Runner einfach selbst hosten

Yulei Chen - Content-Engineerin bei sliplane.ioYulei Chen
6 min

GitHub Actions ist eine der beliebtesten CI/CD-Plattformen, aber die gehosteten Runner haben Limits. Im Free Plan bekommst du nur 2.000 Minuten pro Monat, und bei den Bezahl-Plänen wird pro Minute abgerechnet. Wenn du viele Workflows laufen hast, geht das schnell ins Geld.

Mit Sliplane kannst du einen self-hosted GitHub Actions Runner in wenigen Minuten deployen. Du bekommst unbegrenzte CI/CD-Minuten zu einem festen Monatspreis, ohne Server-Setup oder Wartung.

Voraussetzungen

Bevor du loslegst, brauchst du:

  • Einen Sliplane Account (kostenloser Trial verfügbar)
  • Ein GitHub Personal Access Token (PAT) mit dem repo Scope (für Repository-Runner) oder admin:org Scope (für Organisations-Runner)

Um ein PAT zu erstellen, geh zu GitHub Settings > Developer settings > Personal access tokens und erstell ein neues Token mit dem nötigen Scope.

Schnellstart

Sliplane bietet One-Click Deployment mit Presets.

SliplaneGitHub Runner deployen >
  1. Klick auf den Deploy-Button oben
  2. Trag deinen ACCESS_TOKEN (GitHub PAT) und deine REPO_URL ein (z.B. https://github.com/deine-org/dein-repo)
  3. Wähl einen Server aus (wenn du dich gerade angemeldet hast, bekommst du einen 48-Stunden-Trial-Server)
  4. Klick auf Deploy!

Nach dem Deployment registriert sich der Runner automatisch bei deinem GitHub Repository. Du kannst das unter Settings > Actions > Runners in deinem GitHub Repo prüfen.

Was im Preset steckt

Das One-Click Deployment oben nutzt das GitHub Runner Preset von Sliplane. Das steckt drin:

  • Nutzt das myoung34/github-runner Docker Image (Version 2.334.0)
  • Persistenter Storage auf /runner, damit Daten bei Neustarts erhalten bleiben
  • Vorkonfiguriert für Repository-Runner (RUNNER_SCOPE=repo)
  • Standard-Label self-hosted, damit du den Runner in deinen Workflows ansprechen kannst
  • Runner-Name-Prefix auf sliplane-runner gesetzt zur einfachen Identifikation

Der Service ist nicht öffentlich, weil der Runner nur ausgehende Verbindungen zu GitHub aufbaut und keine HTTP-Endpoints bereitstellt.

Nächste Schritte

Sobald der Runner deployed ist, registriert er sich bei GitHub und fragt nach Jobs. Du kannst ihn in deinen Workflow-Dateien mit dem self-hosted Label ansprechen:

jobs:
  build:
    runs-on: self-hosted
    steps:
      - uses: actions/checkout@v4
      - run: echo "Läuft auf meinem self-hosted Runner!"

Umgebungsvariablen

Hier sind die wichtigsten Umgebungsvariablen, die du in deinen Service-Einstellungen auf Sliplane anpassen kannst:

VariableStandardBeschreibung
ACCESS_TOKEN(erforderlich)GitHub Personal Access Token
REPO_URL(erforderlich)Repository-URL, z.B. https://github.com/org/repo
RUNNER_SCOPErepoAuf org setzen für Organisations-Runner
ORG_NAME(leer)Nötig wenn RUNNER_SCOPE auf org steht
RUNNER_NAME_PREFIXsliplane-runnerPrefix für den Runner-Namen in GitHub
LABELSself-hostedKomma-getrennte Labels zum Ansprechen in Workflows
RUNNER_WORKDIR/runner/workArbeitsverzeichnis für die Job-Ausführung

Organisations-Runner

Um den Runner auf Organisations-Ebene statt für ein einzelnes Repository zu registrieren:

  1. Setz RUNNER_SCOPE auf org
  2. Setz ORG_NAME auf den Namen deiner GitHub Organisation
  3. Achte drauf, dass dein PAT den admin:org Scope hat

Custom Labels

Du kannst eigene Labels hinzufügen, um bestimmte Runner in deinen Workflows anzusprechen. Setz die LABELS Variable auf eine komma-getrennte Liste, zum Beispiel: self-hosted,linux,sliplane. Dann nutze diese Labels in deinem Workflow:

jobs:
  build:
    runs-on: [self-hosted, sliplane]

Logging

Die Runner-Logs sind direkt in Sliplane's eingebautem Log-Viewer verfügbar. Du siehst dort Registrierungsnachrichten, Job-Übernahmen und Ausführungs-Output. Tipps zum Arbeiten mit Docker Logs findest du in unserem Guide how to use Docker logs.

Kostenvergleich

Du kannst einen GitHub Actions Runner auch bei anderen Cloud-Anbietern selbst hosten. Hier ein Preisvergleich der gängigsten Anbieter:

AnbietervCPURAMDiskMonatliche KostenHinweis
Sliplane22 GB40 GB€9 (~$10,65)Flatrate, 1 TB Bandwidth, SSL inklusive
Fly.io22 GB40 GB~$18Disk und Bandwidth separat abgerechnet
Render12 GB40 GB~$35100 GB Bandwidth, Disk separat abgerechnet
Railway22 GB40 GB~$67 + $20 PlanPro Plan Floor, nutzungsbasiert, Bandwidth separat
Klick hier, um die Berechnung zu sehen.

(Angenommen eine Always-on-Instanz mit 730 Stunden/Monat)

  • Sliplane: pauschal €9/Monat für den Base Server. Unbegrenzte Services auf dem gleichen Server, 1 TB Egress und SSL inklusive.
  • Fly.io: shared-cpu-2x 2 GB = $11,83/Mo + 40 GB Volume × $0,15/GB = $6 -> ~$17,83/Mo. Egress wird separat berechnet ($0,02/GB in der EU).
  • Render: nächste Entsprechung ist Standard ($25, 1 vCPU / 2 GB) plus 40 GB Disk × $0,25/GB = $10 -> ~$35/Mo. Pro (2 vCPU / 4 GB) kostet $85/Mo + Disk.
  • Railway (Pro Plan): CPU 2 × $0,00000772/s × 2.628.000 s = $40,57; RAM 2 × $0,00000386/s × 2.628.000 s = $20,29; Volume 40 × $0,00000006/s × 2.628.000 s = $6,31 -> ~$67/Mo Compute, plus der $20/Mo Pro Plan Floor und $0,05/GB Egress.

Bandwidth-Kosten können bei nutzungsbasierten Anbietern schnell steigen. Nutz unser Bandwidth-Kostenvergleichs-Tool, um zu sehen, was dein Egress bei jedem Anbieter kosten würde.

FAQ

Wie unterscheidet sich ein self-hosted Runner von GitHub-hosted Runnern?

GitHub-hosted Runner sind praktisch, aber limitiert. Du bekommst 2.000 kostenlose Minuten pro Monat im Free Plan, und jede zusätzliche Minute kostet $0,008 (Linux). Mit einem self-hosted Runner auf Sliplane zahlst du pauschal €9/Monat und bekommst unbegrenzte Minuten. Self-hosted Runner geben dir außerdem volle Kontrolle über die Umgebung, vorinstallierte Tools und Zugang zu privaten Netzwerk-Ressourcen.

Kann ich mehrere Runner auf dem gleichen Server laufen lassen?

Ja. Auf Sliplane kannst du mehrere Runner-Services auf dem gleichen Server deployen. Jeder registriert sich als separater Runner bei GitHub. Gib jedem Service einfach einen anderen RUNNER_NAME_PREFIX, damit sie nicht kollidieren. Da Sliplane pro Server abrechnet (nicht pro Service), kosten mehrere Runner auf dem gleichen Server nichts extra.

Wie update ich den Runner?

Änder den Image Tag in deinen Service-Einstellungen auf Sliplane und deploy neu. Check Docker Hub für die neueste stabile Version. Der Runner registriert sich nach dem Update automatisch wieder bei GitHub.

Gibt es Alternativen zu self-hosted GitHub Runnern?

Wenn du nach managed CI/CD suchst, gibt es Optionen wie GitLab CI, CircleCI und Buildkite. Wenn du deine eigene Git-Plattform hosten willst, schau dir an, wie du Gitea oder Forgejo auf Sliplane deployen kannst.

Kann ich Docker-in-Docker mit diesem Runner nutzen?

Das Standard-Sliplane-Preset mountet nicht den Docker Socket, deshalb funktionieren Docker-Befehle in deinen Workflows nicht out of the box. Wenn deine CI/CD-Workflows nur Scripts, Tests oder Builds ausführen (ohne Docker zu brauchen), funktioniert der Runner einwandfrei. Für Workflows, die Docker brauchen (wie Image-Builds), müsstest du stattdessen einen [VPS mit Docker Socket Zugang](/blog/Building a Pipeline to Deploy Docker Containers to a VPS) einrichten.

GitHub Runner selbst hosten - ganz einfach!

Sliplane gibt dir alles, was du brauchst, um einen self-hosted GitHub Actions Runner ohne Server-Stress zu betreiben.