最終更新日: 2026年2月26日

テンプレート説明

GitHub Actions セルフホステッドランナーは、GitHub Actionsのワークフローをユーザー自身のVPSインフラ上で実行するためのオープンソースアプリケーションです。GitHubが提供するホステッドランナーと異なり、独自のハードウェア・ソフトウェア環境でCI/CDパイプラインを実行できるため、プライベートネットワークへのアクセスやカスタムビルド環境の構築、コスト最適化が可能です。

本テンプレートは、インストール完了後もランナーは未登録状態(未設定状態)となります。GitHubから取得した登録トークンを使って手動でランナーを登録・起動する設計になっています。

スタートアップスクリプトのテンプレートを利用してサーバー作成を行う手順はご利用ガイドを参照してください。

メモ

本テンプレートはインストール時に最新バージョンのランナーを自動取得します。GitHub APIへのアクセスが失敗した場合、フォールバックとしてバージョン 2.321.0 が使用されます。ランナーはインストール後、自動更新機能により最新状態が維持されます。

仕様

対応OSイメージ

Ubuntu 24.04 LTS

主要ソフトウェア

ソフトウェア名 バージョン ライセンス 用途
GitHub Actions Runner Latest MIT GitHub Actionsワークフロー実行エンジン
Docker Engine Latest Apache 2.0 コンテナジョブ・サービスコンテナの実行
Git latest GPL-2.0 リポジトリのチェックアウト
Python 3 latest PSF License スクリプト実行サポート

スタートアップスクリプト情報

項目 説明
アプリケーション利用ポート 22/tcp (SSH) ※アウトバウンド接続のみ使用(インバウンドポート追加不要)
インストールディレクトリ /opt/actions-runner
ランナー実行ユーザー runner(専用の非rootユーザー)
管理スクリプト /root/github-runner-*.sh
初期状態 未登録・停止中(GitHubへの登録が必要)

その他

最小システム要件

  • CPU: 1コア以上(ランナーアプリ自体の要件は最小限。実行するワークフローの負荷に依存)
  • メモリ: 1GB以上(Dockerコンテナジョブを使用する場合は2GB以上推奨)
  • ディスク容量: 10GB以上(ビルドキャッシュ・Dockerイメージ用の追加容量を推奨)
  • ネットワーク: GitHubへのアウトバウンドHTTPS接続(443/tcp)が必要

メモ

GitHub Actions セルフホステッドランナーアプリケーション自体が必要とするリソースは最小限です。実際に必要なリソースは、実行するワークフローの内容(ビルド・テスト・Dockerビルドなど)によって大きく異なります。重いビルド処理を行う場合はより高スペックなVPSプランをご選択ください。

利用手順

重要

テンプレート作成直後、GitHub Actions Runnerはインストール済みですが、GitHubへの登録は完了していません。ランナーをGitHub Actionsで使用するには、GitHubから登録トークンを取得し、以下の手順に従って登録・起動を行う必要があります。登録トークンの有効期限は発行から1時間です。

Step 1: VPSへの接続

SSHクライアントを使用してVPSに接続します。

# ssh root@<IPアドレスまたはドメイン名>

Step 2: GitHubから登録トークンを取得

ランナーを登録するGitHubリポジトリまたはOrganizationにアクセスし、登録トークンを取得します。

  • リポジトリの場合: Settings > Actions > Runners > New self-hosted runner
  • Organizationの場合: Settings > Actions > Runners > New self-hosted runner

表示されるトークン(AXXXX...形式)をコピーしてください。

セキュリティ重要

登録トークンは発行から1時間で期限切れになります。期限切れの場合は、GitHubから新しいトークンを再取得してください。また、パブリックリポジトリでのセルフホステッドランナーの使用は、外部のPull Requestから悪意のあるコードが実行されるリスクがあるため、推奨されません。プライベートリポジトリでの使用を強く推奨します。

Step 3: ランナーの登録・起動

管理スクリプトを使用してランナーをGitHubに登録し、systemdサービスとして起動します。

