目次
Claude CodeはAnthropicが提供する革新的なAIコーディングツールで、ターミナルから直接コーディングタスクを委託できます。しかし、作成したコードを手動で本番環境にデプロイするのは手間がかかり、ヒューマンエラーの原因にもなります。
本記事では、GitHub Actionsを使用してClaude Codeによる変更を自動的に本番環境(レンタルサーバー)にデプロイする方法を詳しく解説します。
結論:GitHub Actionsで実現する自動デプロイ
GitHub ActionsのWorkflowを設定することで、GitHubにpushした変更を自動的にレンタルサーバーに反映できます。 これにより、Claude Codeで生成したコードをコミット・プッシュするだけで、本番環境への反映が完了します。
前提条件
自動デプロイを実現するために必要な環境は以下の通りです:
- Claude Codeがインストールされた開発環境
- GitHubアカウント
- SSHアクセス可能なレンタルサーバー
- 基本的なGitの知識
ステップ1:プロジェクトにGitを導入し、GitHubリポジトリを作成
ローカルプロジェクトでGitを初期化
まず、Claude Codeで作業しているプロジェクトディレクトリでGitを初期化します。
bash
# プロジェクトディレクトリに移動
cd /path/to/your/project
# Gitリポジトリを初期化
git init
# .gitignoreファイルを作成(必要に応じて)
echo "node_modules/" > .gitignore
echo ".env" >> .gitignore
# 初回コミット
git add .
git commit -m "Initial commit"
GitHubでリポジトリを作成
- GitHubにログインし、右上の「+」ボタンから「New repository」を選択
- リポジトリ名を入力(例:
my-claude-code-project
) - Public/Privateを選択
- 「Create repository」をクリック
ローカルリポジトリとGitHubを連携
bash
# GitHubリポジトリをリモートとして追加
git remote add origin
# mainブランチにプッシュ
git branch -M main
git push -u origin main
ステップ2:本番サーバーの準備
SSHでサーバーにアクセス
bash
ssh username@your-server.com
サーバー上でプロジェクトをクローン
本番環境のディレクトリでGitHubからプロジェクトをクローンします。
bash
# Webルートディレクトリに移動(例:/var/www/html)
cd /var/www/html
# GitHubからクローン
git clone
cd YOUR_REPOSITORY
# 必要に応じて依存関係をインストール
# Node.jsプロジェクトの場合:
npm install --production
ステップ3:GitHub Actions Workflowの設定
デプロイ用のSSHキーを生成
ローカル環境で新しいSSHキーペアを生成します。
bash
ssh-keygen -t ed25519 -C "github-actions-deploy" -f ~/.ssh/github-actions-deploy
サーバーに公開鍵を登録
生成した公開鍵をサーバーのauthorized_keys
に追加します。
bash
# 公開鍵の内容を表示
cat ~/.ssh/github-actions-deploy.pub
# サーバーにSSHでログインし、authorized_keysに追加
ssh username@your-server.com
echo "YOUR_PUBLIC_KEY_CONTENT" >> ~/.ssh/authorized_keys
GitHub Secretsに秘密鍵を登録
- GitHubリポジトリの「Settings」→「Secrets and variables」→「Actions」へ移動
- 「New repository secret」をクリック
- 以下のSecretを追加:
SSH_PRIVATE_KEY
: 秘密鍵の内容(~/.ssh/github-actions-deploy
の中身)SSH_HOST
: サーバーのホスト名またはIPアドレスSSH_USERNAME
: SSHユーザー名
Workflow YAMLファイルの作成
プロジェクトルートに.github/workflows/deploy.yml
を作成します。
yaml
name: Deploy to Production
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Deploy to server
uses: appleboy/ssh-action@v0.1.5
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd /var/www/html/YOUR_REPOSITORY
git pull origin main
# Node.jsプロジェクトの場合
npm install --production
# PHPプロジェクトでComposerを使用している場合
# composer install --no-dev
# 必要に応じてビルドコマンドを追加
# npm run build
# キャッシュクリアなど、必要な処理を追加
# php artisan cache:clear
ステップ4:Claude Codeでの開発とデプロイフロー
Claude Codeで変更を作成
bash
# Claude Codeを使用してコードを生成・編集
claude-code "Add user authentication feature"
変更をコミット・プッシュ
bash
# 変更をステージング
git add .
# コミット
git commit -m "Add user authentication feature by Claude Code"
# GitHubにプッシュ(自動デプロイがトリガーされる)
git push origin main
デプロイの確認
GitHubリポジトリの「Actions」タブでワークフローの実行状況を確認できます。成功すると、本番環境に自動的に変更が反映されます。
セキュリティのベストプラクティス
1. 環境変数の管理
本番環境の設定は.env
ファイルで管理し、GitHubにはコミットしないようにします。
bash
# .gitignoreに追加
echo ".env" >> .gitignore
2. ブランチ保護ルールの設定
mainブランチへの直接プッシュを制限し、プルリクエストを必須にすることで、意図しないデプロイを防げます。
3. デプロイ用SSHキーの定期的な更新
セキュリティを維持するため、デプロイ用のSSHキーは定期的に更新することを推奨します。
トラブルシューティング
デプロイが失敗する場合
- SSH接続エラー: Secretsに登録した情報が正しいか確認
- 権限エラー: サーバー上のディレクトリ権限を確認
- Git pullエラー: サーバー上でローカル変更がないか確認
ログの確認方法
bash
# サーバー上でGitログを確認
git log --oneline -10
# GitHub Actionsのログを確認
# GitHubリポジトリの「Actions」タブから該当のワークフローを選択
まとめ
Claude CodeとGitHub Actionsを組み合わせることで、AIが生成したコードを安全かつ効率的に本番環境にデプロイできます。この自動化により、開発スピードが向上し、手動デプロイによるミスを防ぐことができます。
Claude Codeの強力なコード生成能力と、GitHub Actionsの自動化機能を活用して、より生産的な開発環境を構築しましょう。