{"id":13487145,"url":"https://github.com/knatnetwork/github-runner","last_synced_at":"2025-03-27T21:31:56.277Z","repository":{"id":41571754,"uuid":"481587657","full_name":"knatnetwork/github-runner","owner":"knatnetwork","description":"Simple Self-Hosted GitHub Actions Runner","archived":false,"fork":false,"pushed_at":"2025-03-12T02:41:15.000Z","size":120,"stargazers_count":44,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-12T03:29:59.322Z","etag":null,"topics":["githubactions","githubactionsrunner","self-hosted"],"latest_commit_sha":null,"homepage":"https://runner.knat.network","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/knatnetwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2022-04-14T12:00:00.000Z","updated_at":"2025-03-12T02:41:18.000Z","dependencies_parsed_at":"2024-01-16T09:03:03.887Z","dependency_job_id":"d9e67469-00d5-413f-a737-c81cd12427e7","html_url":"https://github.com/knatnetwork/github-runner","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knatnetwork%2Fgithub-runner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knatnetwork%2Fgithub-runner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knatnetwork%2Fgithub-runner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knatnetwork%2Fgithub-runner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/knatnetwork","download_url":"https://codeload.github.com/knatnetwork/github-runner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245927334,"owners_count":20695216,"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":["githubactions","githubactionsrunner","self-hosted"],"created_at":"2024-07-31T18:00:55.890Z","updated_at":"2025-03-27T21:31:56.253Z","avatar_url":"https://github.com/knatnetwork.png","language":"Shell","readme":"# Simple Self-Hosted GitHub Actions Runner\n\nNo Operator, No CRD, No need to blindly apply a `yml` to K8s cluster, only a simple self-hosted GitHub Actions Runner that just works!\n\n## Images\n\nThis repo provides the following images, both are Multi-Arch(amd64/arm64 supported):\n\n- `knatnetwork/github-runner:focal-\u003ctag\u003e`\n- `ghcr.io/knatnetwork/github-runner:focal-\u003ctag\u003e`\n- `knatnetwork/github-runner:jammy-\u003ctag\u003e`\n- `ghcr.io/knatnetwork/github-runner:jammy-\u003ctag\u003e`\n- `knatnetwork/github-runner:noble-\u003ctag\u003e`\n- `ghcr.io/knatnetwork/github-runner:noble-\u003ctag\u003e`\n\n\n`\u003ctag\u003e` is related to the https://github.com/actions/runner/tags, for example, you may expect a image called `knatnetwork/github-runner:jammy-2.322.0` when `v2.322.0` is released.\n\n## Specs\n\n- `github-runner:focal-\u003ctag\u003e` images are based on Ubuntu 20.04\n- `github-runner:jammy-\u003ctag\u003e` images are based on Ubuntu 22.04\n- `github-runner:noble-\u003ctag\u003e` images are based on Ubuntu 24.04\n- `github-runner:latest` images are latest image of `github-runner:noble-\u003ctag\u003e`\n\n## Usage\n\n1. Prepare your GitHub Personal Access Token, which looks like `ghp_xxxxxxxxxxxxx` with `admin:org` permission(If you'd like to register runner to repo, your user must have Admin permission on the related repo), if you don't know how to do it, you can refer to [Creating a personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)\n2. If you'd like to register runner on a single machine, you can follow the quick start below.\n3. If you need to spread multiple runners on multiple nodes using K8s, please take a look at the [documentation](https://runner.knat.network).\n\n### Docker compose Quick Start\n\nThis is a quick start example for people to register a runner on single machine using Docker Compose.\n\nFirst you need to create a `docker-compose.yml` file and write the following content.\n\n```yml\nversion: '3'\n\nservices:\n  runner:\n    image: knatnetwork/github-runner:latest\n    restart: always\n    environment:\n      RUNNER_REGISTER_TO: 'knatnetwork'\n      RUNNER_LABELS: 'docker,knat'\n      KMS_SERVER_ADDR: 'http://kms:3000'\n      GOPROXY: 'http://goproxy.knat.network,https://proxy.golang.org,direct'\n      ADDITIONAL_FLAGS: '--ephemeral'\n    volumes:\n      - /var/run/docker.sock:/var/run/docker.sock\n    depends_on:\n      - kms\n\n  kms:\n    image: knatnetwork/github-runner-kms:latest\n    restart: always\n    environment:\n      PAT_knatnetwork: 'ghp_Lxxxxxxxxxx2NUk5F'\n      PAT_rust-lang: 'ghp_Lxxxxxxxxxx2NUk5F'\n```\n\n(If your org's name is `org_name`, then `environment` should be `PAT_org_name: 'ghp_Lxxxxxxxxxx2NUk5F'`)\n\nAfter that you can use `docker-compose up -d` to start the runner, and now the runner should be registered on `knatnetwork` Org now.\n\n![](./demo.png)\n\nNotes:\n\n- If you want to run runner without docker support inside it, just delete the `volumes`\n- If you don't want ephemeral runner(ref: [GitHub Actions: Ephemeral self-hosted runners \u0026 new webhooks for auto-scaling](https://github.blog/changelog/2021-09-20-github-actions-ephemeral-self-hosted-runners-new-webhooks-for-auto-scaling/), just remove `ADDITIONAL_FLAGS: '--ephemeral'` line.)\n- If you want to register runner to a repo only, you can just change value of `RUNNER_REGISTER_TO` to `\u003corg_name\u003e/\u003crepo_name\u003e`, and use `PAT_\u003corg_name\u003e` as `environment` in `kms` container.\n\n## Further Reading\n\nFor more instructions, please take a look at the [documentation](https://runner.knat.network).\n\n## License\n\nGPL\n","funding_links":[],"categories":["The matrix (might be better readable on [GitHub pages](https://jonico.github.io/awesome-runners/))"],"sub_categories":["A word about self-hosted action runner images / virtual environments and how to test locally"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknatnetwork%2Fgithub-runner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fknatnetwork%2Fgithub-runner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknatnetwork%2Fgithub-runner/lists"}