GitHub Actions self-hosted runnerを自宅で使う手順【2026年版】

GitHub Actions self-hosted runnerを自宅で使う手順【2026年版】
IT Picks編集部

「GitHub Actions の無料枠がすぐ減る」「macOS のビルドが高い」「ジョブの待ち時間が長い」——そんな悩みの答えのひとつが、GitHub Actions の self-hosted runner(セルフホストランナー)です。自宅の PC やサーバーに Runner アプリを入れておくと、GitHub のジョブを手元のマシンで実行できます。

結論から言うと、非公開のリポジトリで、ワークフローを動かすのが自分(信頼できる人)だけなら有力な選択肢です。self-hosted runner の利用料は 2026年11月13日時点で無料 で、無料枠も減りません。一方で、公開リポジトリでは使わないのが鉄則です。他人のプルリクエストで、自宅のマシンが乗っ取られるおそれがあるためです。

2026年は料金の話題でも揺れました。GitHub は self-hosted runner にも1分0.002ドルをかけると発表したあと延期しています。この記事では、標準 Runner との比較、2026年の料金の扱い、公式の手順での導入、安全に使うための対策を順に整理します。

Self-hosted runners
Self-hosted runners

この記事はこんな人向けです

  • GitHub Actions の無料枠や待ち時間、macOS の料金の高さが気になっている
  • 自宅の PC やサーバーで CI(ビルド・テスト)を動かせないか知りたい
  • self-hosted runner の登録手順と、危ない使い方を先に押さえておきたい

self-hosted runnerとは?一言でまとめると

self-hosted runner は、GitHub Actions のジョブを「自分で用意したマシン」で実行するしくみです。普段の Actions は GitHub が用意した仮想マシン(GitHub-hosted runner、この記事では「標準 Runner」)で動きますが、その代わりに自宅の PC・サーバー・仮想マシン・コンテナを使えます。

しくみはシンプルです。マシンに入れた Runner アプリが GitHub に外向きの HTTPS(443番)でつなぎ、ジョブを取りに行きます。家のルーターでポートを開けたり、固定 IP を用意したりする必要はありません。

self-hosted runnerの仕組み
GitHub Docs「Self-hosted runners reference」(2026年11月13日確認)をもとに IT Picks 編集部が作成

Runner を登録できる単位は3つあります。個人で使うなら、まずはリポジトリ単位で十分です。

登録する単位 ジョブを受け付ける範囲 向いている使い方
リポジトリ そのリポジトリだけ 個人開発・お試し
Organization Organization の複数のリポジトリ チームでマシンを共有
Enterprise Enterprise の複数の Organization 大きな組織での一括管理

GitHub標準Runnerとの比較:料金・性能・手間の違い

標準 Runner と self-hosted runner の違いを、2026年11月13日時点の公式ドキュメントで並べました。

項目 標準 Runner(GitHub-hosted) self-hosted runner
Actions の利用料 公開リポジトリは無料、非公開は無料枠のあと従量課金 無料(無料枠も減らない)
マシン代・電気代 かからない 自分持ち
スペック(非公開リポジトリ) Linux・Windows は 2 vCPU・8GB、macOS(M1)は3コア・7GB 手持ちのマシン次第
1ジョブの最大時間 6時間 5日
ジョブごとの環境 毎回新しい仮想マシン 前のジョブの状態が残る
OS・ソフトの更新 GitHub が管理 自分で行う
家の LAN・GPU・専用機器 使えない 使える
同時に動かせるジョブ Free 20・Pro 40・Team 60(macOS は5) マシンと Runner の数次第
標準Runnerとself-hosted runnerの比較
GitHub Docs の課金・制限・ランナーのページ(2026年11月13日確認)をもとに IT Picks 編集部が作成

ひと言でいえば、標準 Runner は「お金で手間を買う」、self-hosted runner は「手間でお金と自由を買う」選び方です。速さは手元のマシン次第で、古いノート PC なら標準 Runner より遅くなることもあります。「タダになる」だけで選ぶと、管理の手間で損をする点は先に押さえておきたいところです。

