Git からウェブサイトを作る: プッシュごとにビルドし、NAS の Web サーバーで公開する
Bucket & Code Server IDE は、NAS 上の Git リポジトリで静的ウェブサイトを管理します。ページは src/ に置き、Makefile で public/ にコピーします。プッシュするたびに NAS のランナーでリンク検査が実行されます。ボタン一つで public/ を同じ NAS の QTS Web サーバーなどにコピーし、公開されたページを読み戻して確認します。
- 公開先フォルダーとそのアドレス
- プロジェクト新しいプロジェクト、静的 Web サイト
- プッシュプッシュごとに make test
- 公開public/ を公開先へ
画像は、このガイドのとおりに各項目を設定した Bucket & Code Server IDE の画面です。NAS のアドレスは 192.168.1.20、アカウント名は ola です。
01Web ターゲット
Web ターゲットは公開先です。Web サーバーが配信するこの NAS のフォルダーか、SFTP、FTP、WebDAV、S3 経由の自分のサーバーなど、rclone のリモートを指定できます。QTS の Web サーバー (Control Panel → Applications → Web Server) は共有フォルダー Web を http://<NAS address>/ で配信するため、その中のフォルダーが最も簡単な公開先です。
- 管理者として、Administration の 公開 ページを開き、Web ターゲット カードの 保存先を追加 を押します。
- この NAS のフォルダー を選び、名前 を付け、フォルダー に共有フォルダー内の専用フォルダー (例:
/share/Web/mysite) を入力します。空か新規のフォルダーを使い、共有フォルダー全体は指定しません。アプリのデータフォルダーの外に置きます。 - フォルダーを配信する 公開アドレス を入力します。この例では
http://192.168.1.20/mysite/です。http://またはhttps://で始め、ユーザー名、パスワード、クエリ、フラグメントは含めません。ターゲットを追加 を押します。
- 一覧からターゲットを選び、テスト を押します。小さなファイルがフォルダーにコピーされ、公開アドレスから読み戻された後、削除されます。

rclone の公開先には、バックアップ用 rclone.conf で定義したリモート名、その中のパス、さらにそのパスを配信する公開アドレスを指定します。
02ウェブサイトのプロジェクト
Git ページまたはコマンドパレットから 新しいプロジェクト を開きます。ここでは developer ロールが必要です。後述する公開操作には管理者権限が必要です。
- テンプレート: Web サイト から 静的 Web サイト を選びます。

- 名前と公開範囲: 名前 (例:
mysite) はリポジトリ名とprojects/mysiteのフォルダー名になります。すべてのアカウントに読み取りを許可する場合以外は 非公開 のままにします。
- ビルド: 作成後すぐにビルド をオンのままにします。
- 公開: 自分の Web サーバーに公開 をオンにして、ターゲットを選びます。ここにある 保存先を追加 も、公開ページと同じ操作です。

- 確認 に進み、プロジェクトを作成 を押します。画面には、リポジトリと最初のコミット、最初のビルド、公開の各手順が表示されます。

ウェブサイトは公開先の公開アドレスで表示できます。
03編集、プッシュ、公開
- エディターで
src/のページを編集し (プロジェクトはprojects/フォルダー内)、コミットしてプッシュします。makeはsrc/をpublic/にコピーします。make testは各ページのローカルなhref=とsrc=がpublic/内のファイルを指すか確認し、make cleanはpublic/を削除します。 - CI モジュールがオンの間は、プッシュのたびに NAS のランナーでプロジェクトのワークフローが実行され、Ubuntu 24.04 のビルド環境で
make testを実行します。リンク切れがあると実行は失敗します。
- プロジェクトページ (プロジェクト、またはエディターのサイドバー) から手動でビルドと公開ができます。ビルド は
make、再ビルド はmake cleanの後にmakeを実行し、管理者用の My website に公開 はpublic/を公開先に送ります。プッシュだけで自動公開されることはありません。
04公開時の動作
- 公開後、公開先フォルダーにはウェブサイトのファイルだけが残ります。サイトから消したファイルは公開先からも削除されます。bvsd は最初に書き込む際、フォルダーに
.bvs-web-targetを置きます (テスト時にも置きます)。ほかのファイルがあり、この印がないフォルダーは拒否されるため、無関係なフォルダーを空にしません。 - コピー後、公開アドレスから
index.htmlを読み戻し、バイト単位で比較します。コピーした内容がそのアドレスから得られない場合、ジョブはweb_check:と両方の値を示して失敗します。Web サーバーが別のフォルダーを配信しているか、アドレスが間違っています。 - QPKG を作成するプロジェクトも同様に、最新の
.qpkgとその.sha256を公開し、sha256 を検証します。