↑ ↓ to select, Enter to open

← Back to the logbook
New project1 min read

Work in progress: a GitHub runner as a Portainer stack

A self-hosted GitHub Actions runner as a single Portainer stack that moves long CI jobs onto your own hardware. Still in progress.

by NoiXdev

You look at your Actions bill and almost all of it comes from one job. Usually it’s the browser tests. This project moves exactly that job onto a machine of your own.

The Portainer GitHub Runner packages your own runner as a Portainer stack. Point it at a repository, fill in the variables, deploy. The fast jobs stay on GitHub, so a push still gets its verdict when your server is off.

Let’s be upfront: this is a work in progress. No job has run end to end on it yet. Also, the runner uses the host’s Docker socket, which means root on that machine. For a private repository and people you trust, that’s a fair trade. For a public one it isn’t.

What it does

  • One stack. Two services and one block of variables in Portainer. No build step.
  • A label of its own. Only the jobs you meant for it end up here.
  • Cleans up after itself. Old images, build cache and stopped containers are pruned regularly. Volumes are left alone.
  • No restarts mid-job. The stack opts out of Watchtower.

Get started

Everything else is on the project page and in the documentation. Read the security section before you deploy.

Go to the projectPortainer GitHub RunnerMove that one long CI job onto your own machine.

More from the logbook

  1. A new website and a new logo

    We rebuilt noix.dev. More room for every project, honest comparisons with other tools, and finally a place for news.

    News
  2. Why none of our tools needs an account

    A few thoughts on why we build software that runs on your computer or your server, and not on ours.

    Article
  3. What we're building right now: Pulsix

    Set up servers, monitor them and get alerted, in one interface. Pulsix isn't finished yet, but it's already open.

    News