2026年の料金:self-hosted runnerは今も無料?

① いまの料金のしくみ

2026年11月13日時点の GitHub の課金ページでは、非公開リポジトリの Actions は「毎月の含まれる計算量(ドル建て)」から差し引く方式です。self-hosted runner の利用は無料で、この枠も減らしません。

プラン 毎月含まれる計算量 成果物のストレージ
GitHub Free 12ドル 500MB
GitHub Pro 18ドル 1GB
GitHub Team 18ドル 2GB
GitHub Enterprise Cloud 300ドル 50GB
GitHub Docsの含まれる計算量の表
出典: GitHub Docs「GitHub Actions billing」(2026年11月13日時点)

標準 Runner の単価は、Linux 2コアが1分0.006ドル、Windows が0.010ドル、macOS が0.062ドルです。Free の12ドルを Linux 2コアだけに使うと 2,000分、macOS だけなら約193分になります。macOS の単価は Linux の10倍を超えるため、iOS アプリのビルドがあると枠がすぐに尽きます。

無料プランの12ドル分で使える分数
GitHub Docs「GitHub Actions billing」(2026年11月13日確認)の単価から IT Picks 編集部が計算・作成

なお、支払い方法を登録していないと、含まれる分を使い切った時点でジョブが止まります。月の途中で CI が動かなくなるのは、たいていこれが原因です。

② 0.002ドルの課金は「延期」のまま

GitHub は2025年12月16日、標準 Runner を2026年1月1日から最大39%値下げすると同時に、self-hosted runner にも2026年3月1日から1分0.002ドルをかけると発表しました。その後 GitHub は、「方針を見直すため延期する」と告知に追記しています。

時期 出来事
2025年12月16日 料金体系の変更を発表(標準 Runner の値下げ+self-hosted の課金予定)
発表の直後 self-hosted の課金を延期(新しい開始日は示されていない)
2026年1月1日 標準 Runner の値下げは予定どおり実施(0.002ドル分を含めた新しい単価)
2026年11月13日 課金ページでも self-hosted runner は無料 と記載
self-hosted runnerの料金をめぐる動き
GitHub Changelog・GitHub Resources・GitHub Docs(2026年11月13日確認)をもとに IT Picks 編集部が作成

「中止」ではなく「延期」なので、将来また課金の話が出る可能性はあります。self-hosted に乗り換えるなら、半年に1回くらいは課金ページを見直しておくと安心です。

③ どれくらい差が出る?試算

非公開リポジトリで、1回10分の CI を30日動かした場合を、公式の単価で試算しました(Free プラン、ストレージ代は含めない。実際の請求額ではありません)。

使い方 1か月の分数 標準 Runner での計算量 Free の12ドルを引いた残り self-hosted runner
Linux・1日3回 900分 5.4ドル 0ドル(枠内) 0ドル+電気代
Linux・1日10回 3,000分 18ドル 6ドル 0ドル+電気代
macOS・1日3回 900分 55.8ドル 43.8ドル 0ドル+Mac の用意

Linux で1日数回なら無料枠で足ります。差が大きく出るのは macOS のビルドが多い人と、1回が長いビルドを何度も回す人です。

クラウドの無料枠でサーバーを用意して Runner を置く方法もあります。各社の無料枠の比較はこちら。

あわせて読みたい
クラウド無料枠を比較:AWS・GCP・Azure・OCI【2026年版】
クラウド無料枠を比較:AWS・GCP・Azure・OCI【2026年版】

自宅サーバーで使うべき?選び方のチェック

迷ったら、次の3つの質問で決めると失敗しにくいと考えています。

