MeltyDay
ZolaをCloudflare Workersに構築する(2026年版) Update: 2026-05-23 Category:  /note Tags:  #software

Cloudflare Pagesで構築したい、従来環境のまま更新したい場合は後述のPagesで構築するを参照。

Workersで構築する

I'm usign LEVEL UPPER!
この項目では人工知能を使用して、執筆者の能力を超えた操作を行っています。そのため、適切でない情報が含まれている可能性があります。

プロジェクトにファイルを追加する

content/
static/
templates/
config.toml
build.sh *追加
wrangler.toml *追加

build.sh

#!/usr/bin/env bash

set -euo pipefail

main() {
    echo "START BUILD"

    ZOLA_VERSION=0.22.1

    curl -sLJO "https://github.com/getzola/zola/releases/download/v${ZOLA_VERSION}/zola-v${ZOLA_VERSION}-x86_64-unknown-linux-gnu.tar.gz"

    tar -xf "zola-v${ZOLA_VERSION}-x86_64-unknown-linux-gnu.tar.gz"

    ls -la

    git submodule update --init --recursive

    ./zola build

    echo "BUILD FINISHED"

    ls -la
    ls -la public
}

main "$@"

Zolaの公式ドキュメント( Deployment/Cloudflare Workers (www.getzola.com) )を参考にしているが、異常終了や権限エラーで正常に動作しなかったことから、ChatGPTにWorkersのエラーログを渡すなどして修正されたものを掲載している。これが適切であるかの保証はできないので自己責任で使用すること。

wrangler.toml

# Workersのプロジェクト名(任意の英数字とハイフンが無難)
name = "zola-project"

# ランタイムの互換性基準日(最初の公開日を入れておくのが良いと思う)
compatibility_date = "2026-05-15"

# *.workers.devで公開するか
workers_dev = true

# プレビューURLを生成するか
preview_urls = false

[assets]

# 静的ファイルの配信ディレクトリ(変更不要)
directory = "./public"

# 存在しないファイルがリクエストされた時の挙動(変更不要)
# https://developers.cloudflare.com/workers/static-assets/#routing-behavior
not_found_handling = "404-page"

# パスの処理
# https://developers.cloudflare.com/workers/static-assets/routing/advanced/html-handling/
html_handling = "auto-trailing-slash"

# 静的コンテンツを提供する前にWorkerを実行するか(変更不要)
# https://developers.cloudflare.com/workers/static-assets/routing/worker-script/
run_worker_first = false

[build]
command = "bash build.sh"

* 「変更不要」はZola(SSG)を標準的に利用する場合の指示

これも適切であるかの保証はできないので自己責任で使用すること。

アプリケーションを展開する

特別な理由がない場合は"Project name"はwrangler.tomlnameと合わせる。

他の項目はデフォルトのままで問題ない。

正常に進むと構築が成功する。

ビルド履歴の閲覧方法

アプリケーションの管理画面から、上部タブのDeployments項目を選択して、最下部のView build historyから確認することができる。

Pagesで構築する

新たにPagesを構築する場合は、白い枠の下に小さく書かれた"Looking to deploy Pages? Get started"から構築できる。あまり新規で使われたくないみたい。

GitHubと連携すると以下のような画面が表示される。"Framework preset"でZolaを選択、"Environment variables (advanced)"から"Variable name"にZOLA_VERSION、"Value"に0.22.1を設定してDeployする。

Pagesを更新する

Cloudflare blogにて、Pagesのサポートを継続する旨の記述 (blog.cloudflare.com)がされているため、直ちにWorkersに移行する必要はない。Zolaの場合はこちらを選択したほうが良いと思う。

Setting/Build > Build system versionからシステムバージョンをVersion 3に変更する。

Setting/Variables and SecretsからZOLA_VERSIONの値を0.22.1に変更する。最新のバージョンはreleases (github.com)から確認できるが、システムの都合から最新バージョンでは構築できないこともある。

0.17.xから更新する場合

Zolaの仕様変更に伴い、シンタックスハイライトの設定が含まれるテーマの場合はconfig.tomlを修正する必要がある。ここでは最低限の例を示しているが、テーマによっては他にも修正すべき項目がある。詳細はConfiguration (www.getzola.com)を参照。

# 0.17.xの記法
[markdown]
highlight_code = true
highlight_theme = "github-dark"
# 0.21.xの記法
[markdown.highlighting]
theme = "github-dark"

選択可能なテーマについては、getzola/giallo (github.com)から確認できる。

0.17.xではハイライトを明示的に無効化する項目が存在していたが、これは削除されたように見える。[markdown.highlighting]はオプション項目なので、確認はしていないが、消した状態が無効化扱いになるかと思う。


レベルアッパー (dic.pixiv.net)が現実になる日は来るのかなんて思っていたけど、まさかこんなにも早く手に入るとは思わなかった。人工知能によって人間が処理する必要のない作業から解放されつつあるが、その短縮された時間だけ負荷の高い作業をする時間が増えている。昏睡とまではいかずとも、このツールに依存してしまうと人類の寿命に影響しそうではある。

« Prev ブログを再々整備した Next » rm -rfを使う時は絶対パスで操作する