{"id":13725795,"url":"https://github.com/wbond/pi-github-runner","last_synced_at":"2025-09-23T14:12:58.358Z","repository":{"id":66036957,"uuid":"396014851","full_name":"wbond/pi-github-runner","owner":"wbond","description":"Docker config to easily enable arm and arm64 GitHub Actions via the self-hosted runner mechanism","archived":false,"fork":false,"pushed_at":"2022-11-20T18:50:26.000Z","size":11,"stargazers_count":27,"open_issues_count":1,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-04T16:27:47.355Z","etag":null,"topics":["docker","github-actions"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wbond.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-14T13:18:13.000Z","updated_at":"2025-02-09T10:00:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"f51a1af3-f2d3-4744-8c5d-ce98dc563170","html_url":"https://github.com/wbond/pi-github-runner","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wbond/pi-github-runner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wbond%2Fpi-github-runner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wbond%2Fpi-github-runner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wbond%2Fpi-github-runner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wbond%2Fpi-github-runner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wbond","download_url":"https://codeload.github.com/wbond/pi-github-runner/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wbond%2Fpi-github-runner/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266076037,"owners_count":23872729,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","github-actions"],"created_at":"2024-08-03T01:02:35.563Z","updated_at":"2025-09-23T14:12:53.294Z","avatar_url":"https://github.com/wbond.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"ARM and ARM64 Github Actions Runner\n===================================\n\nThis repository makes it simple to run a self-hosted GitHub Actions runner on a Raspberry Pi 3 or Raspberry Pi 4.\n\nSince GitHub doesn't provide arm Actions runners, using a Raspberry Pi is one of the simplest methods for testing on arm.\n\nThis repository was inspired by https://github.com/myoung34/docker-github-actions-runner.\n\n## Architecture\n\nThis repo requires:\n\n - A Raspberry Pi 3 or Raspberry Pi 4 with Linux armhf or arm64\n - python3 and docker be installed on the Raspberry Pi\n\n*Technically the project supports x86_64 Linux/Mac hosts also, which would\nresult in an x64 Ubuntu runner, however those are available from GitHub.*\n\nThe overall architecture of the system is:\n\n - Docker is used to run a self-host GitHub runner in a container\n - The container is a bare-bones environment that can be customized to your\n   tooling needs\n - The container runs Ubuntu 20.04, armhf, arm64 or amd64 depending on the\n   host machine architecture\n - The user `ubuntu` runs jobs, with password-less `sudo` access\n - The container is persisted between runs so any changes to the OS are not\n   wiped at the end of a job\n - *You should probably follow GitHub's advice about using self-hosted runners\n   for private projects.* You may be able to use them on public projects if\n   you restrict GitHub Actions access to require approval so you can approve\n   known contributors.\n\n## Setup\n\nFor setting up a runner, you need to have:\n\n - Linux installed on a Raspberry Pi 3 or Raspberry Pi 4\n - python3 and docker installed\n\nPersonally, I like to run the Ubuntu 20.04.\n\n*The one thing to be aware of with Ubuntu 20.04 on armhf is that Docker\ncurrently doesn't provide packages for 20.04. To get docker working, the\n`focal` text in the Docker debian repository needs to be replaced with\n`bionic`.*\n\nOnce you have your base OS installed, ensure your user is configured to be\npart of the `docker` group.\n\nNext, you will want to customize the `Dockerfile` to install system packages\nyour CI runs will require.\n\nOnce you've customized the `Dockerfile`, build the docker image:\n\n```bash\n./build\n```\n\nIf you end up wanting to customize the base image and build it locally, run:\n\n```bash\n./build --full\n```\n\n## Starting a Runner\n\nStarting a runner consists of providing the GitHub username and repo as\npositional args to the `./start` script. Additionally, an env var named\n`GITHUB_ACCESS_KEY` must contain your GitHub Person Access Token.\n\n```bash\nGITHUB_ACCESS_TOKEN=examplekey ./start GITHUB_USER GITHUB_REPO\n```\n\n## Base Image\n\n*This section is primarily documentation about how I build\n`wbond/pi-github-runner-base`. Users will not run this, and an error will\noccur if they do, since it will try to push to my Docker Hub account.*\n\nThe base image is built for amd64, arm64 and armhf, using the following\ncommand:\n\n```bash\n./publish-base\n```\n\nIf the command produces an error such as `multiple platforms feature is\ncurrently not supported for docker driver`, then create a different builder:\n\n```bash\ndocker buildx create --use --name build --node build --driver-opt network=host\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwbond%2Fpi-github-runner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwbond%2Fpi-github-runner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwbond%2Fpi-github-runner/lists"}