self-hosted runnerを使うべきかのチェック
GitHub Docs のセキュリティガイド・課金ページ(2026年11月13日確認)をもとに IT Picks 編集部が作成
こんな人 おすすめ 理由
公開リポジトリ(OSS)の CI 標準 Runner 標準 Runner は無料・無制限。self-hosted は他人のコードが動く
非公開・Linux で1日数回 標準 Runner 無料枠で足り、管理の手間がない
非公開・macOS のビルドが多い self-hosted が有力 macOS の単価が高く、差が大きい
重いビルド・6時間を超えるジョブ self-hosted が有力 標準 Runner は1ジョブ6時間まで
家の機器・GPU・LAN 内の検証環境を使う self-hosted 標準 Runner からは届かない
普段使いの PC しかない 様子見 仕事のファイルや鍵があるマシンで他のコードを動かすのは危険

導入前の準備:対応OSと必要なもの

Runner アプリが動く OS は、2026年11月13日時点で次のとおりです。

OS 対応する版 CPU
Linux Ubuntu 20.04 以降、Debian 10 以降、RHEL・CentOS・Oracle Linux 8 以降、Fedora 29 以降など x64・ARM64
Windows Windows 10・11(64ビット)、Windows Server 2016・2019・2022 x64(ARM64 はプレビュー)
macOS macOS 11(Big Sur)以降 x64・ARM64

用意するものは次の4つです。

  • 権限: 個人のリポジトリならオーナー、Organization のリポジトリならオーナーか管理者権限
  • 通信: GitHub への外向きの HTTPS(443番)。帯域は上り・下りとも 70kbps 以上
  • Docker: Docker コンテナのアクションやサービスコンテナ(DB など)を使うなら、Linux に Docker が必要
  • 専用のユーザー: Runner アプリは root(sudo)では設定できません。専用の一般ユーザーを作っておきます

ラズパイのような ARM64 の Linux でも動くので、余っている小型 PC を CI 専用機にするのは現実的な使い方です。

導入手順:リポジトリにRunnerを登録する

ここからは、GitHub 公式の手順(Linux の場合)を、迷いやすい点を補って並べ直しました。

リポジトリにRunnerを登録する流れ
GitHub Docs「Adding self-hosted runners」「Configuring the self-hosted runner application as a service」(2026年11月13日確認)をもとに IT Picks 編集部が作成

① リポジトリの Settings を開く

リポジトリのページで Settings → 左のメニューの Actions → Runners を開き、「New self-hosted runner」を押します。Settings が見えないときは、タブの「…」の中にあります。

② OS と CPU を選ぶ

Linux・macOS・Windows と、x64 か ARM64 かを選びます。選ぶと、そのマシンで打つコマンドが画面に表示されます。

③ Runner アプリをダウンロードする

表示されたコマンドで、作業用のフォルダ(例: actions-runner)に Runner アプリをダウンロードして展開します。画面には SHA-256 を照合するコマンドも出るので、省かずに実行しておくと安心です。展開すると Node.js などが入った状態で 約680MB になるので、ディスクには余裕を持たせます。

Linux では、展開したフォルダの ./bin/installdependencies.sh を sudo で実行すると、足りないライブラリ(libicu など)が入ります。ここまでを実際に動かしたときの表示とつまずいた所は、下の「実際にセットアップしてみた」にまとめています。

④ config.sh で登録する

画面に出る ./config.sh --url <リポジトリの URL> --token <登録トークン> を実行します。登録トークンは1時間で失効するので、コピーしたらすぐに実行するのがコツです。途中で Runner の名前・グループ・ラベル・作業フォルダを聞かれ、Enter で既定値になります。

⑤ run.sh で起動する

./run.sh を実行し、「Connected to GitHub」「Listening for Jobs」と出れば待機状態です。GitHub の Runners の一覧にも表示されます。

⑥ サービスにして常駐させる

run.sh はターミナルを閉じると止まります。常に動かすなら、登録後に install → start の順に実行してサービス(Linux は systemd)にします。3行目は状態の確認です。

ターミナル(Runner のマシン)

sudo ./svc.sh install
sudo ./svc.sh start
sudo ./svc.sh status

ワークフローで使う方法:runs-onとラベル

登録した Runner には、自動で self-hosted・OS(linux など)・CPU(x64 など)のラベルが付きます。ワークフローの runs-on にラベルを並べると、全部のラベルを持つ Runner にジョブが回ります。

