「毎回FileZillaを開いてファイルをアップロードするのが面倒...」
「間違えて古いファイルをアップロードしてしまった...」
そんな悩み、GitHub Actionsを使えば一発で解決できます!
一度設定してしまえば、あとはGitHubにプッシュするだけで勝手にXserverの本番環境が更新されるようになります。
この記事では、 Xserver(レンタルサーバー) にデプロイするための 2つの方法(SSH / FTP) を、初心者の方でも迷わないように図解とコピペ用コード付きで徹底解説します。
🚀 この記事で実現できること
- git push するだけでサイトが更新される
- 手作業によるミスがゼロになる
- SSH (高速・安全) または FTP (簡単) の好きな方を選べる
🛠️ 事前準備
- Xserverの契約済みアカウント
- GitHubのアカウントと対象のリポジトリ
方法①:SSHでデプロイ(推奨・高速)✨
一番のおすすめはrsyncなどを使ったSSHデプロイです。差分のみを転送するため非常に高速で、セキュリティも高いです。
1. XserverでSSH設定を有効にする
- Xserverのサーバーパネルにログインします。
- 「アカウント」カテゴリの 「SSH設定」 をクリックします。
- 「ON」 にチェックを入れて「設定する」をクリックします。
2. 認証鍵を作成する
- 同じく「SSH設定」画面の 「公開鍵認証用鍵ペアの生成」 タブをクリックします。
- パスフレーズを入力します(自動化のため空欄でOKです)。
- 「確認画面へ進む」→「生成する」をクリック。
-
秘密鍵(
[サーバーID].key) が自動的にダウンロードされます。これは超重要ファイルなので大切に保管してください。
3. GitHub Secretsに情報を登録
GitHubのリポジトリ画面に移動し、Settings > Secrets and variables > Actions > New repository secret から以下の3つを登録します。
| Name | Value (入力する内容) |
|---|---|
| SSH_HOSTNAME | サーバーパネル「サーバー情報」にある「ホスト名」 (例: sv1234.xserver.jp) |
| SSH_USERNAME | サーバーID (例: xs123456) |
| SSH_PRIVATE_KEY | ダウンロードした秘密鍵の中身を全てコピペ |
[!IMPORTANT]
SSH_PRIVATE_KEYは-----BEGIN RSA PRIVATE KEY-----から-----END RSA PRIVATE KEY-----まで改行も含めて全てコピーしてください。
4. ワークフローファイルの作成
リポジトリの .github/workflows/deploy-ssh.yml というファイルを作成し、以下のコードをコピペしてください。
name: Deploy to Xserver (SSH)
on:
push:
branches:
- main # デプロイしたいブランチ名
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Deploy via SSH
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.SSH_HOSTNAME }}
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
port: 10022 # XserverのSSHポートは10022固定
script: |
# 公開フォルダに移動 (例: public_html)
cd /home/${{ secrets.SSH_USERNAME }}/your-domain.com/public_html
# git pull で更新する場合
git pull origin main
# または rsync で同期する場合 (以下のコメントアウトを外して使用)
# rsync -avz --delete ./ /home/${{ secrets.SSH_USERNAME }}/your-domain.com/public_html/
※ script の部分は、ご自身の運用に合わせて git pull か rsync かを選んでください。初心者の場合はサーバー上で一度 git clone しておき、git pull で更新するのが一番簡単です。
方法②:FTPでデプロイ(簡単・初心者向け)🔰
SSHの設定が難しそう...という方は、FTPアクションを使うのが手軽です。
1. GitHub Secretsに情報を登録
Settings > Secrets and variables > Actions > New repository secret から登録します。
| Name | Value (入力する内容) |
|---|---|
| FTP_SERVER | FTPホスト名 (例: sv1234.xserver.jp) |
| FTP_USERNAME | FTPユーザー名 (初期アカウントIDまたはサブFTPアカウント) |
| FTP_PASSWORD | FTPパスワード |
2. ワークフローファイルの作成
.github/workflows/deploy-ftp.yml を作成します。
name: Deploy to Xserver (FTP)
on:
push:
branches:
- main
jobs:
FTP-Deploy-Action:
name: FTP-Deploy-Action
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0 # 差分アップロードのために必要
- name: FTP-Deploy-Action
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
with:
server: ${{ secrets.FTP_SERVER }}
username: ${{ secrets.FTP_USERNAME }}
password: ${{ secrets.FTP_PASSWORD }}
server-dir: /your-domain.com/public_html/ # アップロード先のパス (最後に / が必要)
exclude: | # アップロードしたくないファイル
**/.git*
**/.git*/**
**/node_modules/**
server-dir は非常に重要です!間違えると意図しない場所にファイルがばら撒かれるので、必ず 最後にスラッシュ(/) をつけてください。
🏆 どっちを使えばいい?
| 特徴 | SSH (Recommended) | FTP |
|---|---|---|
| 難易度 | ⭐⭐⭐ (少し慣れが必要) | ⭐ (簡単) |
| 速度 | 🚀 爆速 (差分のみ) | 🐢 普通 (ファイル数が多いと遅い) |
| 安全性 | 🔒 安全 (鍵認証) | ⚠️ パスワード認証 |
| できること | コマンド実行も可能 (npm installなど) | ファイル転送のみ |
基本的には SSH がおすすめですが、静的サイト(HTML/CSSのみ)なら FTP でも十分です!
🚀 デプロイ成功!
まとめ
これで Xserver へのデプロイが完全自動化されました!
「修正して push」→「数秒待つ」→「サイト更新完了🎉」の快適さを体験すると、もう手動アップロードには戻れません。
ぜひ試してみてください!



