スターサーバーへの自動デプロイ

2025-12-06 16:13

netowl社が提供するスタードメインは、リーズナブルな価格で独自ドメインを取得でき、さらに無料で高機能スターサーバーをレンタルすることができる(全力媚売り)。 スターサーバーはftpでのアップロードに対応しているが、毎回一々アップロード作業を行うのが面倒なので、Github Actionsを用いて自動化することにした。

スターサーバーへの接続

これは2021年移行の新契約用の説明になる。 接続用の情報は以下の通り。

FTPサーバー(ホスト)名 sv****.star.ne.jp
ユーザー(アカウント名) FTPアカウントに設定したユーザーID(XXX@YYYY.ZZ)
パスワード FTPアカウントに設定したFTPパスワード

ftpコマンドやファイルマネージャーで接続した際には、サーバーパネル>FTP>FTPアカウント設定 の接続先ディレクトリに繋がる(そこがルートディレクトリになる)。

例えばotsu36.netの場合は接続先が/home/ssXXXXXX/otsu36.netになっている。

このディレクトリ内のpublic_htmlが公開ページになる。つまり https://otsu36.net/ で表示されるのは、実際には/home/ssXXXXXX/otsu36.net/public_html/index.htmlということ。

Github Actions

pushなどのタイミングでコマンドやらを実行できる機能。.github/workflows/ にymlファイルを置くことで設定を追加できる。 アクション実行に必要な機密情報(パスワードなど)をymlに直に書くのはまずいので、環境変数(Repository secrets)に保持しておくのが無難。

Repository secrets

リポジトリのSettingsからsecretsを追加できる。 以下のNew Repositry secretを押し

Imgur

KeyとValueをそれぞれNameとSecretに入力する。

Imgur

これでリポジトリ内からsecrets.keyの形で参照できる。

yml

例えばmainブランチへのpushの度にftpでデプロイするには以下のように書く。

deploy.yml

name: FTP Deploy

on:
  push:
    branches: [ "main" ]

jobs:
  ftp-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Install FTP Deploy Action
        uses: SamKirkland/FTP-Deploy-Action@v4.3.6
        with:
          server: ${{ secrets.FTP_HOST }}
          username: ${{ secrets.FTP_USER }}
          password: ${{ secrets.FTP_PASS }}
          server-dir: /public_html/
          local-dir: ./public_html/
          protocol: ftps

SamKirkland/FTP-Deploy-Actionなるものがよしなにしてくれるらしい。バージョンは適宜。 注意したいのはserver-dir。スターサーバーの接続先ディレクトリがルート扱いになるので、public_htmlにアップロードするには server-dir: /public_html/ と書かないといけない。