Appearance
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.env2. 設定する項目
| 変数 | 説明 |
|---|---|
| DEPLOY_FTPS_URL | docs 用ドキュメントルートを指す FTPS URL |
| DEPLOY_FTPS_USER | FTPS ユーザー名 |
| DEPLOY_FTPS_PASS | FTPS パスワード |
| DEPLOY_DOCS_PUBLIC_URL | docs 用ドキュメントルートを HTTPS で直接参照する公開 URL |
| DEPLOY_FTPS_ACTIVATE_TIMEOUT | 一時レシーバーを HTTPS 起動する際のタイムアウト秒数 |
DEPLOY_FTPS_URL の例(ConoHa WING で docs.slotkouryaku.com を追加した場合):
ftp://your-ftp-host/public_html/docs.slotkouryaku.comDEPLOY_DOCS_PUBLIC_URL の例:
https://docs.slotkouryaku.com3. パーミッション
bash
chmod 600 config/docs.envデプロイ手順
bash
./bin/deploy-docs.shこのスクリプトは以下を実行します。
npm run docs:buildで VitePress をビルド(先に DBML から ER 図 SVG を生成してからビルド。出力:docs/.vitepress/dist/)docs/.vitepress/dist/をdocs_YYYYMMDD_HHMMSS.zipに圧縮- FTPS で zip とランダム名・強トークン付きの一時 PHP レシーバーを
DEPLOY_FTPS_URLにアップロード - HTTPS 経由で一時レシーバーを POST 起動し、サーバー側で zip を展開して docs 公開ルートへ削除同期
- 成功時に zip と一時レシーバーを削除
GitHub Actions の Deploy Docs も同じ FTPS zip デプロイを使用します。リポジトリ Secrets には次を設定してください。
DOCS_DEPLOY_FTPS_URLDOCS_DEPLOY_FTPS_USERDOCS_DEPLOY_FTPS_PASSDOCS_DEPLOY_PUBLIC_URL
任意で repository variable DOCS_DEPLOY_FTPS_ACTIVATE_TIMEOUT を設定できます。未設定時は 300 秒です。
この方式では FTPS 転送を zip と一時レシーバーの少数ファイルに抑えます。公開ルートは展開済み docs に合わせて削除同期するため、削除済みファイルは公開ディレクトリからも削除されます。一時レシーバーは Web 公開領域に置かれるため、POST 限定・強トークン検証・zip 名検証を行い、成功時に自動削除します。失敗時は docs-deploy-receiver-*.php や docs_*.zip が残っていないか確認し、残っていれば削除してください。
確認
ブラウザで https://docs.slotkouryaku.com にアクセスし、ドキュメントが表示されることを確認してください。
アクセス制限(任意)
「自分のみ」で閲覧したい場合は、サーバー側で次のいずれかを設定してください。
- Basic 認証: ドキュメントルートに
.htaccessと.htpasswdを配置し、Apache の Basic 認証を有効にする - IP 制限: 自宅やオフィス等の固定 IP のみ許可するように
.htaccessまたはサーバー管理画面で設定する
詳細は利用中のレンタルサーバー(ConoHa WING 等)のマニュアルを参照してください。