servd について
servdは、ServdのマネージドホスティングでCraft CMSを扱う開発者向けのリファレンススキルです。プラットフォーム固有のデプロイ、ストレージ、キャッシュ、データベース、キューの設定とトラブル対応を扱います。
主な機能
- 01Gitプッシュによるデプロイと環境フロー
- 02servd.yamlのビルド設定
- 03アセットストレージと画像変換
- 04静的キャッシュとBlitzの設定
- 05データベース、バックアップ、キューの解説
- 06一時ファイルシステムの制約と対処
活用シーン
- 01Craft CMSプロジェクトをServdへデプロイ
- 02Servdのアセット保存と変換を設定
- 03キャッシュやファイル非永続化の問題を調査
- 04データベース接続とキュージョブを計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ michtio/ craftcms-claude-skills --skill servdインストール後、Claude Code で/servdを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/asset-storage.mdcaching.mddatabase-and-queue.mddeploy-and-environments.mdlimitations.mdlocal-dev.md詳細
Servd — Craft CMS 向けマネージドホスティング
Craft に特化したマネージドホスティングプラットフォーム、Servd(servd.host)のリファレンスです。Git push によるデプロイと servd.yaml のビルド設定、ローカル → ステージング → 本番環境のワークフロー、servd/craft-asset-storage プラグイン、Servd の静的キャッシュ(および Blitz との併用)、SSH 経由のデータベース、バックアップ、キューランナー、一時的なファイルシステム、Craft Cloud との違いを説明します。
このスキルの対象はServd に限定されます。Forge やベアメタルで Craft を自分で運用する場合や、Pixel & Tonic の Craft Cloud と比べた Servd の違いについて説明します。汎用的な Craft のデプロイについては、craftcms スキルの deployment.md を参照してください。Craft Cloud については、craft-cloud スキルを参照してください。
関連スキル — 必要に応じて読み込む
craftcms— Servd に関する話題が、プラグインやモジュールの PHP(一時的なファイルシステムのガード、キュージョブの設計、アセットファイルシステムのコード)に関係する場合。craft-site— Servd に関する話題が、フロントエンドのテンプレート処理(キャッシュ済みページ内の{% dynamicInclude %}アイランド、変換の使用方法、キャッシュ済みフォームの CSRF)に関係する場合。ddev— ローカル開発向け。Servd にはファーストパーティのローカル環境がないため、DDEV が標準のローカルスタックです。craft-php-guidelines— 一時的なファイルシステムのチェックを追加するためにプラグインの PHP を編集する場合。
ドキュメント
このスキルの作成に使用した一次情報(Servd の公式ドキュメント):
- ドキュメントのトップページ:https://servd.host/docs
- Servd のワークフロー:https://servd.host/docs/the-servd-workflow
- Node ビルドステップ(servd.yaml):https://servd.host/docs/node-build-step
- アセットボリュームとファイルシステム:https://servd.host/docs/servd-asset-volumes-and-filesystems
- プラグインのインストール:https://servd.host/docs/installing-the-servd-plugin
- 静的キャッシュ:https://servd.host/docs/static-caching
- Blitz を使ったキャッシュ:https://servd.host/docs/caching-with-blitz
- 実行時に作成されるファイルの処理:https://servd.host/docs/handling-runtime-created-files
- 専用キューランナー:https://servd.host/docs/dedicated-queue-runner
- バックアップと復元:https://servd.host/docs/backup-restore
- プラグインのコンソールコマンド:https://servd.host/docs/servd-plugin-console-commands
- プラグインのソース:https://github.com/servdhost/craft-asset-storage
主張ごとの URL は各リファレンスファイルに記載されています。2026-05-30 にドキュメントと照合して確認済みです。一部の運用上の詳細(cron、正確なプラン階層)は公開ドキュメントに記載されていないため、該当箇所では 要確認 と明記しています。
セルフホスト版とServdの違い
各行は、セルフホストの習慣が誤解を招くポイントです。
| 懸念事項 | セルフホスト版 | Servd |
|---|---|---|
| 設定ファイル | .env、config/*.php、ウェブサーバーの設定 | ビルド手順用にリポジトリのルートに置く servd.yaml(任意。ダッシュボードの設定を上書きします);Servd ダッシュボードでプラットフォーム設定と実行時環境変数を管理 |
| デプロイ | 構成した方法による | Git push-to-deploy(GitHub/GitLab/Bitbucket または任意の SSH ホスト)→ Composer のインストールと任意の Node ビルド |
| 環境 | 自分で定義 | 固定の local → staging → production、一方向;allowAdminChanges は local 以外ではすべてオフ |
| ファイルシステム | ローカルディスク | 一時的かつロードバランスされます — ディスクへの書き込みは保持されません;Redis(Craft のデータキャッシュ)またはリモートのアセットボリュームを使用します |
| アセット | ローカル、または独自の S3 設定 | servd/craft-asset-storage — *.files.svdcdn.com CDN 上の S3 対応 Flysystem。環境ごとに自動で分離されます |
| 画像変換 | ネイティブ/Imager-X/サーバー上の ImageOptimize | Servd Asset Platform によるサーバー外での変換;Imager-X では transformer: 'servd' を使用します |
| データベース | インストールしたもの | MariaDB または MySQL 8。SSH トンネル経由で接続します |
| ページキャッシュ | Blitz など | Servd の静的キャッシュが組み込み済み;Blitz はリバースプロキシモードでこれと併用します(置き換えではありません) |
| キュー | ワーカーを自分で実行 | デフォルトでは AJAX による起動;分離された即時処理にはDedicated Queue Runner(有料プラン)を選択します |
| Cron | crontab | ユーザー設定可能な機能としてはドキュメントに記載なし — キューを前提に設計してください(プランごとに要確認) |
| Redis | 自分でインストール | 提供されます — Craft のデータキャッシュはステートフルな Redis に自動的にマッピングされます |
| SSH | ssh user@server | 利用可能 — SSH セッション(DB トンネルなどに使用) |
| 環境変数 | .env | 環境ごとにダッシュボードで管理(コミットする .env ではありません) |
Servd と Craft Cloud の違い(簡単な比較)
どちらも、Git デプロイ、一時的なファイルシステム、S3 アセット、サーバー外での変換、ダッシュボードでの環境変数管理に対応する、Craft のマネージドホスティングです。開発者にとっての主な違いは次のとおりです。
| Servd | Craft Cloud | |
|---|---|---|
| リポジトリ設定 | servd.yaml(ビルド)+ダッシュボード | craft-cloud.yaml |
| アセットレイヤー | servd/craft-asset-storage プラグイン | craftcms/cloud バンドルのファイルシステム |
| データベース | MariaDB または MySQL 8 | MySQL 8/Postgres 15(MariaDB には非対応) |
| SSH | はい | いいえ |
| ファーストパーティ CLI | なし(プラグインのコンソールコマンド+ダッシュボード) | craftcms/cloud + php craft cloud/up |
| キャッシュ | Servd の静的キャッシュ;Blitz は併用 | エッジでの静的キャッシュ;Blitz は不要 |
| 変換 | Servd Asset Platform(svdcdn.com) | エッジでの Cloudflare Images |
| キュー | Dedicated Queue Runner(有料) | 自動処理 |
よくある落とし穴(共通)
- ディスクへの書き込みが永続化されると思い込む。 ファイルシステムは一時的なもので、負荷分散されています。書き込んだデータは消失し、インスタンス間で共有されません。Craft のデータキャッシュ(Redis に自動マッピング)またはリモートアセットボリュームを使用してください。
references/limitations.mdを参照してください。 - スキーマや Project Config の変更をローカル以外で行う。 Servd はステージング環境と本番環境で
allowAdminChanges: falseを設定し、一方向(ローカル → ステージング → 本番)に同期します。ローカルで変更してコミットし、デプロイしてください。references/deploy-and-environments.mdを参照してください。 - Blitz を Servd のキャッシュの代替として扱う。 Servd では、静的キャッシュとリバースプロキシモード(Yii Cache Storage + HTTP Generator + Servd Static Cache Purger)で Blitz を併用します。Blitz 独自のサーバーリライトモードは、Servd の負荷分散によって正常に動作しません。
references/caching.mdを参照してください。 - 実行時設定用の
.envをコミットする。 実行時の環境変数は、コミットされた.envではなく、環境ごとに Servd ダッシュボードで設定します。SERVD_PROJECT_SLUG/SERVD_SECURITY_KEYはダッシュボードの Assets ページから取得します。 - ローカルのアセットボリュームを使用する。 ユーザーアセットには
servd/craft-asset-storageファイルシステムを使用し、Servd Asset Platform に保存してデプロイ後も保持されるようにしてください。references/asset-storage.mdを参照してください。 - CI アクションに
composer install/npm run buildを設定する。 Servd はビルドステップで両方を実行します。代わりにservd.yamlまたはダッシュボードで Node のビルドを設定してください。references/deploy-and-environments.mdを参照してください。 - 任意の cron を使えると思い込む。 Servd はユーザーが設定可能な cron について文書化していません。定期的な処理はキュージョブと Dedicated Queue Runner に移してください。プランごとに確認してください。
references/database-and-queue.mdを参照してください。 - データベースの扱い方を誤る。 Servd は MariaDB と MySQL 8 に対応しています。DB には直接のパブリックポートではなく、SSH トンネル経由で接続してください。
references/database-and-queue.mdを参照してください。
参考ファイル
作業に関連する参考ファイルを読んでください。複数のファイルが該当することもよくあります。
タスクの例:
- 「Craft サイトを Servd にデプロイする」→
deploy-and-environments.md - 「Node のビルドステップ/
servd.yamlを設定する」→deploy-and-environments.md - 「環境を設定して環境間で同期する」→
deploy-and-environments.md+local-dev.md - 「Servd のアセットストレージをインストールする」→
asset-storage.md - 「アップロードしたアセットが消えるのはなぜですか?」→
asset-storage.md+limitations.md - 「Servd で画像変換を設定する」→
asset-storage.md - 「静的キャッシュを有効にする」→
caching.md - 「Servd で Blitz を実行する」→
caching.md(Blitz のリバースプロキシモード) - 「キャッシュされたページに動的アイランドを追加する」→
caching.md({% dynamicInclude %}) - 「Servd のデータベースに接続する」→
database-and-queue.md - 「キューを設定する/定期ジョブを実行する」→
database-and-queue.md - 「データベースをバックアップ/復元/同期する」→
database-and-queue.md+local-dev.md - 「Servd プロジェクトのローカル開発環境を設定する」→
local-dev.md - 「本番環境のアセット/データベースをローカルに取得する」→
local-dev.md - 「Servd でプラグインのファイル書き込みが失敗するのはなぜですか?」→
limitations.md - 「Servd で動作するプラグインはどれですか?」→
limitations.md - 「Servd と Craft Cloud のどちらを使うべきですか?」→
limitations.md(Servd と Cloud の比較)+ このファイルの表
タスクに必要な参考ファイルのみを読み込んでください。
| 参考ファイル | 対象範囲 | 約行数 |
|---|---|---|
references/deploy-and-environments.md | Git のプッシュによるデプロイ、ビルドステップ(Composer + Node、servd.yaml のキー、Node のバージョン)、環境(ローカル → ステージング → 本番、一方向)、Project Config + allowAdminChanges、環境変数とシークレット、デプロイ/クローンのワークフロー | ~150 |
references/asset-storage.md | servd/craft-asset-storage プラグイン(Composer パッケージ、ハンドル、インストール)、SERVD_PROJECT_SLUG/SERVD_SECURITY_KEY、*.files.svdcdn.com 上の Servd ファイルシステム、環境ごとのディレクトリ、オフサーバーでの変換、Imager-X(transformer: 'servd')と ImageOptimize の連携 | ~140 |
references/caching.md | Servd の静的キャッシュ(有効化 + TTL、Full と Tag-Based のパージ、除外プレフィックス、{% dynamicInclude %} タグ、CSRF の注入、保存時のキャッシュバスティングの自動実行、clear-caches/servd-static-cache + servd-edge-caches)、Blitz のリバースプロキシモードでの実行 | ~140 |
references/database-and-queue.md | MariaDB/MySQL 8、SSH トンネルによるアクセス、自動および手動バックアップ(30 日間の保持、削除済みアセットの 90 日間のウィンドウ)、Dedicated Queue Runner、cron に関する注意点、コンソール同期コマンド | ~130 |
references/local-dev.md | DDEV ベースのローカル開発(Servd 公式のローカル環境はなし)、ローカル用の SERVD_* 変数、servd-asset-storage/local/pull-assets・push-assets・pull-database・push-database、servd-asset-storage/clone、一方向同期の運用 | ~120 |
references/limitations.md | 一時的かつ負荷分散されたファイルシステム(実行時ファイルには Redis + リモートボリュームを使用)、プラグイン/機能の制約、文書化済みと未確認の違い(cron)、Servd と Craft Cloud の詳細な比較、リポジトリの検出シグナル(servd/craft-asset-storage、servd.yaml、SERVD_* 環境変数) | ~140 |