Jekyll サイトの多くは GitHub Pages でホストされています。ビルドしてくれますが、GitHub が許可するプラグインのみで、リポジトリからのみです。Jekyll を自分でビルドすると、どちらの制限もなくなります。bundle exec jekyll build を実行すると、完成したサイトが _site/ に入ります。その後 npx lobsite で、HTTPS 対応の *.lobsite.app アドレスに公開でき、GitHub Pages にはないフォームも使えます。
仕組み
JEKYLL_ENV=production bundle exec jekyll buildでサイトをビルドします。Jekyll は_site/に書き出します。- サイトのフォルダで
npx lobsiteを実行します。_site/を検出してデプロイします。最初のデプロイにアカウントは不要で、6 時間有効です。 - 取得リンクから無料アカウントにサイトを残します。その後は同じ 2 つのコマンドで同じアドレスが更新されます。
GitHub Pages からの移行
- どのプラグインも動作します。 GitHub Pages が実行するのは
github-pagesgem のプラグインのみです。自分でビルドすると、GitHub Pages が拒否するものも含め、Gemfileのすべてが実行されます。 baseurlは、GitHub Pages のプロジェクトサイトではよく/repo-nameになっています。Lobsite ではサイトはアドレスの最上位から配信されるため、_config.ymlでbaseurl: ""にし、urlを*.lobsite.appのアドレスにしてください。github-pagesgem はGemfileで通常のjekyllに置き換えられるので、Jekyll のバージョンを GitHub ではなく自分で選べます。- リポジトリは不要です。 サイトは引き続き Git で管理できますが、デプロイは push に依存しません。
リダイレクト、フォーム、フィード
jekyll-redirect-from は、JavaScript またはメタリフレッシュでリダイレクトする HTML ページを作成します。Lobsite では代わりに lobsite.toml で本物の 301 リダイレクトを使え、検索エンジンは移転として扱います。リダイレクトジェネレーターで作成できます。/_lobsite/forms/contact に送信するフォームは、サイトをアカウントに残すとスパムフィルター付きで送信を集められ、Formspree などのサービスは不要です。jekyll-feed のフィードと jekyll-sitemap のサイトマップは _site/ 内のファイルで、そのまま配信されます。
ファイルはハッシュで保存されます。変更のないサイトを再デプロイしてもアップロードは 0 バイトです。
公開前にプレビューできます。リダイレクトも含めてワンクリックでロールバックできます。
フォームの送信先を /_lobsite/forms/contact にするだけです。スパムフィルターも含まれます。
すべてのサイトに、最初のデプロイから HTTPS 対応の *.lobsite.app アドレスが付きます。
リダイレクト、ヘッダー、フォームは lobsite.toml に記述し、デプロイごとに一緒に反映されます。
アカウントなしのデプロイは 6 時間公開されます。取得リンクから無料で残せます。
Jekyll ホストの比較
| Lobsite | GitHub Pages | Netlify | |
|---|---|---|---|
| Jekyll のビルド | いいえ: _site/ をデプロイ |
はい | はい |
| プラグイン | すべて | github-pages のセット、または GitHub Actions ですべて |
すべて |
| リポジトリの必要性 | 不要 | 必要 | Git デプロイの場合 |
| 最初のデプロイ前のアカウント | 不要: 6 時間公開、その後無料で残せる | 必要 | 必要 |
| バックエンド不要のフォーム | はい(サイトをアカウントに残した後) | いいえ | はい |
| カスタムドメイン | はい、無料 | はい、無料 | はい、無料 |
GitHub Pages はカスタムドメインも無料で、ルールに合う Jekyll サイトには良い選択肢です。Lobsite は、どのプラグインも、本物のリダイレクトやフォームも使いたい場合や、ローカル環境からコマンド 1 つでデプロイしたい場合に向いています。
よくある質問
GitHub Pages が許可しない Jekyll プラグインを使えますか?
はい。サイトは自分でビルドするため、Gemfile のすべてのプラグインが実行されます。Lobsite がホストするのは _site/ の結果のみです。
GitHub Pages から移行したら Jekyll サイトの CSS がなくなりました。なぜですか?
baseurl がリポジトリ名のままになっている可能性があり、リンクが /repo-name/assets/... を指しています。_config.yml で baseurl: "" にして、再度ビルドしてデプロイしてください。
デプロイするマシンに Ruby は必要ですか?
Jekyll のビルドにはこれまでどおり Ruby が必要です。デプロイには npx lobsite のために Node.js が必要で、ない場合は上のボックスに _site/ をドロップしてください。
Jekyll サイトを GitHub リポジトリに置いたままにできますか?
はい。ソースはそのままで、ローカル環境からデプロイしてください。GitHub Actions からのデプロイには CI トークンが必要で、近日提供予定の有料プランに含まれます。