ワークフロー(.github/workflows/ci.yml)

name: ci
on:
  push:
    branches: [main]
jobs:
  test:
    runs-on: [self-hosted, linux, x64]
    steps:
      - uses: actions/checkout@v7
      - run: npm ci
      - run: npm test

実際の流れは「push → GitHub がジョブをキューに入れる → 自宅の Runner が取りに来る → 手元で npm test が動く → ログと結果が GitHub の画面に出る」です。条件に合う Runner が待機していないと、ジョブはキューで待ち続け、24時間で失敗します。

よく使う工夫は次の3つです。

  • 独自ラベル: GPU があるマシンに gpu などのラベルを付け、runs-on: [self-hosted, gpu] で指定する
  • 標準 Runner と使い分け: 軽いチェックは ubuntu-latest、重いビルドだけ self-hosted にする
  • 依存の固定: 使うアクションのバージョンを固定しておくと、意図しないコードが自宅のマシンで動くのを防げる

アクションのバージョン固定については、GitHub Actions のロックファイルの記事で詳しく紹介しています。

あわせて読みたい
GitHub Actionsにロックファイル、依存をコミットで固定【2026年10月】
GitHub Actionsにロックファイル、依存をコミットで固定【2026年10月】

常駐・更新・片付けの方法

self-hosted runner は、入れっぱなしにすると「いつの間にか動かない」「古いまま」になりがちです。運用で知っておきたいルールをまとめます。

場面 ルール やること
自動更新 既定で Runner アプリが自動で更新される(OS は対象外) OS とソフトは自分で更新する
自動更新を止めたとき 新しい版から 63日以内に更新しないとジョブが来なくなる --disableupdate は理由があるときだけ
マシンを止めていたとき 14日以上つながらない Runner は自動で削除(ephemeral は1日) 再開するときは登録し直す
使わなくなったとき Settings → Actions → Runners → Runner 名 → Remove 表示された削除コマンドをマシンで実行
マシンが壊れたとき 削除コマンドが打てない Force remove this runner で一覧から消す

セキュリティ対策:自宅で使う前の6つのチェック

自宅のマシンで他のコードを動かす以上、セキュリティがいちばん大事な節です。GitHub のセキュリティガイドの内容を、自宅で使う場合に置き換えて整理しました。

自宅でself-hosted runnerを使う前の安全チェック
GitHub Docs「Secure use reference」「Self-hosted runners reference」(2026年11月13日確認)をもとに IT Picks 編集部が作成

① 公開リポジトリでは使わない

GitHub は、self-hosted runner を公開リポジトリで使うことはほぼ避けるべきとしています。誰でもフォークしてプルリクエストを出せるため、悪意のあるコードが自宅のマシンで動くおそれがあるからです。

GitHub Docsの追加手順のページ冒頭の警告
出典: GitHub Docs「Adding self-hosted runners」(2026年11月13日時点)

手順のページの冒頭にも、非公開リポジトリだけで使うことを勧める警告が最初に出ています。

② 非公開でも「誰が動かせるか」を絞る

非公開リポジトリでも、読み取り権限がある人はフォークしてプルリクエストを出せます。その結果、シークレットや GITHUB_TOKEN が盗まれるおそれがあります。共同作業者を招くときは、この点を考えて権限を決めます。

③ 専用のマシンかコンテナで動かす

Runner はジョブが終わっても前の状態が残ります。普段使いの PC で動かすと、SSH 鍵・API トークン・写真などの個人のファイルにジョブから手が届きます。専用の小型 PC・仮想マシン・Docker のコンテナに分けるのが基本です。

④ ephemeral で1ジョブごとに使い捨てる

config.sh に --ephemeral を付けると、1つのジョブを終えたら自動で登録が外れます。コンテナと組み合わせて「毎回まっさらな環境で登録し直す」形にすると、前のジョブの痕跡を引き継がずに済みます。Kubernetes を使う人なら、GitHub が案内している Actions Runner Controller(ARC)が、ジョブごとにコンテナの Runner を作って消すしくみです。