リポジトリへの登録例:

# /root/github-runner-manage.sh configure --url https://github.com/<オーナー名>/<リポジトリ名> --token <登録トークン>

Organizationへの登録例:

# /root/github-runner-manage.sh configure --url https://github.com/<Organization名> --token <登録トークン>

ランナー名・カスタムラベルを指定する場合:

# /root/github-runner-manage.sh configure --url https://github.com/<オーナー名>/<リポジトリ名> --token <登録トークン> --name my-runner --labels ubuntu,conoha

登録が完了するとsystemdサービスとしてランナーが自動起動し、以降のVPS再起動時にも自動的に起動します。

Step 4: 動作確認

GitHubのランナー設定画面(Settings > Actions > Runners)で、登録したランナーが「Idle」状態になっていることを確認します。VPS側からも診断スクリプトで状態確認が可能です。

# /root/github-runner-diagnose.sh

Step 5: ワークフローからの利用

GitHub Actionsのワークフローファイル(.github/workflows/*.yml)でruns-on: self-hostedを指定することで、登録したランナーを使用できます。

基本的なワークフロー例:

jobs:
  build:
    runs-on: self-hosted
    steps:
      - uses: actions/checkout@v4
      - name: Build
        run: echo "Running on self-hosted runner"

カスタムラベルを指定する場合:

jobs:
  build:
    runs-on: [self-hosted, ubuntu, conoha]
    steps:
      - uses: actions/checkout@v4

管理スクリプト一覧

スクリプト名 機能 使用例
github-runner-manage.sh configure ランナーをGitHubに登録してサービス起動 # /root/github-runner-manage.sh configure –url <URL> –token <TOKEN>
github-runner-manage.sh reconfigure 既存設定を削除して再登録(別リポジトリへの移行時) # /root/github-runner-manage.sh reconfigure –url <URL> –token <TOKEN>
github-runner-manage.sh start サービス起動 # /root/github-runner-manage.sh start
github-runner-manage.sh stop サービス停止 # /root/github-runner-manage.sh stop
github-runner-manage.sh restart サービス再起動 # /root/github-runner-manage.sh restart
github-runner-manage.sh status 登録状態・サービス状態の確認 # /root/github-runner-manage.sh status
github-runner-manage.sh remove ランナーの登録解除 # /root/github-runner-manage.sh remove –token <TOKEN>
github-runner-diagnose.sh システム診断(ランナー状態・Docker・ネットワーク確認) # /root/github-runner-diagnose.sh

セキュリティグループ(ファイアウォール)設定

メモ

GitHub Actions セルフホステッドランナーはGitHubへのアウトバウンド接続のみを使用します。ランナー自体への外部からのインバウンド接続は不要なため、SSH(22番ポート)以外のインバウンドポートを開放する必要はありません。

ポート番号 プロトコル 用途 必須/オプション
22 TCP SSH(管理用) 任意

なお、ランナーがGitHubと通信するためには以下のアウトバウンド接続が必要です(VPSのデフォルト設定では通常開放されています)。

接続先 ポート 用途
github.com / api.github.com 443/tcp ジョブの受信・GitHub APIアクセス
ghcr.io / docker.io 等 443/tcp Dockerイメージの取得(コンテナジョブ使用時)

アプリケーションの具体的な利用方法につきましては、サービス開発元やサービス提供元の公式サイト、Wikiなどで最新情報をご確認ください。

サイト名 URL 説明
GitHub Actions 公式ドキュメント https://docs.github.com/en/actions GitHub Actions全般のドキュメント
Self-Hosted Runners ドキュメント https://docs.github.com/en/actions/hosting-your-own-runners セルフホステッドランナーの設定・管理ガイド
GitHub Actions Runner GitHubリポジトリ https://github.com/actions/runner ランナーアプリのソースコード・リリース情報
ランナーのセキュリティ強化 https://docs.github.com/en/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions セルフホステッドランナーのセキュリティベストプラクティス