Skip to content

VitePress ドキュメント公開(docs.slotkouryaku.com) ​

概要 ​

VitePress でビルドしたプロジェクトドキュメントを、サブドメイン docs.slotkouryaku.com に公開する手順です。ローカルで npm run docs:dev を起動しなくても、ブラウザでドキュメントを参照できます。

前提条件 ​

  • ConoHa WING 等でサブドメイン docs.slotkouryaku.com を追加し、ドキュメントルートを用意していること
  • docs 用ドキュメントルートで PHP が実行でき、PHP の ZipArchive 拡張が利用できること
  • デプロイ設定ファイルの準備(config/docs.env)
  • (任意)アクセス制限: Basic 認証や IP 制限で「自分のみ」に限定する場合は、サーバー側で設定すること

設定手順 ​

1. config/docs.env の作成 ​

bash
cp config/docs.env.example config/docs.env
nano config/docs.env

2. 設定する項目 ​

変数説明
DEPLOY_FTPS_URLdocs 用ドキュメントルートを指す FTPS URL
DEPLOY_FTPS_USERFTPS ユーザー名
DEPLOY_FTPS_PASSFTPS パスワード
DEPLOY_DOCS_PUBLIC_URLdocs 用ドキュメントルートを HTTPS で直接参照する公開 URL
DEPLOY_FTPS_ACTIVATE_TIMEOUT一時レシーバーを HTTPS 起動する際のタイムアウト秒数

DEPLOY_FTPS_URL の例(ConoHa WING で docs.slotkouryaku.com を追加した場合):

ftp://your-ftp-host/public_html/docs.slotkouryaku.com

DEPLOY_DOCS_PUBLIC_URL の例:

https://docs.slotkouryaku.com

3. パーミッション ​

bash
chmod 600 config/docs.env

デプロイ手順 ​

bash
./bin/deploy-docs.sh

このスクリプトは以下を実行します。

  1. npm run docs:build で VitePress をビルド(先に DBML から ER 図 SVG を生成してからビルド。出力: docs/.vitepress/dist/)
  2. 展開ロジックを docs-deploy-payload.php として生成し、docs/.vitepress/dist/ と一緒に docs_YYYYMMDD_HHMMSS.zip へ同梱
  3. FTPS で zip と極小の一時 PHP レシーバー(docs-deploy-receiver-*.php)を DEPLOY_FTPS_URL にアップロード
  4. HTTPS 経由で一時レシーバーを POST 起動し、zip 内 payload を抽出・検証したうえでサーバー側展開と docs 公開ルートへの削除同期を実行
  5. 成功時に zip・payload・一時レシーバーを削除

大きい PHP を FTPS 直置きするとホスト側スキャナが 451 を返すことがあるため、重い処理は zip 内 payload に置き、FTPS に置く受信口は抽出と require だけにしています(本体デプロイの HTTPS フォールバックと同じ方針)。

GitHub Actions の Deploy Docs も同じ FTPS zip デプロイを使用します。リポジトリ Secrets には次を設定してください。

  • DOCS_DEPLOY_FTPS_URL
  • DOCS_DEPLOY_FTPS_USER
  • DOCS_DEPLOY_FTPS_PASS
  • DOCS_DEPLOY_PUBLIC_URL

任意で repository variable DOCS_DEPLOY_FTPS_ACTIVATE_TIMEOUT を設定できます。未設定時は 300 秒です。

この方式では FTPS 転送を zip と極小レシーバーの少数ファイルに抑えます。公開ルートは展開済み docs に合わせて削除同期するため、削除済みファイルは公開ディレクトリからも削除されます。一時レシーバーは Web 公開領域に置かれるため、POST 限定・強トークン検証・zip 名検証・payload の SHA-256 検証を行い、成功時に自動削除します。失敗時は docs-deploy-receiver-*.php・docs-deploy-payload.php・docs_*.zip が残っていないか確認し、残っていれば削除してください。

確認 ​

ブラウザで https://docs.slotkouryaku.com にアクセスし、ドキュメントが表示されることを確認してください。

アクセス制限(任意) ​

「自分のみ」で閲覧したい場合は、サーバー側で次のいずれかを設定してください。

  • Basic 認証: ドキュメントルートに .htaccess と .htpasswd を配置し、Apache の Basic 認証を有効にする
  • IP 制限: 自宅やオフィス等の固定 IP のみ許可するように .htaccess またはサーバー管理画面で設定する

詳細は利用中のレンタルサーバー(ConoHa WING 等)のマニュアルを参照してください。