⑤ 家の LAN から切り離す

ジョブからは家の NAS やルーターの管理画面にも通信できてしまいます。ゲスト用のネットワークや VLAN に置く、ファイアウォールで外向きの通信を GitHub などに絞るなど、届く範囲を小さくしておくと安心です。

⑥ デプロイの鍵を置かない

クラウドへのデプロイに使うなら、長く使える鍵をマシンに置かず、GitHub が勧める OpenID Connect(OIDC)で短時間だけ使える認証情報を発行する方法を検討します。

他の人の導入事例:自宅サーバー・Kubernetes・Mac mini

実際に self-hosted runner を動かした人の公開記事から、3つの例を紹介します(いずれも筆者・チームの環境での話です)。

事例 環境 分かること
Zenn の inunekousapon さん(2024年8月) 自宅サーバーの VM(Ubuntu 22.04)に Ansible と Docker で構築 root では動かない・libicu が必要など、画面の手順だけではつまずく点がある
Zenn の tochiman さん(2024年10月) ラズパイを含む小さな Kubernetes に ARC ジョブごとに Pod を作って消せる。Docker のビルドには dind モードが必要だった
英 Guardian のエンジニアリングチーム(@IT の翻訳、2026年3月) 社内で余っていた Mac mini で iOS アプリの CI 月約400ポンドを削減。ディスクや Xcode の管理は自分たちで行う必要がある

Zenn の inunekousapon さんは、自宅サーバーの VM に Ansible と Docker で Runner を立てた記録で、config.sh が root で動かないことや libicu の不足でつまずきやすいと書いています(出典)。

Zenn の tochiman さんは、ラズパイを含むリソースの少ない Kubernetes に ARC を入れ、ジョブごとに Pod ができて終わると消える点が限られたマシンに向いていると述べています(出典)。

@IT の記事によると、英 Guardian のチームは iOS アプリの CI を社内の Mac mini に移し、月約400ポンドを削減した一方、ディスク容量や Xcode・シミュレーターの片付けを自分たちで管理する手間が増えたと振り返っています(出典)。

3つに共通するのは、「動かすまで」より「動かし続ける」ほうに手間がかかるという点です。自宅のマシンが止まれば CI も止まるので、電源・回線・ディスクの面倒を見られるかを先に考えておきたいところです。

自宅に置くのが難しい場合は、VPS に Runner を置く方法もあります。VPS の選び方はこちら。

あわせて読みたい
【2026年版】VPSおすすめの選び方|失敗しやすいポイントと候補まとめ
【2026年版】VPSおすすめの選び方|失敗しやすいポイントと候補まとめ

実際にセットアップしてみた

2026年11月13日に、テスト用の Linux 環境(Docker の Ubuntu 24.04.5 LTS)で次の手順を実際に動かしました。動かしたのは GitHub への登録の手前までで、Runner アプリのダウンロード・展開・準備と、登録前のコマンドの動きです。GitHub への登録(登録トークンを使う config.sh)とジョブの実行はしていません。

① Runner アプリをダウンロードして照合する

2026年11月13日時点の最新版 v2.338.2(Linux x64)を、リリースページから取ってきました。

ターミナル

curl -sSL -o r.tar.gz https://github.com/actions/runner/releases/download/v2.338.2/actions-runner-linux-x64-2.338.2.tar.gz
sha256sum r.tar.gz

実行結果

baebf204307bac6193480852732f0aba2ae97b6c5597c244f4d5558390147c40  r.tar.gz

ファイルは 228,071,396 バイトで、SHA-256 はリリースページに載っている値と一致しました。

② 展開して、足りないライブラリを入れる

ターミナル

tar xzf r.tar.gz
ls externals
du -sh .
sudo ./bin/installdependencies.sh

実行結果(抜粋)

node20
node20_alpine
node24
node24_alpine
683M    .
... Setting up libicu74:amd64 ... Finish Install Dependencies

展開すると中に Node.js 20 と 24 が入っていて、フォルダ全体で 約683MB になりました。小さな SD カードのラズパイなどでは容量に気をつけてください。installdependencies.sh で、足りなかった libicu74 が入りました。

③ 一般ユーザーで config.sh を開く

ターミナル

./run.sh --version
./config.sh --help
Runnerアプリを展開して動かした結果
2026年11月13日時点(出典: GitHub「actions/runner」v2.338.2)

バージョンは 2.338.2 と表示されました。root(sudo)のまま ./config.sh を実行すると「Must not run with sudo」と出て止まるので、Runner 用の一般ユーザーを作って、そのユーザーで動かします。

config.sh --helpに出る主な設定
2026年11月13日時点(出典: GitHub「actions/runner」v2.338.2)

一般ユーザーで --help を開くと、--ephemeral(1ジョブで登録を外す)、--labels(独自ラベル)、--disableupdate(自動更新を止める)、--unattended(質問なしで登録)などの設定が並んでいました。既定のラベルは self-hosted,Linux,X64 です。

④ 登録前に run.sh を動かしてみる

ターミナル

./run.sh

実行結果

An error occurred: Not configured. Run config.(sh/cmd) to configure the runner.

登録前の run.sh はこのエラーで終わります。このメッセージが出たら、config.sh での登録がまだ済んでいないということです。

この先は公式の手順

GitHub への登録(./config.sh --url … --token …)、run.sh での待機、svc.sh でのサービス化、ワークフローからのジョブの実行は、今回は行っていません。上の「導入手順」の④〜⑥で、GitHub 公式の手順として説明しています。

よくある質問

Q. self-hosted runner は本当に無料ですか? A. 2026年11月13日時点の GitHub の課金ページでは、self-hosted runner の利用は無料で、プランに含まれる計算量も減りません。ただし2025年12月に発表された1分0.002ドルの課金は「延期」で、中止ではありません。マシン代・電気代は自分持ちです。

Q. 無料の GitHub Free プランでも使えますか? A. 使えます。課金ページでは Free プランも含めて self-hosted runner は無料と書かれています。個人のリポジトリならオーナーが Settings から登録できます。

Q. 自宅のルーターでポートを開ける必要はありますか? A. ありません。Runner から GitHub への外向きの HTTPS(443番)でジョブを取りに行くしくみです。

Q. Windows や Mac でも動きますか? A. 動きます。Windows 10・11(64ビット)と Windows Server 2016〜2022、macOS 11 以降に対応しています。ただし Docker コンテナのアクションを使うなら Linux が必要です。

Q. PC の電源を切っている間はどうなりますか? A. ジョブはキューで待ち、24時間で失敗します。14日以上つながらないと Runner の登録も自動で消えるので、再開時は登録し直します。

まとめ

GitHub Actions の self-hosted runner のポイントをまとめます。

  • しくみ:自宅などのマシンの Runner アプリが、外向きの HTTPS(443番)でジョブを取りに行く
  • 料金:self-hosted runner の利用は無料(2026年11月13日時点)。1分0.002ドルの課金は延期中
  • 標準 Runner の無料枠:Free は月12ドル分(Linux 2コアなら2,000分、macOS なら約193分)
  • 向いている人:非公開リポジトリ・macOS や重いビルドが多い・家の機器を使いたい人
  • 導入手順:Settings → Actions → Runners → New self-hosted runner → config.sh(トークンは1時間)→ svc.sh
  • いちばんの注意:公開リポジトリでは使わない。専用マシンか ephemeral のコンテナで動かす

まずは今の Actions の使用量を Settings の課金画面で確かめ、無料枠が足りているかを見てから、余っている小型 PC と非公開リポジトリの組み合わせで1台から始めるのがおすすめです。

ABOUT ME
IT Picks 編集部
IT Picks 編集部
ITツール・Webサービス紹介メディア
IT Picks 編集部。VPS・クラウド・AIツール・SaaSを中心に、実際に検証した情報を届けるITメディアです。「本当に使えるか」を基準に、初心者からエンジニアまで役立つ記事を制作しています。
記事URLをコピーしました