本文へ移動
Pancake Stack

Pancake Stack マニュアル

ブラウザの印刷コマンドで、このマニュアルを印刷したり PDF に保存したりできます。

Pancake へようこそ

Pancake Stack とは何か、何が含まれているか、Mac に必要なもの、そしてこのマニュアルの読み方を説明します。

1.1Pancake とは

Pancake Stack は、Mac 上でウェブサイトを動かすアプリです。ウェブサーバ、言語、データベースをアプリの中に備えているので、インストールするものも、ターミナルで設定することもありません。新規サイトをクリックして最大 4 つの質問に答えると、専用のデータベース付きのサイトがブラウザの name.localhost で開きます。

サイトができあがったら、その先も Pancake が引き受けます。人に見せるための一時的なリンク、自分のドメイン、Wi-Fi 経由でのスマートフォンでの表示、ホスティング会社やクラウドサーバへのデプロイまで対応します。

Pancake は Mac App Store のアプリです。Apple のアプリサンドボックスの中で動作し、macOS 付属の Apache、Homebrew、MAMP など、インストール済みのほかのソフトウェアには一切触れません。それらと並べて使い続けられます。

1.2含まれているもの

コンポーネントバージョン備考
Apache2.4すべてのサイトを配信します。サイトごとに専用のバーチャルホストを持ちます。
PHP8.5、8.4、8.3、8.2、7.1どのプランでも最新の PHP で動きます。サイトごとに古いバージョンを選ぶのは FullStack です。
MySQL8.4サイトごとにデータベースとユーザを 1 つずつ作ります。閲覧用に Adminer が付属します。
Python3.12、3.13、3.14(uv 付き)Django、Flask、FastAPI のサイト用です。
PostgreSQL17FullStack。サービスでオンにします。
Valkey と Memcachedキャッシュです。FullStack。
Nginxサイトごとに選べるもう 1 つのウェブサーバです。FullStack。
cloudflaredルータを設定せずに、Cloudflare 経由でサイトを公開します。

PHP 8 の各バージョンには、よく使われるアプリが必要とする拡張機能が入っています:GD、Imagick、intl、zip、bz2、XSL、sodium、YAML、OAuth、Tidy、APCu、OPcache、Xdebug。コンポーネントとそのライセンスの一覧はヘルプ ▸ オープンソースライセンスにあります。

1.3Mac に必要なもの

  • macOS 14 Sonoma 以降(Apple シリコンまたは Intel)。
  • Apple Intelligence でアシスタントを使う場合:Apple Intelligence をオンにした Mac。ほかの Mac では、自分のキーで AI プロバイダを使うか、アシスタントをオフのままにできます。
  • サイトを公開する場合:インターネット接続。無料の Cloudflare アカウントが必要なのは自分のドメインを使うときだけで、一時的なテストリンクにはアカウントは要りません。

1.43 つのスタック

Pancake は 3 つのプランから選ぶサブスクリプションで、プラン名はパンケーキを積み重ねた高さにちなんでいます。どのプランでも Mac 上のサイトはいくつでも動かせます。スタックが高いほど多くのサイトを公開でき、トッピングも増えます。新規登録の方は最初の 1 週間を無料で使えます。

プラン概要
ShortStackローカルのサイトは無制限、公開できるサイトは 1 つ、デプロイ先は 1 か所。
TallStack公開は 10 サイトまで、SFTP や FTP でのホストへの公開、ステージング用コピー、データベースの公開、メールリレー、外部の PostgreSQL と SSH トンネル、Pancake Cloud への保存、AWS のサーバ 3 台まで。
FullStackすべて無制限、サイトごとの古い PHP、PostgreSQL、Valkey、Memcached、Nginx、スケジュールタスクとワーカ、オフサイトのバックアップ、プッシュ通知、Mac 間の同期、すべての事業者でのサーバ作成。

詳しい比較はプランとサブスクリプションをご覧ください。

1.5サイトはあなたのもの

Pancake にはアカウントも利用状況の分析もありません。サイト、データベース、設定は Mac に、パスワードとキーはキーチェーンに保存されます。ほかの場所(Cloudflare、ホスト、ストレージバケット、iCloud、自分で選んだ AI プロバイダ)に送るものは、Mac から自分の認証情報で直接送られ、Enfour を経由することはありません。サブスクリプションが終了しても何も削除されず、すべてのサイトとデータベースを引き続き書き出せます。プライバシーとデータをご覧ください。

1.6このマニュアルの読み方

各章はサイトの一生に沿って並んでいます。始める、作る、共有する、動かし続ける、の順です。Pancake を初めて使う方は、ウインドウの案内と最初のサイトを読んでから、必要な章を拾い読みしてください。

メニューのパス
設定 ▸ ローカル HTTPS のように書きます。サイドバーで「設定」を開き、その中の「ローカル HTTPS」のセクションを開くという意味です。
プランのバッジ
ShortStack TallStack FullStack は、特定のプランが必要な機能を示します。TallStack のバッジが付いた機能は TallStack と FullStack で使えます。バッジのないものはすべてのプランで使えます。
詳細
各ペインはまずシンプルな設定を表示します。手順に「詳細」とあるときは、そのペインの右上にある詳細スイッチをオンにしてください。
ヒント

Pancake にはアプリ内のヘルプもあります。ヘルプ ▸ Pancake ヘルプを選ぶか ⌘? を押して、検索してください。アシスタントも同じヘルプをもとに質問に答え、サイトのログを読むこともできます。

ウインドウの案内

サイドバー、ツールバー、詳細スイッチ、メニューバーのアイコン、そのほかのウインドウ、そしてすべてのキーボードショートカットを紹介します。

Pancake のウインドウ:左にサイドバー、右上にステータス表示、すべて開始/すべて停止、外部アクセス。サイトペインにはサイトごとにカードが並びます。
図 2.1Pancake のウインドウ:左にサイドバー、右上にステータス表示、すべて開始/すべて停止、外部アクセス。サイトペインにはサイトごとにカードが並びます。

2.1サイドバー

Pancake のメインウインドウは 1 つです。サイドバーにペインが並び、最後に開いていたペインを Pancake が覚えています。

ペイン用途
サイトすべてのサイトをカードで表示します。開く、編集する、PHP のバージョンを選ぶ、バックアップするといった操作ができます。サイトの操作をご覧ください。
データベース各サイトの MySQL データベース、Adminer、読み込みと書き出し、外部のデータベースを扱います。データベースをご覧ください。
オンラインローカルネットワークとインターネットへの公開です。テストリンク、自分のドメイン、証明書を扱います。サイトを公開するをご覧ください。
デプロイ各サイトの公開先と、再公開を扱います。デプロイをご覧ください。
バックアップバックアップ、保存ポイント、オフサイトのコピー、Pancake Cloud を扱います。バックアップと保存ポイントをご覧ください。
アシスタント質問したり、Pancake に作業を頼んだりできます。AI コーディングツールも接続できます。アシスタントと MCPをご覧ください。
サービスPostgreSQL、Valkey、Memcached、スケジュールタスク、ワーカを扱います。FullStack サービス、タスク、ワーカをご覧ください。
サブスクリプション現在のプランと 3 つのスタックを表示します。プランとサブスクリプションをご覧ください。
設定そのほかすべての設定です。設定、テンプレート、プラグインをご覧ください。

ShortStack と TallStack では、サービスの行が FullStack のバッジ付きで灰色表示になります。開くと何が加わるかの説明と、FullStack を見るボタンが表示されます。

2.2ツールバー

ウインドウの右上にある 3 つのコントロールは、どのペインを開いていても常に表示されます。

ステータス表示
サーバの状態を示します:実行中(緑)、起動中…、要確認(オレンジ)、停止(灰色)。Pancake が標準のポート 80 以外で動いているときは、「実行中」の後にポート番号を表示します。何かが失敗したときは、ポインタをステータス表示に重ねるとエラーを読めます。
すべて開始/すべて停止
再生ボタンまたは停止ボタンで、Pancake が動かすすべてのサーバを起動または停止します。ショートカットは ⇧⌘R です。実行中に ⌥ キーを押しながらクリックすると、すべてを再起動します。
外部アクセス
地球のアイコンは Pancake のインターネット用スイッチです。オフラインのときは、ほかの設定にかかわらず、サイトを開けるのはこの Mac だけです。オンラインのときは、オンラインにしたサイトが公開されます。オフにするとすぐに切れ、設定はすべて残ります。外部アクセスをご覧ください。

2.3まずシンプルに、必要なら詳細

各ペインは、ほとんどの人が必要とする設定だけを表示します。ペイン右上の詳細スイッチをオンにすると、「詳細」と書かれた区切り線の下に、そのほかの設定がその場で表示されます。スイッチの状態はペインごとに記憶されます。

常にすべてを表示したい場合は、設定 ▸ 一般 ▸ すべてのペインで詳細設定を表示をオンにします。このスイッチを変えると、ペインごとの選択はリセットされます。

2.4メニューバーのアイコン

Pancake はメニューバーに小さなパンケーキの山を表示します。山はプランに合わせて高くなります。ShortStack ではバター付きの 3 枚、TallStack では 4 枚、FullStack ではさくらんぼ付きの 4 枚です。Dock のアイコンもプランに合わせて変わります。

メニューには、状態、すべて開始/すべて停止、外部アクセススイッチ、サイトごとのサブメニュー(開く、オンラインにする)、新規サイト…、メールボックス、Pancake を開く、Pancake を終了が並びます。

メモ

メニューバーのアイコンを表示している間は、メインウインドウを閉じても Pancake は終了せず、サイトは動き続けます。すべてを止めるには、メニューからPancake を終了を選ぶか、⌘Q を押します。アイコンは設定 ▸ 一般 ▸ メニューバーに Pancake を表示で非表示にできます。

2.5そのほかのウインドウ

ログ ⌥⌘L
Pancake が記録するすべてのログを、新しい順にわかりやすい名前で表示します:「Web server」「MySQL」「blog — PHP errors」「blog — web server errors」「PHP 8.4 — FPM」など。ファイルの末尾を表示し、2 秒ごとに更新します。追従は最新の行を表示し続け、消去はログを空にし、Finder に表示はファイルの場所を開きます。
メールボックス ⇧⌘M
サイトが送るメールを、Mac から出る前に受け止めます。サイトからのメールをご覧ください。
ファイル
1 つのサイト用のファイルブラウザ、エディタ、ライブプレビューです。サイトのカードから開きます。ファイル、エディタ、デザインをご覧ください。
Pancake ヘルプ ⌘?
英語、日本語、韓国語で検索できるヘルプと、オープンソースライセンスです。
診断 ⌥⌘D
サンドボックス内の内蔵サーバをすべて確認します。サポートに問い合わせるときに役立ちます。

2.6ウィジェットとショートカット

Pancake のウィジェットは、デスクトップか通知センターに小・中・大のサイズで追加できます。サーバが動いているか、どのサイトがオンラインかを表示し、Pancake の開始・停止、外部アクセスの切り替え、新規サイトの作成ができるボタンがあります。

Pancake はショートカット App と Siri にもアクションを追加します:

アクションSiri への話しかけ方(英語)
Pancake を開始“Start Pancake”
Pancake を停止“Stop Pancake”
サイトをオフラインに“Take my Pancake sites offline”
サイトをオンラインに“Put my Pancake sites online”
新規 Pancake サイト“New Pancake site”

2.7キーボードショートカット

キー操作
⌘N新規サイト(サイトペイン)
⇧⌘Rすべて開始/すべて停止
⌥ を押しながら「すべて停止」をクリックすべてのサーバを再起動
⇧⌘Mメールボックス
⌥⌘Lログ
⌥⌘D診断
⌘?Pancake ヘルプ
⌘S保存(ファイルウインドウ)
⌘Return送信(アシスタント)
⌘QPancake を終了し、サーバを停止

シートでは、Esc でキャンセル、Return で強調表示されたボタンを選びます。

最初のサイト

1 分でサイトを作りましょう。種類を選び、名前を付け、誰に見せるかを決めれば、name.localhost で開けます。

3.14 つの質問でサイトを作る

  1. サイトペインで右上の新規サイトをクリックするか、⌘N を押します。
  2. 作成の下で、PHP サイト、静的 HTML サイト、Python アプリのいずれかを選びます(WordPress、Laravel などの選択肢は後で説明します)。
  3. 名前。blog のような名前を入力します。入力に合わせて、サイトのアドレス blog.localhost が表示されます。
  4. 種類。種類を確認し、必要なら変更します:PHP サイト、静的 HTML サイト、Python アプリ。
  5. バージョンまたはフレームワーク。PHP の場合は PHP のバージョンを選びます。Python の場合は Django、Flask、FastAPI、既存のプロジェクト(WSGI)から選びます。
  6. 誰に見せますか? 自分だけはこの Mac の中だけで使います。誰でも(一時的なテストリンク)と誰でも(自分のドメイン、Cloudflare)は、すぐにサイトを公開します(サイトを公開するをご覧ください)。
  7. 作成をクリックします。Pancake がフォルダとサイトのデータベースを作り、サーバを起動または再読み込みします。
新規サイトのシート:上に「作成」の選択肢、その下に「サイトを取り込む」の選択肢が並びます。
図 3.1新規サイトのシート:上に「作成」の選択肢、その下に「サイトを取り込む」の選択肢が並びます。

完了すると、サイトがサイトペインにカードとして表示されます。開くをクリックすると、ブラウザでサイトを表示します。

メモ

外部アクセスがオフのときにテストリンクや自分のドメインを選ぶと、外部アクセスがオンになり、オンラインにしてあるほかのサイトもすべて公開されます。その場合は「作成」をクリックする前に Pancake がお知らせします。

3.2名前とアドレス

サイトの名前がそのままアドレスになります。shop なら http://shop.localhost で開きます。名前には英小文字、数字、単独のハイフンが使え、40 文字までです。localhost、www、pancake、admin、adminer は Pancake 自身が使うため予約されています。

Mac のどのブラウザも、設定なしで .localhost の名前を理解し、インターネットに出ることはありません。スマートフォンからサイトを開く方法は、自分のネットワークとローカル HTTPSをご覧ください。

Pancake はできるだけ標準のウェブポート 80 を使います。Mac のほかのウェブサーバがすでにポート 80 を使っている場合は自動で 8080 に移り、アドレスにはポートが付きます:http://shop.localhost:8080。ポートが 80 でないときは、ステータス表示にポートが表示されます。代わりのポートは設定 ▸ 詳細 ▸ ウェブのポートで自分で選ぶこともできます。

3.3どの種類のサイトにするか

選択肢向いている用途Pancake が尋ねること
静的 HTML サイトHTML、CSS、JavaScript だけのサイト。Vite、Lovable、サイト制作アプリでビルドしたサイト。名前、誰に見せるか。
PHP サイト自分で書いた、またはコピーしてきた PHP のコード。名前、PHP のバージョン、誰に見せるか。
Python アプリDjango、Flask、FastAPI、任意の WSGI アプリ。名前、フレームワーク、誰に見せるか。
WordPressインストールとサインインまで済んだ、すぐ使える WordPress。名前、タイトル、管理者ユーザ、メール、パスワード。
Laravelデータベースのマイグレーションまで済んだ新しい Laravel アプリ。名前だけ。
アシスタントとデザイン説明からデザインしたホームページ。名前、雰囲気、説明。アシスタントとデザインをご覧ください。
ブループリントからテンプレートとして保存したサイトのコピー。Blueprint と新しい名前。

手元にある既存のサイトを取り込むには、同じシートのサイトを取り込むを開きます。サイトの取り込みをご覧ください。

3.4WordPress

  1. 新規サイト ▸ WordPressを選びます。
  2. サイト名、タイトル、管理者ユーザ、管理者メールを入力します。管理者パスワードには Pancake が強力なランダムのパスワードを用意します。コピーをクリックして控えておくか、自分のパスワード(8 文字以上)を入力します。
  3. 誰に見せるかと、WordPress の入手元を選びます:wordpress.org から最新版をダウンロードまたはダウンロード済みの ZIP。
  4. 作成をクリックします。Pancake がデータベースを作り、WordPress をインストールして初期設定を済ませます。サイトを開くで /wp-admin/ のダッシュボードが開きます。

データベースのパスワードはサイトのファイルに書き込まれません。WordPress は Pancake が渡す環境変数からパスワードを読みます。

3.5Laravel

新規サイト ▸ Laravelを選び、名前を付けます。Pancake は内蔵の Composer で Laravel をダウンロードし(1〜2 分かかります)、public/ フォルダを配信し、アプリに MySQL データベースを用意して最初のマイグレーションを実行します。

3.6Python アプリ

Python アプリを選び、フレームワークを選びます。Pancake はサイト専用の Python 環境を最新の Python(3.14)で作り、PyPI からフレームワークをダウンロードして起動します。初回は 1 分ほどかかります。

  • Django は gunicorn で動き、/static/ は staticfiles から、/media/ は media から配信します。カードにマイグレート、静的ファイルを収集、スーパーユーザ…が加わります(その後 /admin/ でサインインします)。
  • Flask は gunicorn で app:app を、FastAPI は uvicorn で main:app を動かします。
  • 既存のプロジェクト(WSGI):サイトを作り、そのフォルダ(フォルダを表示)にプロジェクトを入れ、アプリのエントリを wsgi:application のように設定してから、設定をクリックします。

パッケージは必要なパッケージをインストールで PyPI からインストールします。Pancake はサンドボックス内でパッケージをコンパイルできないため、多くのアプリが必要とするコンパイル済みのパッケージ(pydantic-core、psycopg2、cryptography、MarkupSafe など)を内蔵しています。Python だけで書かれたパッケージは通常どおりインストールされます。

3.7Pancake が用意するもの

  • フォルダ:Pancake のデータフォルダ内の Sites/<name> に作られます。カードのフォルダを表示で Finder に表示します。
  • ウェブサーバの設定:<name>.localhost 用の Apache のバーチャルホストです。
  • MySQL のデータベースとユーザ:どちらもサイト名にちなんだ名前で(ハイフンはアンダースコアになります)、ランダムなパスワードはキーチェーンに保存されます。
  • 環境変数:サイトのコードが読めるので、秘密の情報をファイルに書かずに済みます。
変数値
DB_HOST127.0.0.1
DB_PORTMySQL のポート(通常は 3306)
DB_NAME、DB_DATABASEサイトのデータベース
DB_USER、DB_USERNAMEサイトのデータベースユーザ
DB_PASSWORDそのパスワード
PANCAKE_SITEサイトの名前

PHP では getenv('DB_NAME')、Python では os.environ["DB_NAME"] で読みます。外部のデータベースを使うサイトには DATABASE_URL も渡されます。FullStack では Valkey と Memcached のアドレスも渡されます(サービスをご覧ください)。

ヒント

設定 ▸ 詳細 ▸ 新規 PHP サイトのスターターファイル(静的サイト用もあります)で、新しいサイトの出発点を決められます。フォルダを選ぶと、その種類の新しいサイトを作るたびに Pancake がそのフォルダの中身をコピーします。

サイトの操作

サイトカードでできることのすべて:開く・編集する、PHP のバージョンとキャッシュ、保存ポイント、Git、PHP 設定、Xdebug、ステージング用コピー、Blueprint など。

4.1サイトカード

サイトペインでは、各サイトが 1 枚のカードになっています。左上のランプはサーバが動いている間は緑色です。名前の横にはサイトの種類(PHP、静的、または Python とそのフレームワーク)が、その下にはサイトのアドレスが表示されます。

開く
ブラウザでサイトを開きます。サーバが止まっている間は灰色表示なので、先に「すべて開始」をクリックしてください。ローカル HTTPS をオンにすると、https:// のアドレスを開く鍵のボタンが加わります。
フォルダを表示
サイトのフォルダを Finder で開きます。
編集
サイトのフォルダを自分のエディタやサイト制作アプリで開きます(自分のアプリで編集をご覧ください)。
ファイル
内蔵のファイルブラウザ、エディタ、ライブプレビューを開きます。ファイル、エディタ、デザインをご覧ください。
QR コード
スマートフォンやタブレットでサイトを開くためのコードを表示します。オンラインのときはテストリンクかドメイン、自分のネットワークがオンのときはネットワーク上の名前です。
保存ポイント(時計)
あとで戻れる、名前付きのサイトのコピーです。保存ポイントをご覧ください。

カードの幅が狭いときはボタンがアイコンだけになります。ポインタを重ねると名前が表示されます。

4.2PHP のバージョンとキャッシュ

PHP サイトでは、ボタンの下に 2 つのメニューがあります。

  • PHP のバージョン。どのプランでも最新の PHP(8.5)で動きます。FullStack では、サイトごとに古いバージョン(古いコード用の 8.4、8.3、8.2、7.1)を選べます。切り替える前に Pancake が「Before PHP 8.4 (was 8.5)」という名前の保存ポイントを作るので、ワンクリックで元に戻せます。
  • キャッシュ。キャッシュなし、OPcache(コンパイル済みの PHP をメモリに保持します。高速で、ホスティングでも使われている方式です)、OPcache + APCu(WordPress などのアプリがデータの保存に使えるメモリキャッシュを追加します)。
メモ

FullStack で古い PHP に設定したサイトは、プランが変わると最新の PHP で動き、選択はあとのために残ります。カードにその旨が表示され、最新のバージョンに完全に切り替えるボタンも表示されます。

4.3AutoIndex

AutoIndex(index ページのないフォルダを一覧表示)をオンにすると、index.html や index.php のないフォルダを開いたときにファイルの一覧を表示します。ダウンロード用のファイルや書類を入れたフォルダに便利です。隠しファイルや機密ファイル(.env、.sql のダンプ、鍵、.htpasswd など)は、AutoIndex のオン・オフにかかわらず、一覧にも配信にも出ません。

4.4保存ポイント

保存ポイントは、ワンクリックで戻れるサイトのファイルとデータベースのコピーです。「WordPress 更新前」のように名前を付けます。

  1. サイトのカードの時計ボタンをクリックし、保存ポイントを作成…を選びます。
  2. 名前を付けて保存をクリックします。
  3. 戻すときは、同じメニューを開いて保存ポイントを選び、復元を選びます。

元に戻しにくい変更の前にも、Pancake が自動で保存ポイントを作ります。PHP バージョンの切り替え、バックアップの復元、新しいデザインの採用、画像の最適化、アシスタントによるファイルの変更、公開中のサイトの再ダウンロード、Pancake Cloud からのサイトの読み込みの前です。各サイトは最新 20 個の保存ポイントを、通常のバックアップとは別に保管します(バックアップと保存ポイントをご覧ください)。

4.5自分のアプリで編集

編集ボタンは、設定 ▸ エディタ ▸ サイトの編集に使うアプリで選んだアプリでサイトのフォルダを開きます。BBEdit、VS Code、Nova、Cursor、Zed などのコードエディタや、RapidWeaver、Blocs、Hype などのサイト制作アプリを選べます。macOS がファイルごとに選ぶアプリを選ぶと、ファイルをそれぞれの既定のアプリで開きます。

サイトごとにアプリを選ぶこともできます。「詳細」をオンにして、カードのこのサイトの編集に使うアプリを使います。

4.6Python のサイト

Python のカードには、PHP のメニューの代わりに専用のボタンがあります。

  • 設定は、サイトの Python 環境を作ってフレームワークをインストールします(一度実行するまで表示されます)。
  • 必要なパッケージをインストールは、サイトの requirements.txt にあるパッケージをインストールします。
  • Django のサイトにはマイグレート、静的ファイルを収集、スーパーユーザ…が加わります。

「詳細」をオンにすると、Python のバージョン(3.12、3.13、3.14。変えると環境を作り直します)、アプリのエントリ、コードが変わったら再読み込み、ワーカの数(1〜8)、アプリのログと設定のログ、環境を作り直す…、Django では確認を実行も使えます。

4.7カードの詳細設定

サイトペインのヘッダで詳細をオンにすると、すべてのカードに項目が増えます。

Git
後述の Git をご覧ください。
エイリアス
同じサイトの別名を、www.shop.localhost のようにコンマで区切って指定します。エイリアスは .localhost で終わる必要があります。
PHP 設定…
PHP 設定をご覧ください。
Apache ディレクティブ…
このサイトの Apache の <VirtualHost> 内に追加する行です。ホスティングで設定できるようなリライトルールやヘッダに使います。Pancake は先に Apache で確認し、読み込めない場合はその行を使わずにエラーを表示するので、入力ミスでほかのサイトが止まることはありません。
ログ
ログウインドウで、このサイトの PHP エラーを開きます。
Xdebug
オフ、トリガ時(ブラウザ拡張機能か XDEBUG_TRIGGER で起動)、すべてのリクエストから選びます。エディタ(VS Code、PhpStorm、Nova)はポート 9003 で待ち受けます。サイトはデバッグ用の専用 PHP プロセスで動くので、ほかのサイトは遅くなりません。
データベース
Pancake のものか、登録した外部のデータベースのいずれかです。どちらの場合も、サイトにはそのデータベースの DB_HOST、DB_PORT、DB_NAME、DB_USER、DB_PASSWORD が渡されます。
ウェブサーバ
Apache か Nginx FullStack です。Nginx では Nginx のホストと同じく try_files でルーティングし、.htaccess は使いません。最初に応答するのは引き続き Apache で(HTTPS、トンネル、ローカル限定のルールのため)、サイトへのリクエストを Nginx に渡します。
シングルページアプリ
静的サイトのみ。ファイルではないアドレスはすべて index.html を開くので、Vite、Lovable、React のアプリで /about のようなルートを直接開いたり再読み込みしたりしても動きます。
実際にメールを送信
TallStack このサイトのメールを受け止めると同時に、SMTP リレーで実際に送信します。メールリレーをご覧ください。
環境変数…
TallStack 自分で設定する環境変数です。環境変数をご覧ください。
画像を最適化…
画像の最適化をご覧ください。
Blueprint として保存…
Blueprint をご覧ください。
ステージング用のコピーを作成…
TallStack ステージング用コピーをご覧ください。
サイトを削除…
サイトの削除をご覧ください。

4.8PHP 設定

PHP 設定…は、1 つのサイトだけの PHP の設定を変えます。

  • リクエストごとのメモリ、最大アップロードサイズ、リクエストごとの時間制限。
  • 報告する内容:すべて(開発用)、非推奨以外すべて、エラーと警告、エラーのみ(本番用)。
  • エラーをページに表示(と表示するエラーを HTML 形式にする)、このサイトの PHP ログにエラーを書き込む、同じ行で繰り返すエラーを省略。
  • その他の php.ini 設定:そのほかの設定を名前と値で指定します。

既定値ですべて元に戻ります。すべてのサイトの PHP を変えるには、php.ini のテンプレートを編集します(テンプレートをご覧ください)。

設定 ▸ 詳細 ▸ ログの上限(10、50、200 MB)を超えたログは、新しい半分だけに切り詰めます。

4.9環境変数

TallStack 環境変数…には、API キーや APP_ENV=local のような、サイト独自の設定や秘密の情報を保存します。

  1. 追加をクリックして名前と値を入力するか、.env から貼り付け…で .env ファイルをまとめて取り込みます。
  2. 保存をクリックします。PHP と Python が値を読み込めるよう、Pancake がサーバを再起動します。

値はサイトのフォルダではなくキーチェーンに保存され、サイトのスケジュールタスクとワーカにも渡されます。Pancake 自身が設定する名前(DB_…、PANCAKE_…、DATABASE_URL、PATH、HOME など)は予約されており、Pancake の値が優先されます。

4.10Git

Pancake には Git が内蔵されているので、Xcode のコマンドラインツールは要りません。

  • リポジトリではないサイトにはGit を開始が表示されます。
  • リポジトリでは、ブランチ、変更したファイルの数、リモートより進んでいるか遅れているかが表示され、コミット…、プル、プッシュ(またはリモートを追加する接続…)を使えます。
  • 「詳細」をオンにすると、リモートのアドレス、リモートを変更…、ブランチメニュー、ブランチを作る欄、直近 8 件のコミットも表示されます。

Pancake の .gitignore は、.env ファイル、SQL のダンプ、依存フォルダ、キャッシュをコミットから除外します。コミットに使う名前とメール、Git ホスト用の個人アクセストークンや Pancake の SSH キーは、設定 ▸ Git(詳細)で設定します。

4.11画像の最適化

画像を最適化…は、サイトの JPEG と PNG のファイルを小さくします。

  • ロスレス — 画素はそのままでファイルを小さくまたはより小さく — 高画質 JPEG(品質 82)。
  • 位置情報とカメラ情報を削除は、写真から GPS とカメラのデータを取り除きます。
  • 最大サイズは、大きな画像を縮小します(3840、2560、1920、1280 ピクセル)。サイズをそのままにすることもできます。
  • 先に保存ポイントを作るは既定でオンです。

結果が小さくなったときだけファイルを置き換えます。依存フォルダ(vendor、node_modules)と WordPress 本体のファイルには触れません。既定の設定は設定 ▸ 画像で決めます。

4.12Blueprint

Blueprint は、ファイル、データベース、設定ごとテンプレートとして保存したサイトです。顧客ごとのサイトを毎回同じテーマとプラグインから始めるときに使います。

  1. サイトのカード(詳細)でBlueprint として保存…を選び、名前を付けて保存をクリックします。サーバが止まっているときは、ファイルだけが保存されます。
  2. 使うときは新規サイト ▸ ブループリントからを選び、Blueprint を選んで新しい名前を入力し、作成をクリックします。

4.13ステージング用コピー

TallStack ステージング用のコピーを作成…は、専用のフォルダとデータベースを持つ別のサイトを作ります。名前は、別の名前を選ばなければ <site>-staging になります。サイト内のアドレスはコピー自身の .localhost の名前に書き換えられるので、元のサイトには影響しません。危険な更新は、まずコピーで試してください。

4.14サイトの削除

サイトを削除…(詳細)は、サイトを Pancake から削除し、フォルダをゴミ箱に移します。ファイルはあとから取り戻せます。Python のサイトの環境は削除されます。データベースはデータベースペインに残るので、そこで書き出すか削除してください。

ファイル、エディタ、デザイン

Pancake の中でサイトのファイルを表示・編集し、スマートフォン、タブレット、デスクトップの幅でプレビューし、アシスタントとページをデザインします。

ファイルウインドウ:フォルダツリー、色分け表示のエディタ、スマートフォン・タブレット・デスクトップ幅に切り替えられるライブプレビュー。
図 5.1ファイルウインドウ:フォルダツリー、色分け表示のエディタ、スマートフォン・タブレット・デスクトップ幅に切り替えられるライブプレビュー。

5.1ファイルウインドウ

サイトのカードでファイルをクリックします。ウインドウは 3 つに分かれています。左がフォルダツリー、中央がエディタ、右がプレビューです。

  • ツリー。フォルダはその場で開きます。Finder からファイルを一覧にドラッグすると追加できます。ファイルを右クリックすると、名前を変更…、複製、Finder に表示、ゴミ箱に入れるを選べます。隠しファイルとバックアップは薄く表示されます。
  • 機密ファイル(.env ファイル、.sql のダンプ、鍵、.htpasswd)には鍵のマークが付きます。ブラウザには一切配信されず、Pancake はここでは編集しません。
  • 新規は、ファイル(名前を付けなければ page.html)かフォルダを作ります。

5.2エディタ

エディタには行番号が表示され、HTML、CSS、JavaScript、PHP、Python は色分けされます。⌘F で検索、⌥⌘F で検索と置換、⌘S で保存します。スマート引用符と自動修正はオフなので、コードが書き換わることはありません。

  • 画像、PDF などテキスト以外のファイルは Quick Look で開きます。
  • 2 MB を超えるファイルは読み出し専用で開き、末尾を表示します(ログに便利です)。
  • 自分のエディタで開くは、ファイルを自分のエディタに渡します。
ヒント

保存のたびに、直前の版をファイルの隣に <name>.pancake-bak として残します。このコピーが訪問者に配信されることはありません。

5.3ライブプレビュー

ツールバーでプレビューをオンにし、幅をスマートフォン、タブレット、デスクトップから選びます。保存するたびにプレビューを再読み込みします。編集中のファイルがサイト内の HTML や PHP のページならそのページを、それ以外ならホームページを表示します。

プレビューにはサーバが必要です。サーバが止まっているときは、ファイルウインドウにあるすべて開始ボタンで起動できます。

5.4HTML の整形

HTML ファイルでは、HTML を整形が HTML Tidy でページをインデントし、タグを閉じ、入れ子を修正します。自動では保存しないので、結果を確認してから ⌘S を押してください。

5.5アシスタントに頼む

  1. 変更したいコードを選択します。ファイル全体が対象なら、何も選択しません。
  2. アシスタントに頼むをクリックし、変更内容(「ヘッダを固定表示にして」など)を書いて質問をクリックします。
  3. 現在と提案を並べて比べます。よければ変更を適用をクリックし、保存します。

適用して保存するまで何も変わりません。アシスタントは、クラウドの AI プロバイダをオンにしていればそれを、そうでなければ Private Cloud Compute かこの Mac の Apple Intelligence を使います(アシスタントと MCPをご覧ください)。コードをクラウドのプロバイダに送るときは、先にパスワードとキーを取り除きます。

5.6アシスタントとデザイン

作りたいサイトを説明すると、Pancake がホームページをデザインします。サイトのフォルダに完成したレスポンシブなページができ、そのまま編集、テスト、デプロイできます。

  1. 新規サイト ▸ アシスタントとデザインを選び、サイトに名前を付けます(既存のサイトでは、その「ファイル」を開いてデザイン…をクリックします)。
  2. 雰囲気を選びます:ブラック&ビジネス、ポップ、エレガント、ミニマル、あたたかく親しみやすく、またはおまかせ。
  3. サイトを説明します。例:「京都のパン屋。パンの紹介、営業時間、アクセス、問い合わせフォーム」。
  4. 必要ならほかの選択肢を開き、レイアウト(ランディングページ、ポートフォリオ、レストラン・お店、ドキュメント)と色を選びます。
  5. デザインするをクリックし、スマートフォン、タブレット、デスクトップの幅でプレビューを確認します。
  6. 気に入るまで変更を頼むで修正を頼むか(「ヘッダを暗く」「料金のセクションを追加」など)、やり直すを選びます。
  7. このデザインを使うをクリックします。Pancake は先に保存ポイントを作り、それまでのページを .pancake-bak として残します。

ページの作り方は、使える AI によって異なります:

  • Private Cloud Compute または自分の AI キー:アシスタントがページ全体を書きます。Claude のキーでは、Pancake がリクエストごとに Anthropic の frontend-design の指針を送ります。ほかのモデルには Pancake 独自のデザインの指針を送ります。
  • この Mac の Apple Intelligence:ページの構成を考え、Pancake のテンプレートで描きます。無料、プライベート、オフラインです。
  • AI が使えない場合:選んだ雰囲気をもとにページを作り、説明の最初の行をタイトルにします。

ページは単体で完結します。訪問者のデバイスにあるフォントを使い、外部のファイルやスクリプトは必要ありません。

ヒント

説明にすでに公開中のサイトのアドレスが含まれていると、Pancake はまずそのサイトを取り込むことを提案します。サーバからダウンロードし、ここでデザインし直してテストしてから、公開し直せます。公開中のサイトからをご覧ください。

サイトの取り込み

フォルダ、ZIP、Git、MAMP、XAMPP、Apple Server、公開中のサイト、クラウドバックアップからサイトを移します。Pancake はコピーするだけで、元は一切変更しません。

6.1取り込み元

新規サイトをクリックし、サイトを取り込むを開きます。どれを選んでも、Pancake はファイルをコピーし、サイトのデータベースとユーザを作り、見つけたデータベースのダンプを読み込んで(古いアドレスは新しいアドレスに置き換えます)、サーバを起動します。元のファイル、サーバ、アプリは一切変更しません。

選択肢用途
フォルダまたは ZIP からあらゆるサイトのフォルダやアーカイブ:WordPress、Laravel、PHP、Django、Flask、静的 HTML。
Lovable・Vite からVite、Lovable、Create React App で作った React アプリ。
ChatGPT Sites からChatGPT から ZIP で書き出したサイト。
MAMP / MAMP PRO からMAMP のホストとそのデータベース。
XAMPP からXAMPP のサイトとデータベース。
Apache の設定フォルダからmacOS 自身の Apache、Homebrew の Apache、サーバからコピーしたフォルダ。
Apple Server からServer.app が動いている古い Mac のウェブサイト。
公開中のサイトからホスティング上のサイト。SFTP か FTP で、データベースごと取り込みます。
GitHub / GitLab から任意の Git リポジトリ。
クラウドバックアップからPancake Cloud、または MAMP Cloud のバックアップ。

6.2フォルダまたは ZIP から

  1. フォルダまたは ZIP からを選び、フォルダか ZIP を選択…をクリックします。
  2. Pancake が、見つけたもの(「Found: WordPress」など)、配信するフォルダ、読み込む .sql のダンプを表示します。
  3. サイト名を確認します。ダンプが WordPress 以外の公開中のサイトのものなら、置き換える旧サイトのアドレスにそのアドレスを入力すると、リンクがローカルのコピーを指すようになります(WordPress のアドレスは自動で見つけて置き換えます)。
  4. 読み込みをクリックします。

ChatGPT Sites からも同じ手順です。ChatGPT でサイトを開いて書き出し(Export)を選び、その ZIP を選びます。

6.3Lovable・Vite から

Lovable は Vite で React アプリを作ります。Pancake はビルド済みのサイト(dist フォルダ)をシングルページのルーティングで配信するので、/about のようなリンクも動きます。Pancake は Node を動かさないため、Node の入った Mac でプロジェクトを一度ビルドしておく必要があります:

  1. Lovable で GitHub に接続するか(Settings ▸ GitHub)、Download codebase を使います。
  2. プロジェクトのフォルダで npm install、続けて npm run build を実行します。
  3. Pancake に戻り、GitHub から…かフォルダか ZIP から…をクリックします。Pancake が dist/(または build/)を見つけ、シングルページのルーティングを自動でオンにします。

Supabase のバックエンドは引き続き Supabase で動きます。ビルドしていないプロジェクトも取り込まれ、ビルドの手順が表示されます。

6.4MAMP、XAMPP、Apache のフォルダから

  1. 以前の環境のタイルを選び、フォルダを選択…をクリックします。Pancake は、その環境が通常設定を保存している場所を表示します:
    • MAMP:/Applications/MAMP/conf/apache
    • MAMP PRO:/Library/Application Support/appsolute/MAMP PRO/conf/apache
    • XAMPP:/Applications/XAMPP/xamppfiles/etc
    • macOS 自身の Apache:/etc/apache2、Homebrew の Apache:/opt/homebrew/etc/httpd
  2. Pancake が見つけたサイトを一覧表示します。取り込むサイトにチェックを付け、それぞれの新しい .localhost の名前を編集します。
  3. 求められたら、サイトのフォルダへのアクセスを許可…をクリックし、サンドボックスからフォルダを読めるようにします。
  4. データベースも取り込むには、以前の MySQL を起動してデータベースもコピー…をクリックします。MAMP はポート 8889 で root/root、XAMPP と Apache は通常ポート 3306 で root(パスワードなし)です。Pancake は名前で各サイトとデータベースを対応付けます。必要なら行ごとに対応を変更してください。
  5. 読み込みをクリックします。
ヒント

MAMP PRO のカスタムのサーバテンプレートも取り込めます:設定 ▸ 詳細 ▸ テンプレート… ▸ MAMP PRO から読み込む…。テンプレートをご覧ください。

6.5Apple Server から

Server.app はウェブの設定を /Library/Server/Web/Config/apache2 に保存しており、管理者しか読めません。先に Finder でそのフォルダをデスクトップにコピーし、Apple Server からでそのコピーを選びます。

TallStack 古い Mac からサイトを直接コピーすることもできます。旧 Mac に SSH で接続…をクリックします。

  1. 古い Mac で、リモートログインをオンにします(システム環境設定 ▸ 共有)。
  2. Pancake で Mac のアドレス(oldserver.local など)、SSH のポート、管理者のユーザ名を入力し、パスワードか鍵ファイルでサインインします。接続をクリックします。
  3. サイトを選びます。WordPress のサイトはデータベースも自動で取り込みます。それ以外のサイトは、MySQL のデータベース名と、古い Mac の MySQL のユーザとパスワードを指定します。

6.6公開中のサイトから

ホスティング上のサイトをデータベースごとダウンロードし、Mac で安全に編集・テストできます。その後、Pancake でもう一度ダウンロードしたり、変更を公開し直したりできます(公開中のサイトを安全に編集をご覧ください)。

  1. 公開中のサイトからを選び、サイトのアドレスに https://www.example.com のように入力します。
  2. 利用しているホストがホスティングのプリセットにあれば選びます。Pancake がサーバ、ポート、フォルダを入力し、そのホスト特有の注意点(SSH キーしか受け付けないホストなど)を表示します。
  3. 接続方法を選びます:SFTP(SSH)、FTP(TLS、明示的)、FTPS(暗黙的 TLS)、FTP(暗号化なし)。ホストが対応していれば SFTP を使ってください。
  4. サーバ、ポート、ユーザと、パスワードか SSH キーを入力します。
  5. データベースの扱い(下記)を選び、読み込みをクリックします。
この Mac にコピー(推奨)
自由に変更できるコピーです。本番のデータベースには触れません。
本番のデータベースを直接使う
ローカルのサイトが本番のデータベースに接続します。同じサーバへの SSH 経由 TallStack か、VPN や社内ネットワークから直接接続します。変更はそのまま本番に反映されます。
データベースは取り込まない
ファイルだけを取り込みます。データベースはあとからサイトのカード(詳細 ▸ データベース)で接続できます。

WordPress では、Pancake が wp-config.php からデータベースの設定を読みます。それ以外のサイトでは、その他のオプションを開いて自分で入力します。Pancake がフォルダを自動で見つけられないときは、その他のオプションでサーバ上のフォルダも指定できます。

ホスティングのプリセットには、海外のホスト(cPanel や Plesk のホスト、SiteGround、Hostinger、IONOS、DreamHost)、マネージド WordPress ホスト(Kinsta、WP Engine、Pressable、Flywheel、Cloudways)、日本の主要ホスト(Xserver、ConoHa WING、Sakura、Lolipop、Heteml、mixhost など)、韓国のホスト(Cafe24、Gabia、Dothome など)があります。

メモ

GoDaddy の WordPress は取り込むときに修正します。ほかの場所ではサイトが動かなくなる GoDaddy のシステムプラグインと Memcached のオブジェクトキャッシュを脇に移し、wp-config.php の gd-config.php の行を無効にし、仮のアドレス *.myftpupload.com のままのリンクをローカルのサイトに向けます。

6.7GitHub または GitLab から

  1. GitHub / GitLab からを選び、リポジトリのアドレスを貼り付けます。
  2. 必要ならブランチを指定します。HTTPS の非公開リポジトリではアクセストークンを貼り付けます。SSH のアドレスでは、Pancake の SSH キーを Git ホストに追加します(設定 ▸ Git、詳細)。
  3. サイトに名前を付けてクローンをクリックします。

プロジェクトに composer.json があれば、Pancake が composer install を実行します。Python のプロジェクトは requirements から環境を用意します。

6.8クラウドバックアップから

  • Pancake Cloud:この Mac やほかの Mac の Pancake から保存したサイトです。バックアップ ▸ Pancake Cloud を開くをクリックし、サイトの横の読み込む…をクリックします。Pancake Cloud をご覧ください。
  • MAMP Cloud:MAMP PRO が Dropbox か OneDrive に保存したバックアップです。MAMP Cloud のバックアップを選ぶ…をクリックし、Dropbox か OneDrive のフォルダの Apps/MAMP PRO からホストの ZIP を選びます。MAMP PRO は必要ありません。暗号化された MAMP Cloud のバックアップは、先に MAMP PRO で読み込んでから、MAMP / MAMP PRO からで取り込みます。

データベース

サイトごとの MySQL データベース、Adminer と phpMyAdmin、読み込みと書き出し、既存のデータベースへの接続、PostgreSQL について説明します。

データベースペイン:各データベースのサイズと使っているサイト、Adminer・書き出し・読み込みのボタン。
図 7.1データベースペイン:各データベースのサイズと使っているサイト、Adminer・書き出し・読み込みのボタン。

7.1Pancake のデータベース

各サイトには専用の MySQL 8.4 データベースと、そのデータベースだけを開ける専用のユーザがあります。どちらもサイト名にちなんだ名前です(my-blog は my_blog になります)。パスワードはランダムでキーチェーンに保存されます。サイトは DB_HOST、DB_PORT、DB_NAME、DB_USER、DB_PASSWORD からすべてを読むので、パスワードをサイトのファイルに書く必要はありません。

データベースペインには、各データベースのサイズ、テーブル数、使っているサイトが一覧表示されます。表示するには MySQL が動いている必要があるので、「すべて開始」をクリックしてください。

  • 新規データベース(+ボタン)で、追加のデータベースを作ります。名前には英小文字、数字、アンダースコアを使います。
  • ゴミ箱のボタンでデータベースを削除します。Pancake は先にコピーを書き出してから削除を提案します。

7.2Adminer と phpMyAdmin

Adminer は、ブラウザの adminer.localhost でデータベースを開きます。テーブルの閲覧、クエリの実行、行の編集ができます。サーバ、ユーザ、データベースは Pancake が入力するので、パスワードを入力してください。サイト専用のユーザか、root と詳細 ▸ root のパスワードをコピーで得たパスワードを使います。外部アクセスがオンでも、Adminer が公開されることはありません。

phpMyAdmin を使いたい場合は、phpMyAdmin をクリックし、phpmyadmin.net から「all-languages」の ZIP をダウンロードして選びます。Pancake はそれを、この Mac の中だけで動く phpmyadmin.localhost のサイトとして配信します(phpMyAdmin は Pancake には含まれていません)。

7.3書き出しと読み込み

  • 書き出し…は、データベースを日時入りの名前の .sql ファイルとして保存します。
  • 読み込み…は、.sql ファイルをデータベースに読み込みます。ファイルの内容に応じて、既存のデータに追加するか置き換えます。
ヒント

大きな変更の前には書き出しておくか、サイトのカードで保存ポイントを作ってください。保存ポイントはファイルと一緒にデータベースもコピーします。

7.4ほかのアプリからの接続

「詳細」をオンにすると、他のツールから接続に、TablePlus、Sequel Ace、DBeaver などのデータベースアプリに入力する内容が表示されます。ホストは 127.0.0.1、ポートは MySQL が使っているポート(通常は 3306)、ユーザは root です。root のパスワードをコピーでパスワードをコピーします。Pancake の MySQL は、この Mac からの接続しか受け付けません。

ほかの MySQL(MAMP、Homebrew、Docker のもの)がすでにポート 3306 を使っている場合、Pancake の MySQL は 3307 などの次の空きポートを使い、ペインにそのポートを表示します。

7.5外部のデータベース

サイトでは、Pancake のデータベースの代わりに既存のデータベースも使えます。MAMP の MySQL、NAS やほかのコンピュータ上のデータベース、Amazon RDS、Supabase、Neon などのクラウドのデータベースです。

  1. 既存のデータベースに接続…をクリックします。
  2. MySQL / MariaDB か PostgreSQL TallStack を選びます。プリセットで一般的な構成を入力できます:MAMP(ポート 8889)、Homebrew や Docker、TLS で接続するクラウドのデータベース、Postgres.app、Supabase、Neon、RDS。
  3. 名前を付け、サーバ、ポート、データベース、ユーザ、パスワードを入力します。
  4. セキュリティを選びます:暗号化(TLS)、暗号化し、サーバの証明書も確認(CA ファイルを選びます)、暗号化なし。暗号化なしは、この Mac とローカルネットワークでのみ使えます。
  5. テストをクリックしてから、保存をクリックします。
  6. サイトのカード(詳細)で、データベースを新しい接続に設定します。

すると、サイトにはそのデータベースの情報が DB_HOST、DB_PORT などとして渡され、さらに DATABASE_URL、DB_CONNECTION、DB_SSL_MODE も渡されます。

外部の接続にはそれぞれ、テスト、書き出し…、Pancake にコピー(安全に開発できるよう <name>_copy という名前のローカルのコピーを作ります)、編集…、そして接続を忘れるだけでデータベースには触れないゴミ箱のボタンがあります。

メモ

Pancake はソケットファイルではなくネットワークで接続します。App Store のアプリはほかのアプリのソケットを使えないためです。ホストには 127.0.0.1 と、そのサーバのポートを指定してください。

SSH 経由

TallStack サーバ自身からのデータベース接続しか受け付けないサーバは少なくありません。SSH 経由で接続をオンにし、SSH サーバ、ポート、ユーザ、パスワードか鍵ファイルを入力します。この場合、データベースのサーバには SSH サーバから見たアドレス(通常は 127.0.0.1)を指定します。Pancake はトンネルを開いたままにし、切れたら開き直します。

テストに失敗したら

Pancake はよくあるエラーをわかりやすい言葉で表示します。ユーザ名かパスワードが違う。その名前のデータベースがない。サーバがこの Mac からの接続を受け付けていない(サーバ側で許可するか、SSH 経由で接続してください)。サーバ名が見つからない。そのポートで何も応答しない(サーバは動いていますか?ファイアウォールはこの Mac を許可していますか?)。暗号化した接続に失敗した(サーバがネットワーク上にあって TLS がない場合は「暗号化なし」を、独自の認証局を使っている場合は CA ファイルを選んでください)。

7.6PostgreSQL

FullStack Pancake には PostgreSQL 17 が含まれています。サービスペインでオンにします。すると各サイトに専用の PostgreSQL データベースとロール(site_<name>)も用意され、サイトはそれを PGHOST、PGPORT、PGDATABASE、PGUSER、PGPASSWORD、POSTGRES_URL から読みます。PHP の pgsql と pdo_pgsql 拡張機能も含まれています。

PostgreSQL のデータベースは、データベースペインの専用のセクションに、同じ Adminer、書き出し、読み込み、新規データベースのボタンとともに表示されます。ほかのアプリからは、ユーザ postgres とpostgres のパスワードをコピー(詳細)を使います。

サイトを公開する

一時的なリンクで誰にでもサイトを見せる、Cloudflare 経由で自分のドメインに公開する、Mac から直接配信する。どの方法でも、1 つのスイッチですべてをインターネットから外せます。

オンラインペイン:上に「自分のネットワーク」、その下にサイトごとのカードがあり、オンラインのスイッチと「自分のドメインを使う」が並びます。
図 8.1オンラインペイン:上に「自分のネットワーク」、その下にサイトごとのカードがあり、オンラインのスイッチと「自分のドメインを使う」が並びます。

8.1外部アクセス:インターネット用のスイッチ

ツールバーの地球のボタンが外部アクセスです。Mac の外に何かを出すかどうかを決めます:

  • オフライン:ほかの設定にかかわらず、サイトを開けるのはこの Mac だけです。何も公開されません。
  • オンライン:オンラインペインでオンラインにしたサイトが公開されます。

外部アクセスをオフにすると、すぐに切れます。トンネルが閉じ、ルータのポートマッピングが削除され、DDNS の更新が止まります。設定はすべて残るので、オンに戻せばすべて元どおりです。このスイッチは、メニューバーのアイコン、ウィジェット、ショートカット(Siri には英語で “Take my Pancake sites offline”)にもあります。

ヒント

外部アクセスは緊急停止ボタンとして使えます。どんな設定にしていても、1 回のクリックですべてのサイトが非公開に戻ります。

サイトが公開されるのは、次の 3 つがすべてそろったときだけです:サイトがオンラインになっている、外部アクセスがオン、サーバが動いている。足りないものがあれば、オンラインペインに表示されます。

人にサイトを見せるいちばん手軽な方法です。アカウントは要りません。

  1. オンラインペインを開き、サイトをオンラインにします。
  2. 外部アクセスがオンで、サーバが動いていることを確認します。
  3. 20 秒ほどすると、カードに https://random-words.trycloudflare.com のようなアドレスが、開く、コピー、確認、QR コードとともに表示されます。

このリンクはテスト用です。再起動するたびに変わり、サイトがオンラインで Pancake が動いている間だけ使えます。確認は、インターネットからリンクに応答があるかを 1 回テストします。

8.3Cloudflare 経由で自分のドメインに

Pancake は Cloudflare Tunnel でサイトを配信します。ルータの設定は不要で、どのネットワークの内側からでも動き、自宅のアドレスも公開されません。ドメインは Cloudflare で管理している必要がありますが、無料プランでかまいません。

  1. オンラインペインのサイトのカードで、自分のドメインを使うの横の設定…をクリックします。
  2. 初回は Cloudflare に接続します。Cloudflare を開く…をクリックすると、ほとんどの権限が入力済みの状態で Cloudflare のトークンのページが開きます。
  3. 権限の行を 1 つ追加します:Account › Cloudflare Tunnel › Edit。トークンを作成してコピーします。
  4. Cloudflare API トークンに貼り付けて、接続をクリックします。トークンはキーチェーンに保存されます。
  5. サブドメイン(www など。ドメインそのものを使うなら空欄)を入力し、ドメインを選びます。使われるアドレスが表示されます。
  6. 使うをクリックします。Pancake がこの Mac のトンネル(初回のみ)と、名前をトンネルに向ける DNS レコードを作ります。

サイトがオンラインになると、カードにアドレスが開くと QR コードとともに表示されます。HTTPS の証明書は Cloudflare が用意します。

メモ

まだ Cloudflare にドメインがない場合は、cloudflare.com で登録してドメインを追加します。Cloudflare が、レジストラで設定する 2 つのネームサーバを表示します。そのあと Pancake で更新をクリックしてください。同じ名前の既存の DNS レコードは、CNAME でなければそのまま残します。

設定 ▸ Cloudflareには、ドメインと、それを使っているサイトが表示されます。切断…では、Pancake の DNS レコードとトンネルを Cloudflare から削除するか、残すかを選べます。

8.4同時に公開できるサイト数

ShortStackTallStackFullStack
同時に公開できるサイト110無制限
Cloudflare と Route 53 のドメイン110無制限
DDNS の名前110無制限

テストリンクと自分のドメインは合わせて数えます。数は同じ iCloud にサインインしているすべての Mac で合算します。ある Mac が ShortStack のサイトを公開している間は、別の Mac で 2 つ目を公開できません(Pancake を終了した Mac やオフラインになった Mac は数えません)。どの Mac が枠を使っているかはオンラインペインに表示されます。iCloud を使わない場合は、Mac ごとの上限になります。

下位のプランに変えた場合、上限を超えたサイトはオンラインのスイッチを保ったまま、アップグレードするかほかのサイトをオフにするまで公開されません。

8.5ちゃんと動いているか

外部アクセスがオンの間、Pancake はこの Mac から配信している各サイト(ドメインかテストリンク)を 5 分ごとに確認します。2 回続けて失敗すると macOS の通知(「blog にインターネットからアクセスできません」)が表示され、復旧したときにも通知されます。サイト名の横の点は、直近の結果を示します。FullStack では、同じ通知をスマートフォンにも送れます(プッシュ通知をご覧ください)。

8.6この Mac から直接

オンラインペインで「詳細」をオンにすると、この Mac から直接が使えます。トンネルを使わず、ルータがウェブのトラフィックを Mac に転送し、DNS の名前が自宅のアドレスに追従します。ほとんどの方には Cloudflare のトンネルをおすすめします。こちらは、自分の証明書を使い、仲介なしで配信したい場合の方法です。

  1. ルータのポート 80 と 443 を自動で開く(NAT-PMP / UPnP)をオンにするか、ルータで手動でポートを転送します。Pancake がインターネット上のアドレスと、作成したマッピングを表示します。
  2. 名前を追加をクリックし、サイトと DNS サービスを選んで、blog.example.com や myblog.duckdns.org のような名前を入力します。
  3. サイトをオンラインにします。自宅のアドレスが変わるたびに、Pancake が名前のアドレスを更新します。

DNS サービス:Cloudflare DNS(Cloudflare 経由のプロキシでアドレスを隠すオプション付き)、Amazon Route 53、Duck DNS、No-IP、DNS-O-Matic、Dyn、easyDNS。Route 53 はデプロイ ▸ サーバを作成で保存した AWS のキーを使います。

Let's Encrypt の無料証明書

Let's Encrypt の HTTPS 証明書(無料)をオンにして利用規約(Subscriber Agreement)に同意し、名前の横の証明書を取得をクリックします。Cloudflare と Route 53 の名前は DNS で確認します。それ以外の名前では、ポート 80 を Mac に転送しておく必要があります。証明書は有効期限の 30 日前に自動で更新されます。

自分の証明書

購入した証明書、会社の証明書、Cloudflare のオリジン証明書を使う場合は、証明書をペースト…をクリックし、上の欄に証明書とそれに続く中間証明書を、下の欄に秘密鍵を、PEM テキストで貼り付けます(ファイルを選ぶこともできます)。Pancake は鍵が一致するかを確認して、名前、発行者、有効期限を表示し、対象の名前(ワイルドカードも含む)には Let's Encrypt の代わりにその証明書を使います。

パスワード付きの鍵や .pfx ファイルは、先に変換が必要です。たとえば openssl pkcs12 -in file.pfx -nodes を使います。

注意

Mac から直接配信するサイトには、自宅のアドレスでアクセスできます。また、Mac を起動したまま、スリープさせないでおく必要があります。ソフトウェアを最新に保ち、必要のないときは外部アクセスをオフにしてください。

自分のネットワークとローカル HTTPS

同じ Wi-Fi のスマートフォン、iPad、ほかのコンピュータからサイトを開きます(インターネットからは開けません)。.localhost のサイトには信頼された HTTPS を使えます。

9.1スマートフォンに少し手助けが必要な理由

.localhost のアドレスは常に「このデバイス」を意味します。そのため、スマートフォンで blog.localhost を開くと、スマートフォン自身の中でサイトを探してしまいます。自分のネットワークは、各サイトに blog.test という 2 つ目の名前を付け、ネットワーク上のどのデバイスからでも開けるようにします。インターネットには何も公開しません。

9.2オンにする

  1. オンラインペインで自分のネットワークをオンにします。
  2. Pancake が小さなネームサーバを起動し、「各デバイスで DNS サーバを次に設定:」に続けて、この Mac のアドレス(192.168.0.163 など)を表示します。コピーをクリックします。
  3. 各スマートフォン、タブレット、コンピュータで、そのアドレスを DNS サーバに設定します。設定方法に、iPhone と iPad、Android、ほかの Mac、Windows での手順が表示されます。ルータの DNS 設定で一度設定すれば、ネットワーク上のすべてのデバイスに適用することもできます。
  4. http://blog.test/ のように名前でサイトを開くか、QR コード(オンラインペインかサイトのカードにあります)を読み取ります。
自分のネットワークをオンにした状態:デバイスに設定する DNS のアドレスと、各サイトの .test のアドレス(コピーと QR コード付き)。
図 9.1自分のネットワークをオンにした状態:デバイスに設定する DNS のアドレスと、各サイトの .test のアドレス(コピーと QR コード付き)。

それらのデバイスでは、ほかのものもすべてこれまでどおり動きます。Pancake は、それ以外の名前をすべてこの Mac 自身の DNS サーバに渡すからです。ローカルネットワークの外のデバイスに Pancake が応答することはありません。

メモ

ほかのデバイスでは通常の http:// を使います。Pancake 独自の証明書による HTTPS は、今のところこの Mac でのみ使えます。

9.3名前の末尾、ワイルドカード、追加の名前

「詳細」をオンにすると、次の設定が使えます:

  • 名前の末尾。既定は test です。lan や home.arpa など、ほかのものも選べます。.local と .localhost はこの用途には使えません。
  • ワイルドカード。各サイトがすべてのサブドメイン(*.blog.test)にも応答します。WordPress のマルチサイトに必要です。
  • 追加の名前。名前と IPv4 アドレスを入力すると、その名前をほかのデバイス(社内の wiki、NAS、プリンタの設定ページなど)に向けられます。例:wiki.office.test → 192.168.1.30。アドレスを空欄にすると、この Mac を指します。Pancake を DNS サーバにしているデバイスなら、どれでもその名前で開けます。

9.4ローカル HTTPS

一部の機能(セキュアな Cookie、Service Worker、カメラへのアクセス、決済のテストモードなど)には https:// が必要です。Pancake は、すべての .localhost のサイトに信頼された証明書を用意できます。

  1. 設定 ▸ ローカル HTTPSを開き、オンにする…をクリックします。
  2. Pancake が、.localhost の名前にしか署名できない独自の認証局を作り、macOS にそれを信頼するよう求めます。求められたら Mac のパスワードを入力します(1 回だけです)。
  3. これで、Safari と Chrome で https://name.localhost を警告なしで開けます。各サイトのカードに鍵のボタンが表示されます。

HTTPS はポート 443(Pancake が代わりのポートで動いているときは 8443)を使います。Firefox は信頼する認証局の一覧を独自に持っています。警告が表示される場合は、macOS の証明書を使う Firefox の設定をオンにしてください。状態が「Certificate made, not trusted yet」と表示される場合は、もう一度信頼…をクリックします。

公開する名前の証明書は、Cloudflare、Let's Encrypt、または自分の証明書を使います(サイトを公開するをご覧ください)。

サイトからのメール

サイトが送るメールは、実際の受信箱ではなくすべて Pancake のメールボックスに届きます。準備ができたら SMTP サービス経由で実際にメールを送信でき、稼働監視の通知をスマートフォンで受け取ることもできます。

10.1メールボックス

サイトが PHP の mail()(WordPress、Laravel をはじめ多くの PHP アプリが使用)で送るメールは、Mac の外に出ません。メールボックスに表示されるので、登録、注文、パスワード再設定のメールを、実在の人に迷惑をかけずに安全にテストできます。

  • ⇧⌘M を押すか、メニューバーのアイコンからメールボックスを選んで開きます。
  • サイトで絞り込み、メッセージごとにHTML、テキスト、ソースを切り替えられます。
  • 添付ファイルを保存したり、.eml を表示でメッセージの元ファイルを開いたりできます。
  • すべて削除でメールボックスを空にします。1 通だけ削除するには、メッセージを右クリックします。

HTML メールは JavaScript をオフにし、外部の画像をブロックして表示します。リンクはブラウザで開きます。

10.2実際にメールを送信する

TallStack Pancake は SMTP サービス経由で、サイトのメールを実際の宛先に送ることもできます。その場合もすべてメールボックスに保存されます。

  1. 設定 ▸ メールを開きます。入力例…で使うサービス(Mailgun、Postmark、Amazon SES、SendGrid、Resend、Brevo)を選ぶと、サーバ、ポート、セキュリティを Pancake が入力します。
  2. ユーザ名、パスワード/API キー、既定の送信者([email protected] など)を入力し、保存をクリックします。
  3. テスト送信先に自分のアドレスを入力し、テスト送信をクリックします。
  4. 実際にメールを送るサイトごとに、「詳細」をオンにしてリレー経由で実際にメールを送信をオンにします。
サービス入力する内容
Mailgunユーザ postmaster@your-domain とその SMTP パスワード。
PostmarkServer API トークンを、ユーザとパスワードの両方に。
Amazon SESSES の SMTP 認証情報(AWS のアクセスキーではありません)。必要に応じてサーバ名のリージョンを変更します。
SendGridユーザ apikey と API キー。
Resendユーザ resend と API キー(TLS、ポート 465)。
BrevoSMTP のログインとキー。

送信されるのは、サイトのリレーをオンにした後に保存したメールだけで、1 日より古いものは送りません。送信に失敗したメールは、1 分後、5 分後、30 分後に再送を試みます。パスワードはキーチェーンに保存されます。

メモ

サービスは、そのサービスで確認済みのドメインからのメールしか配送しません。先に SPF と DKIM のレコードを設定してください。設定しないと、メールが拒否されたり迷惑メールに分類されたりすることがあります。

10.3スマートフォンへのプッシュ通知

FullStack この Mac から公開しているサイトがダウンすると、どのプランでも macOS の通知が表示されます。FullStack では、その通知をスマートフォンにも送れます。

  1. 設定 ▸ プッシュ通知を開き、稼働監視の通知をスマートフォンに送るをオンにします。
  2. サービスを選びます:
    • ntfy:サーバは https://ntfy.sh(または自分のサーバ)のままにし、新しいトピックをクリックしてランダムなトピック名を作り、ntfy アプリでそのトピックを購読します。ntfy.sh ではトピック名を知っていれば誰でも読めるので、ランダムな名前のままにしてください。
    • Gotify:サーバのアドレスとアプリケーショントークン。
    • Pushover:アプリケーションの API トークンとユーザキー。
  3. 保存をクリックし、続けてテスト送信をクリックします。

サイトが 2 回続けて確認に失敗すると(約 10 分)通知が送られ、復旧したときにも送られます。ダウンの通知には、サービスの緊急の優先度を使います。

デプロイ

サイトを静的ホスト、SFTP や FTP で接続するホスティング、マネージド WordPress ホスト、アプリプラットフォーム、新しく作るクラウドサーバに公開し、公開中のサイトを安全に編集します。

11.1デプロイペイン

デプロイペインには、各サイトの公開先が一覧表示されます。各行には、サイトとターゲット、アドレス、最後にデプロイした日時と成否、状態の点が表示されます。状態の点は、ペインを開いたときか今すぐ確認をクリックしたときだけ確認します。ほかの場所でホストしているサイトを Pancake が監視し続けることはありません。

行のボタン:デプロイ、開く、履歴と、ターゲットを登録から外すゴミ箱ボタン(サーバ上のものは何も削除されません)。サーバのターゲットにはデータベースを公開…が加わり、「詳細」をオンにするとホストの API に接続…とホストのデータベースを設定…も表示されます。

11.2ターゲットの種類

ターゲット向いている用途プラン
here.now、Netlify、Vercel、Cloudflare Pages静的サイト(HTML、ビルド済みの Vite や Lovable のアプリ)。ShortStack 1 か所、TallStack 無制限
サーバ(SFTP)とサーバ(FTP / FTPS)共用ホスティングや自分のサーバ:PHP、WordPress など何でも。TallStack
Heroku、DigitalOcean App Platform、Renderアプリプラットフォーム上の PHP と Python のアプリ。TallStack
マネージド WordPress(Kinsta、WP Engine、Pressable)ステージングにデプロイしてから、ライブに昇格。TallStack
新しいクラウドサーバPancake がサイト用に作成して設定するサーバ。TallStack AWS で 3 台、FullStack すべての事業者

11.3ターゲットを追加してデプロイする

  1. + ターゲットを追加をクリックし、サイトとデプロイ先を選びます。
  2. 静的ホストやアプリプラットフォームでは、その API トークンを貼り付けます。取得できる場所は Pancake が開くボタン付きで案内します。デプロイ先の既存のプロジェクト、サイト、アプリを指定することもでき、指定しなければ Pancake が作成します。Cloudflare Pages は Cloudflare の接続を使います。そのトークンには Account › Cloudflare Pages › Edit が必要です。
  3. サーバの場合はサイトのアドレスを入力し、ホストが一覧にあればホスティングのプリセットを選び、サーバ、ポート、ユーザ、パスワードまたは鍵、サーバ上のフォルダを入力します。公開中のウェブサイトから読み込んだサイトでは、これらが自動で入力されます。
  4. 追加をクリックし、新しい行のデプロイをクリックします。

送られるのは前回のデプロイ以降に変更したファイルだけで、ローカルで削除したファイルはサーバからも削除されます。次のものは Mac から出ません:

  • .env ファイル、SQL ダンプ、.git(.svn、.DS_Store、node_modules、__pycache__ も)。
  • サーバ上の WordPress では、wp-config.php とキャッシュフォルダ(サーバ側が独自のものを持つため)。
メモ

静的ホストが配信するのは完成したファイルだけで、PHP やデータベースは動きません。PHP や Python のサイトに静的ホストを追加すると、Pancake が警告します。

11.4デプロイ前のチェック

TallStack デプロイのたびに、Pancake はデプロイする前にに次の内容を表示します:

  • ファイル:送るファイルの数、または変更がないこと。
  • PHP の構文:変更したすべての PHP ファイルを確認します。エラーがあると、このままデプロイを選ばない限りデプロイを中止します。
  • ローカルのアドレス:.localhost や 127.0.0.1 へのリンクがサイトに残っていると警告します。

FullStack サーバのターゲットでは、1 回限りの保護されたテストページを使ってホスト自体も確認します:PHP のバージョン、サイトに必要な PHP 拡張機能、メモリとアップロードの上限、データベース。ホストの PHP バージョンが異なる場合は、ホストに合わせるでローカルのサイトを同じバージョンに切り替え、本番で実際に動く環境でテストできます。

11.5公開中のサイトを安全に編集する

公開中のウェブサイトから取り込んだサイトは、そのサーバを記憶しています。サイトカードにはホストと 2 つの操作が表示されます:

もう一度ダウンロード…
ローカルのサイトをバックアップしてから、サーバの最新のファイルを取り込みます。データも更新するにはデータベースもライブのもので置き換えるにチェックを入れます。すべてのプランで使えます。
サーバに公開 ▸ ファイル…
TallStack いつものチェックのあと、変更を同じサーバの同じフォルダに、変更したファイルだけ公開します。サーバの wp-config.php はそのまま残します。
サーバに公開 ▸ データベース…
TallStack ライブのデータベースをローカルのものに置き換えます(下記参照)。

典型的な流れ:もう一度ダウンロードし、name.localhost で変更とテストを行い、ファイルを公開します。ファイルの公開では、ライブのデータベースには一切触れません。

11.6データベースを公開する

TallStack データベースを公開…は、サーバのデータベースを Mac にあるもので置き換えます。注意して使ってください。ダウンロード後にライブのサイトで追加されたもの(注文、コメント、登録)は置き換わります。

  1. 「すべて開始」してから、データベースを公開…を選びます。
  2. 置き換わるデータベースを確認し、ライブサイトの現在の内容が置き換わることを理解しましたにチェックを入れて、バックアップして公開をクリックします。
  3. Pancake はサーバのデータベース設定を読み取り、ライブのデータベースのバックアップをバックアップに保存し、ローカルのアドレスをライブのものに変えたデータベースのコピーを作って、サーバに読み込み、サイトが応答することを確認します。

ライブのデータベースのバックアップが空だった場合は、何も公開しません。ローカルのデータベースは変更されません。

11.7ホストにデータベースを作成する

TallStack 共用ホスティング上の新しいサイトでは、ホストのデータベースを設定…(詳細)で、ホスティングのコントロールパネルにデータベースとユーザの作成を依頼します:cPanel(Security ▸ Manage API Tokens で作る API トークン)、Plesk(API キー)、DirectAdmin(データベースの管理を許可したログインキー)。アカウントのそれ以外は変更しません。WordPress の場合は、サーバ用の wp-config.php がまだなければ Pancake がアップロードします。続けて今すぐデータベースを公開…をクリックします。

11.8マネージド WordPress ホスト

TallStack Kinsta、WP Engine、Pressable では、Pancake はファイルをステージング環境にデプロイし、その後ステージングをライブに昇格するようホストに依頼します。

  1. ホストのステージングサイト用にサーバのターゲットを追加します(マネージド WordPress のプリセットが便利です)。
  2. ホストの API に接続…をクリックし、ホストを選んで API の情報を入力します:Kinsta は API キーと会社 ID、WP Engine は API のユーザ名とパスワード、Pressable はクライアント ID とシークレット。
  3. 環境を読み込むをクリックし、どれがステージングでどれがライブかを選んで、保存します。
  4. いつもどおりデプロイしてステージングのサイトを確認し、ライブに昇格…をクリックします。Kinsta と WP Engine には先にライブのバックアップを依頼します。Pressable は両方のサイトをバックアップします。

キャッシュをクリアで、ステージングとライブのホストのキャッシュをクリアします。

11.9アプリプラットフォーム

  • Heroku:Pancake がサイトのファイルをアップロードし(.env、ダンプ、.git は送りません)、Heroku がビルドします。
  • DigitalOcean App Platform と Render は、サイトの GitHub または GitLab リポジトリからビルドします。リポジトリは公開されている必要があります。先にコミットしてプッシュしてください(サイトカード ▸ Git)。Render には PHP のランタイムがないため、PHP のサイトには Dockerfile が必要です。

必要な場合は Pancake が Procfile を追加します。Python のサイトには、gunicorn を含む requirements.txt が必要です。サイトにデータベースが必要なら、プラットフォームのダッシュボードで追加してください。

11.10サーバを作成する

TallStack Pancake はクラウドサーバを作成して設定し、PHP のサイトを載せることができます:TallStack では Amazon Lightsail と EC2(3 台まで)、FullStack ではさらに DigitalOcean、Hetzner、Vultr、Akamai Linode、ConoHa VPS、さくらのクラウドが使えます。

  1. 「すべて開始」してから、サーバを作成…をクリックします。
  2. サイト、事業者、リージョン(事業者によって東京、ソウル、シンガポール、米国、ヨーロッパのリージョン)を選びます。使用するサイズと、事業者の料金ページへのリンクが表示されます。
  3. 事業者の API トークンを入力します(AWS の場合は IAM ユーザのアクセスキーとシークレット。ルートアカウントは使わないでください。Pancake に必要な IAM ポリシーをコピーが役立ちます)。キーはキーチェーンに保存されます。
  4. 削除するまでこのサーバの料金が … から請求されることを理解しましたにチェックを入れ、サーバを作成をクリックします。

Pancake はサーバを作成し、Ubuntu に Apache、サイトの PHP バージョン、MariaDB、ファイアウォール、fail2ban、セキュリティアップデートの自動適用を設定します。サインインできるのは Pancake の SSH キーだけです。その後サイトとデータベースをアップロードし、デプロイのターゲットを追加するので、以後の変更はデプロイで反映できます。完了したら、ドメインの DNS をサーバのアドレスに向けてください。

作成したサーバはPancake が作成したサーバに、コンソールとサーバを削除…付きで表示されます。Pancake はこれらのサーバへのデプロイと削除はできますが、管理や監視はしません。

注意

事業者は、使っているかどうかに関係なく、サーバを削除するまで料金を請求します。

バックアップと保存ポイント

サイトのファイルとデータベースをワンクリックまたは毎日バックアップして復元し、暗号化してオフサイトにコピーし、Pancake Cloud で Mac 間でサイトを移せます。

12.1バックアップと復元

バックアップペインには、すべてのサイトと最後のバックアップが一覧表示されます。

  • バックアップは、サイトのフォルダとデータベース(MySQL、FullStack では PostgreSQL も)を 1 つのファイルとして Pancake の保存領域に保存します。すべてバックアップはすべてのサイトをバックアップします。
  • 復元…は最新のバックアップを元に戻します。サイトの現在のフォルダは先にゴミ箱に移され、Pancake が保存ポイントを作るので、復元も元に戻せます。

バックアップの前に「すべて開始」してください。サーバが停止していると、バックアップにはファイルしか含まれません(Pancake がその旨を表示します)。

12.2毎日のバックアップ

「詳細」をオンにすると、スケジュールセクションに次の項目があります:

  • Pancake が開いている間、毎日バックアップ:最後のバックアップから 1 日以上たったサイトをバックアップします。
  • 各サイトの最新 N 件のバックアップを保持:変更しなければ 14 件です。それより古いものは削除されます。
  • バックアップフォルダを表示。

すべてのバックアップには、すべてのバックアップが日付とサイズ付きで一覧表示され、それぞれに復元…、表示、削除(ゴミ箱へ)があります。

12.3保存ポイント

保存ポイントは、サイトカードの時計ボタンから作る名前付きのコピーで、毎日のバックアップとは別に保管されます(各サイトの最新 20 件)。危険な変更の前には Pancake が自動で作成します。保存ポイントを参照してください。

12.4オフサイトのコピー

FullStack すべてのバックアップを、先に Mac で暗号化してから自分のストレージのバケットにコピーします。

  1. バックアップ(詳細)のオフサイトのコピーで、ストレージを選びます:Amazon S3、Cloudflare R2、Backblaze B2、Wasabi、その他の S3 互換。
  2. バケット、リージョン(または R2 のアカウント ID、またはサーバ)、バケット内のフォルダ、そのバケットに限定したアクセスキー(読み取り、書き込み、一覧、削除)を入力します。
  3. テスト、保存の順にクリックし、すべてのバックアップをオフサイトにコピーをオンにします。
  4. リカバリキー…をクリックし、キーをパスワードマネージャに保管します。

バックアップのたびに、新しいバックアップが暗号化されてコピーされます。各サイトの最新 N 件のコピーを保持は、変更しなければ 30 件です。ストレージに置かれるのは暗号化されたファイルだけで、容量の料金は事業者から請求されます。

注意

オフサイトのコピーはリカバリキーでしか開けません。キーがなければ、Enfour を含め誰も読めません。

別の Mac では:同じバケットを設定し、リカバリキー…を開いて、別の Mac のキーを使うにキーを貼り付け、このキーを使うをクリックします。続けてバケット内からバックアップをダウンロードし、一覧から復元します。

12.5Pancake Cloud

Pancake Cloud は、サイト(ファイルとデータベース)をパスフレーズで暗号化して自分のストレージに保存し、この Mac や別の Mac に読み込みます。保存は TallStack、読み込みはすべてのプランで使えます。

  1. バックアップペインのPancake Cloudで、設定…をクリックします。
  2. 保存先を選びます:
    • 自分のサーバ(SFTP):サーバ、ユーザ、パスワード、フォルダ(変更しなければ PancakeCloud)。
    • S3 互換バケット:オフサイトのコピーと同じ事業者。
    • iCloud Drive:iCloud Drive 内の Pancake 専用フォルダ。同じ iCloud にサインインしたほかの Mac からも見えます。
  3. 10 文字以上のパスフレーズを決め、この Mac に記憶(キーチェーン)するかどうかを選びます。
  4. テスト、保存の順にクリックします。
  5. すべてクラウドに保存をクリックするか、サイトを保存から 1 つのサイトを選びます。

サイトを戻すには、その横の読み込む…をクリックします。この Mac にそのサイトがあれば置き換えます(現在の状態は先に保存ポイントとして残します)。なければ、バックアップのファイルとデータベースでオフラインのサイトを作成します。変更しなければ、各サイトのクラウドバックアップは最新 5 件を保持します。

注意

パスフレーズを忘れると、誰も復元できません。パスワードマネージャに保管してください。

ヒント

Pancake Cloud を使えば、新しい Mac にサイトを簡単に移せます。古い Mac で保存し、新しい Mac で同じストレージを設定して読み込むだけです。

サービス、タスク、ワーカ

FullStack では PostgreSQL、Valkey、Memcached が加わり、サイトのスケジュールタスクとバックグラウンドワーカを実行できます。

サービスペイン:Valkey、Memcached、PostgreSQL のスイッチと、その下に各サイトのタスクとワーカ。
図 13.1サービスペイン:Valkey、Memcached、PostgreSQL のスイッチと、その下に各サイトのタスクとワーカ。

13.1データベースとキャッシュ

FullStack サービスペインでは、3 つの追加のサーバをオンにできます。いずれもこの Mac の中だけで動き、Pancake と一緒に開始・停止し、各サイトにアドレスを環境変数で渡します。

サービスサイトに渡される変数オプション
Valkey(Redis 互換)REDIS_HOST、REDIS_PORT、REDIS_PASSWORD、VALKEY_URL、REDIS_URL再起動後もデータを保持、URL をコピー
MemcachedMEMCACHED_HOST、MEMCACHED_PORTメモリ(16 MB〜1 GB)
PostgreSQL 17PGHOST、PGPORT、PGDATABASE、PGUSER、PGPASSWORD、POSTGRES_URLサイトごとのデータベースとロール

PHP には redis、memcached、pgsql、pdo_pgsql 拡張機能が含まれています。サービスのオン/オフを切り替えると、サーバが動いていれば再起動します。動作中のサービスには、アドレス(127.0.0.1:6379 など)が表示されます。

PostgreSQL のデータベースはデータベースペインで管理します。

13.2スケジュールタスクとワーカ

FullStack サービスペインの各サイトには、次のものを設定できます:

  • スケジュールタスク:cron 形式のスケジュールで実行します。WP-Cron、Laravel のスケジューラ、Django の管理コマンド、テストスイートなど。
  • ワーカ:常に動かしておき、止まったら再起動します。Laravel の queue:work、Celery などのキューワーカ。

どちらも、Pancake が開いていてサーバが動いている間、サイトのフォルダでサイトの環境変数(データベース設定を含む)を使って実行されます。サーバ上ではなく、この Mac の cron のようなものです。

  1. サイトカードの追加をクリックします。
  2. 合うものがあればプリセットを選ぶか(サイトのファイルに合うものを Pancake が提示します)、名前、種類(スケジュールタスクまたはワーカ)、コマンドを入力します。
  3. スケジュールタスクではスケジュール(cron)を入力します。入力に合わせて次回の実行日時が表示されます。N 分で実行を打ち切るで、1 回の実行にかけられる時間を制限します(変更しなければ 10 分)。
  4. 保存をクリックします。
プリセット種類コマンドスケジュール
Laravel schedulerタスクartisan schedule:run* * * * *
Laravel queue workerワーカartisan queue:work --sleep=3 --tries=3
WP-Cronタスクphp wp-cron.php*/5 * * * *
Run tests (PHPUnit)タスクphp vendor/bin/phpunit@daily
Django management commandタスクmanage.py clearsessions@daily

各行には最後に実行した日時と成否が表示され、今すぐ実行、ログ、編集があります。出力はタスク専用のログ(ログウインドウの task-<name>.log)に書き込まれます。

コマンドに使えるもの

コマンドは php、artisan、composer、python、manage.py のいずれかで始めます。シェルは使わないため、パイプ、;、&&、リダイレクトは使えず、展開も行われません。引用符は通常どおり使えます。

スケジュール

スケジュールは 5 つの項目からなります:分、時、日、月、曜日。時刻は Mac のタイムゾーンです。

スケジュール実行タイミング
*/5 * * * *5 分ごと
0 * * * * または @hourly毎時 0 分
30 2 * * *毎日 2:30
0 9 * * mon-fri平日の 9:00
0 0 1 * * または @monthly毎月 1 日の 0:00

リスト(1,15)、範囲(1-5)、間隔(*/15)、月と曜日の名前、@daily、@weekly、@yearly も使えます。

13.3Nginx

FullStack サイトのウェブサーバに Nginx を使えます。サイトカードで「詳細」をオンにし、ウェブサーバを Nginx にします。カードの詳細設定を参照してください。

アシスタントと MCP

サイトについてふだんの言葉で Pancake に質問し、操作を任せられます。Apple Intelligence か好きな AI を使え、Claude Code、Cursor、Codex、Claude Desktop も接続できます。

アシスタント:質問すると、Pancake 自身のツールを使って答えます。
図 14.1アシスタント:質問すると、Pancake 自身のツールを使って答えます。

14.1アシスタントに質問する

アシスタントペインを開き、Pancake に質問…に質問を入力して ⌘Return を押します。たとえば:

  • 「どのサイトがありますか?」
  • 「ブログがエラーになるのはなぜ?」(サイトの PHP とウェブサーバのログを読みます)
  • 「Pancake を開始して」
  • 「shop という PHP のサイトを作って」
  • 「自分のドメインでサイトを公開するには?」(Pancake のヘルプをもとに答えます)

アシスタントが Pancake のツールを使うと、チャットにその旨が表示されます(「最終使用:sites list」)。消去で新しい会話を始めます。

14.2回答に使う AI

ペインのタイトルの下の行に、どの AI が回答しているかが常に表示されます。

この Mac の Apple Intelligence(既定)
無料・非公開・オフラインで、Mac の外には何も出ません。Apple シリコン搭載の Mac で、システム設定の Apple Intelligence がオンになっている必要があります。短く具体的な質問に向いています。
Private Cloud Compute
Apple のより大きなモデルで、長いリクエストやすべてのツールに使えます。リクエストは非公開で処理され、保存されません。macOS 27 以降が必要で、Apple アカウントごとに 1 日の上限があります。上限が近づくとペインに表示されます。
クラウドの AI プロバイダ
Anthropic(Claude)、OpenAI、Google Gemini、OpenRouter の自分のキー、またはこの Mac の VibeProxy(VibeProxy に接続した Claude、ChatGPT、Gemini のサブスクリプションを使い、キーは不要)。オンにしない限りオフです。

選ぶには、アシスタントペインで「詳細」をオンにします。この Mac(非公開・オフライン)か Private Cloud Compute を選ぶか、クラウドの AI プロバイダに送信するをオンにして事業者とモデルを選び、API キーを貼り付けて保存をクリックします(キーを取得で事業者のページが開きます)。

メモ

クラウドのプロバイダを使うと、メッセージとツールの回答(サイト名、設定、ログの行)は、Enfour を経由せずに Mac からそのプロバイダに直接送られます。パスワード、キー、トークンは先に取り除かれます。プロバイダ自身の規約が適用されます。

KeyRotate を使っている場合は、キーを KeyRotate から受け取れ、Pancake に入力したキーは KeyRotate に引き渡されます。キーと KeyRotateを参照してください。

14.3見るだけか、変更を許可するか

アシスタントペインの詳細設定の最後で、アシスタントと接続した AI ツールに許可する操作を選びます:

  • 見るだけ(既定):サイト、設定、ログを読みます。何も変更しません。
  • 変更を許可:さらに、開始と停止、サイトの作成、オンラインへの公開、デプロイ、サイトのファイルの書き込みもできます。

外部アクセスをオフにするのは、サイトをインターネットから外すだけなので常に許可されます。すべてのツール呼び出しは、呼び出し元とともに assistant.log(ログウインドウ)に記録されます。

14.4Claude Code、Cursor、Codex、Claude Desktop を接続する

Pancake の MCP サーバを使うと、この Mac の AI コーディングツールがアシスタントと同じツールを使えます:サイトの一覧、ログの読み取り、サーバの開始、サイトの作成、ページのデザイン、デプロイ。MCP サーバはこの Mac の中だけで http://127.0.0.1:19810/mcp で待ち受け、すべてのリクエストにトークンが必要です。

  1. アシスタントペイン(詳細)で、Claude Code、Cursor、Codex、Claude Desktop 向けの MCP サーバをオンにします。
  2. クライアントを接続…をクリックし、使うツールを選びます。
  3. コピーをクリックし、Pancake が示す場所に設定を貼り付けます。設定にはトークンが含まれています。
Claude Code
コピーしたコマンドをターミナルで実行します:claude mcp add --transport http pancake http://127.0.0.1:19810/mcp --header "Authorization: Bearer …"
Cursor
コピーした pancake の項目を ~/.cursor/mcp.json に追加します。
Codex
コピーした [mcp_servers.pancake] セクションを ~/.codex/config.toml に追加します。
Claude Desktop
Claude ▸ Settings ▸ Developer ▸ Edit Config を選び、コピーした項目を追加します。Pancake 内の小さなヘルパーが動いて、サーバに接続します。

ツールに許可される操作は、「見るだけ」/「変更を許可」の選択に従います。新しいトークン…はトークンを置き換えます。新しい設定を貼り付けるまで、接続していたツールはすべて使えなくなります。

注意

トークンがあれば、この Mac のどのプログラムでも Pancake のツールを使えます。共有ファイルや Git リポジトリに入れないでください。

14.5ツール

ツール内容「変更を許可」が必要
help_searchPancake のヘルプを検索します。
stack_statusサーバが動いているか、ポート、外部アクセス、プラン。
sites_list、site_infoサイトの一覧と、1 つのサイトの詳細。
logs_readサイトまたはサーバのログの最後の行。
databases_listデータベースとそのサイズ、テーブル。
mail_list最近保存したメール。
deploy_targetsサイトのデプロイ先。
site_file_readサイトのファイルを一覧表示したり読んだりします。
live_site_import新規サイト ▸ 公開中のサイトから を開きます。
stack_start、stack_stopすべてのサーバを開始または停止します。必要
outside_access外部アクセスをオンまたはオフにします。オンにするとき
site_onlineサイトをオンラインにします。必要
site_createPHP サイトまたは静的サイトを作成します。必要
site_php、site_autoindexサイトの PHP バージョンや AutoIndex を変更します。必要
deploy_run保存したターゲットにサイトをデプロイします。必要
design_page説明をもとにページをデザインします(先に保存ポイントを作成)。必要
site_file_writeサイトにテキストファイルを書き込みます(先に保存ポイントを作成。古い版は .pancake-bak として残します)。必要

設定、テンプレート、プラグイン

設定ペインの各セクションを説明します。サーバのテンプレート、PHP 拡張機能と Apache モジュール、Mac 間の同期、KeyRotate、Pancake のデータの削除も含みます。

15.1一般

ログイン時に Pancake を開く
ログインしたときに Pancake を起動します。macOS に確認された場合は、システム設定 ▸ 一般 ▸ ログイン項目で許可してください。
Pancake を開いたらサーバを開始
「すべて開始」を自動で実行します。オンにしない限りオフです。
メニューバーに Pancake を表示
メニューバーのパンケーキのアイコンです。表示している間は、ウインドウを閉じてもサイトは動き続けます。
すべてのペインで詳細設定を表示
すべてのペインで「詳細」をオンにします。

15.2サブスクリプション、エディタ、Cloudflare、メールなど

セクション内容参照
サブスクリプション現在のプラン、プランの変更、App Store で管理、購入を復元。プラン
エディタ「編集」ボタンでサイトを開くアプリ。自分のアプリで編集
Cloudflare接続したドメインと、切断。自分のドメイン
他の Mac と同期FullStack サイトと設定をすべての Mac で同じに保ちます。下記
KeyRotateキーを KeyRotate と共有します。下記
メールTallStack 実際にメールを送るための SMTP リレー。実際にメールを送信する
プッシュ通知FullStack 稼働監視の通知をスマートフォンに。プッシュ通知
画像「画像を最適化」の既定値。画像の最適化
ローカル HTTPS.localhost 用の信頼された証明書。ローカル HTTPS
Git(詳細)コミットに使う名前とメールアドレス、Git ホストのトークン、Pancake の SSH キー(キーを作成/表示、公開鍵をコピー)。Git

15.3詳細

ウェブのポート
標準 — 80 と 443、または Pancake に標準のポートを使わせたくない場合は代替 — 8080 と 8443。変更すると、動作中のサーバを再起動します。
テンプレート…
テンプレートを参照してください。
プラグイン…
プラグインを参照してください。
ログの上限
10 MB、50 MB(既定)、200 MB、上限なし。上限を超えたログは、新しい半分だけに切り詰めます。
新しい PHP サイト/静的サイトのスターターファイル
その種類の新しいサイトに毎回コピーするフォルダです。消去で使うのをやめます。
データフォルダを表示、ログを表示
Pancake のフォルダを Finder で開きます。
Pancake のデータをすべて削除…
すべてを削除するを参照してください。

15.4テンプレート

Pancake はすべてのサーバ設定ファイルをテンプレートから作ります。どのテンプレートも変更できます:Apache のメインの設定(httpd.conf)、サイトごとに書き出す部分(httpd-vhost.conf)、PHP バージョンごとの php.ini、MySQL の my.cnf。

  1. 設定 ▸ 詳細 ▸ テンプレート…(またはファイル ▸ テンプレートを編集)を開きます。
  2. テンプレートの横の編集をクリックすると、テキストエディタで開きます。プレースホルダには、ポートやフォルダなど Pancake が埋める {{PANCAKE_…}} の値が一覧表示されます。これらはそのまま残してください。
  3. 保存してから、適用をクリックします。

Pancake は各テンプレートを使う前に、実際のサーバで確認します。読み込めない場合は Pancake のテンプレートを使い続け、エラーと行を表示し、テンプレートボタンに適用されなかった数が表示されます。変更点で変更した内容を確認でき、リセットで Pancake のテンプレートに戻せます。

MAMP PRO から読み込む…は、MAMP PRO のカスタムテンプレートを Pancake のものに変換します。変換、追加、除外した内容を確認できます。

15.5プラグイン

プラグイン…では、Apache モジュール(expires、deflate、include、negotiation など)と PHP バージョンごとの拡張機能(gd、intl、zip など)のオン/オフを切り替えます。Pancake 自身が必要とするモジュールは常にオンです。既定値ですべてを元に戻し、適用で選んだ内容でサーバを再起動します。

15.6他の Mac と同期

FullStack サイトと設定を iCloud で同期をオンにすると、同じ iCloud にサインインしたすべての Mac で同じ設定を保てます。

同期するもの同期しないもの
サイト一覧、サービスのオン/オフ、スケジュールタスク、外部データベースへの接続、メールリレー、プッシュ通知、ネットワーク上の名前。サイトのファイルとデータベース(バックアップ、Pancake Cloud、デプロイで移します)、パスワードとキー(各 Mac で 1 回入力)、1 台の Mac に属するもの(Cloudflare トンネル、証明書、DDNS 名、サイトがオンラインかどうか)。

ある Mac で削除したサイトは他の Mac の一覧からも消えますが、そちらのファイルは削除されません。データは自分の iCloud にだけ送られます。今すぐ同期ですぐに同期します。それ以外は数分ごとと、Pancake に切り替えたときに同期します。

15.7キーと KeyRotate

KeyRotate は Enfour のキー管理アプリです。キーを KeyRotate と同期がオン(既定)の場合、Pancake は次のキーを KeyRotate と共有します:AI キー(Anthropic、OpenAI、Gemini、OpenRouter)、Cloudflare API トークン、Vercel と here.now のトークン、DigitalOcean、Hetzner、Vultr、Akamai Linode のトークン。原本は KeyRotate が持ち、キーをローテーションして最新のものを Pancake に渡します。

キーは 2 つのアプリだけが共有するキーチェーングループを通り、Mac の外には出ません。AWS のキーは共有しません。同期をオフにすると、Pancake 自身のキーチェーンだけを使います。KeyRotate がインストールされていなければ、Pancake は自身のキーチェーンを使うだけです。

15.8すべてを削除する

Pancake のデータをすべて削除…は、すべてのサーバを停止してから、Pancake のデータベース、設定、証明書(ローカル認証局の信頼設定を含む)、保存したパスワードを削除し、サイトのフォルダをゴミ箱に移して終了します。

注意

必要なデータベースは先に書き出してください(データベース ▸ 書き出し)。サイトのフォルダはゴミ箱から戻せますが、データベースは戻せません。サブスクリプションには影響しません。解約する場合は App Store で行ってください。

プランとサブスクリプション

各スタックに含まれるもの、無料の 1 週間、プランの変更と解約、サブスクリプションが終了したときのことを説明します。

16.13 つのスタック

どのプランでも、Mac 上でいくつでもサイトを動かせ、Apache、PHP、MySQL、Python、アシスタント、MCP サーバが使えます。高いスタックほど多くのサイトを公開でき、機能も増えます。

機能ShortStackTallStackFullStack
ローカルのサイト無制限無制限無制限
最新の PHP、MySQL 8.4、Python、Adminer✓✓✓
サイトごとの古い PHP(8.4、8.3、8.2、7.1)✓
読み込み、Git、ファイルとエディタ、アシスタントとデザイン✓✓✓
ローカル HTTPS、自分のネットワーク、メールの保存✓✓✓
バックアップと保存ポイント✓✓✓
外部の MySQL と MariaDB✓✓✓
外部の PostgreSQL、SSH 経由のデータベース✓✓
公開できるサイト(テストリンクまたは独自ドメイン)110無制限
Cloudflare と Route 53 のドメイン、DDNS 名各 1各 10無制限
静的ホストのデプロイ先1無制限無制限
SFTP/FTP での公開、公開中のサイトへの書き戻し、データベースの公開✓✓
ステージング用コピー、サイトごとの環境変数✓✓
ホスティングのコントロールパネル、マネージド WordPress ホスト、アプリプラットフォーム✓✓
SMTP リレーでの実際のメール送信✓✓
Pancake Cloud への保存(読み込みはすべてのプランで可能)✓✓
SSH での Apple Server からの読み込み✓✓
クラウドサーバの作成AWS で 3 台無制限、すべての事業者
ホストのチェックと「ホストに合わせる」基本のチェック✓
PostgreSQL、Valkey、Memcached、Nginx✓
スケジュールタスクとワーカ✓
オフサイトのバックアップ、プッシュ通知、Mac 間の同期✓

メニューバーと Dock のアイコンはプランに合わせて高くなります:低いスタック、高いスタック、そしてアイスクリームとさくらんぼを載せたフルスタック。

16.2登録と無料の 1 週間

  1. サイドバーのサブスクリプション(または設定 ▸ サブスクリプション ▸ プランを見る…)を開きます。
  2. スタックを選びます。まだ無料の 1 週間を使っていなければ、ボタンは無料の 1 週間を始める、使ったことがあれば登録と表示されます。
  3. App Store で確定します。

プランは Apple アカウントによる月額サブスクリプションです。無料の 1 週間は Apple アカウントごとに 1 回、最初に選んだプランで利用でき、その間も機能の制限はありません。価格はアプリ内で現地の通貨で表示されます。

16.3変更、復元、解約

  • プランの変更:設定 ▸ サブスクリプション ▸ プランを変更…を開き、アップグレードまたはダウングレードを選びます。その月の残りの料金は Apple が調整します。
  • 別の Mac では:同じ Apple アカウントでサインインし、購入を復元をクリックします。
  • 解約:App Store で管理、またはシステム設定 ▸ ユーザ名 ▸ メディアと購入 ▸ サブスクリプション。

プランは Mac に記憶されるので、オフラインでも Pancake は使えます。Apple が支払いを再試行している間も、すべての機能が使えます。

16.4複数の Mac でのサイト数の数え方

公開できるサイト数の上限は、同じ iCloud にサインインしているすべての Mac で合算します。ある Mac が ShortStack のサイトを公開している間は、別の Mac で 2 つ目を公開できません。Pancake を終了したり Mac がオフラインになったりすると、その Mac は数えられなくなります。iCloud を使わない場合は、Mac ごとの上限になります。

16.5サブスクリプションが終了したら

何も削除されません。サイト、データベース、設定は Mac に残り、すべてのサイトのファイルとデータベースはいつでも書き出せます。プランが必要な機能は再び登録するまで止まり、登録すればすべて元のとおりに戻ります。

下位のプランに変更しても、サイトの設定はそのまま残ります。古い PHP を設定したサイトは最新の PHP で動き、上限を超えたオンラインのサイトは、再びアップグレードするまでオフラインのままです。

困ったときは

サイトが開かない、サーバが起動しない、リンクが動かないときの対処法、Pancake がデータを保存する場所、サポートの受け方を説明します。

17.1まず確認すること

  1. 状態表示を確認します。要確認と表示されている場合は、ポインタを重ねるとエラーを読めます。
  2. ログウインドウ(⌥⌘L)を開きます。サーバのログは「Web server」と「MySQL」、サイトごとのログは「PHP errors」と「web server errors」です。
  3. ⌥ を押しながら「すべて停止」をクリックすると、すべてを再起動します。
  4. アシスタントに「ブログがエラーになるのはなぜ?」と尋ねます。ログを代わりに読んでくれます。

17.2サイトが開かない

ブラウザが接続できない
サーバが停止している可能性があります。「すべて開始」をクリックしてください。停止中は「開く」ボタンが灰色になります。
アドレスにポート番号が必要
Mac 上のほかのウェブサーバ(macOS の Apache、MAMP、Docker)がポート 80 を使っていた場合、Pancake は 8080 に移ります。状態表示は実行中 :8080になり、アドレスは http://blog.localhost:8080 のようになります。常に正しいアドレスを開く、サイトカードの「開く」ボタンを使ってください。
白いページ、または「500 Internal Server Error」
PHP のエラーです。サイトの「PHP errors」ログを開くか、エラーをページに表示をオンにします(サイトの PHP 設定にあります)。
「Error establishing a database connection」
MySQL が動いていない(「すべて開始」してください)か、サイトの設定が Pancake の渡す DB_… 変数ではなく固定のデータベース情報を使っています。読み込んだ WordPress サイトは、これらの変数を読むように設定されます。
フォルダで「Forbidden」と表示される
index ページがありません。index.html か index.php を追加するか、AutoIndex をオンにします。
React や Vite のアプリで /about などのリンクが「Not Found」になる
サイトカード(詳細)でシングルページアプリをオンにします。
WordPress が古い本番のアドレスに移動する
データベースに古いアドレスが残っています。もう一度読み込んで置き換える旧サイトのアドレスを入力するか、アドレスを自動で置き換える公開中のサイトからを使ってください。

17.3サーバが起動しない

「MySQL didn't start listening」
クラッシュ後に MySQL が復旧中の可能性があります(Pancake は最大 1 分待ちます)。「MySQL」ログを確認してください。ほかの MySQL がポート 3306 を使っている場合は Pancake が次の空きポートを自動で使うので、それが原因ではありません。
「… stopped unexpectedly」
サーバがクラッシュしたため、スタック全体の整合性を保つよう Pancake がすべてを停止しました。表示されたログを読んでから、もう一度「すべて開始」してください。
「Template … wasn't applied」
編集したテンプレートが読み込めません。Pancake は自身のテンプレートを使っています。設定 ▸ 詳細 ▸ テンプレート…を開き、表示された行を直すかリセットしてください。
Python のサイトに「まだ設定されていません」と表示される
サイトカードの設定をクリックします。アプリが起動しない場合はアプリのログを読み、アプリのエントリ(module:callable)を確認してください。

17.4公開時の問題

テストリンクが表示されない
外部アクセスがオンで、サーバが動いていることを確認してください。新しいリンクの取得には約 20 秒かかります。1 分たっても表示されない場合は、「test link」ログに理由が書かれています(多くは、外向きのトンネルをブロックするネットワーク)。
自分のドメインで Cloudflare のエラーが表示される
トンネルがつながっていません。外部アクセスがオフ、サーバが停止中、または Mac がスリープ中かオフラインです。オンラインペインのサイトカードにトンネルの状態が表示され、トンネルのログを表示(詳細)で詳しい情報を確認できます。
「プランの公開サイト数の上限を超えています」
別のサイトをオフにするか、ほかの Mac がサイトを公開していないか確認してください(オンラインペインにどの Mac かが表示されます)。
スマートフォンで blog.test が開かない
スマートフォンの DNS サーバにこの Mac のアドレスを設定し、同じネットワークにつなぐ必要があります。blog.localhost はスマートフォンからは開けません。

17.5その他の問題

https://name.localhost でブラウザが証明書の警告を出す
設定 ▸ ローカル HTTPSを開き、もう一度信頼…をクリックします。Firefox では、macOS の証明書を使うオプションをオンにしてください。
メールが届かない
意図どおりの動作です。メールはメールボックス(⇧⌘M)に保存されます。実際にメールを送るには、実際にメールを送信するを参照してください。
外部のデータベースに接続できない
テストの後に表示されるメッセージを読んでください。テストに失敗した場合を参照してください。
アシスタントが Apple Intelligence を使えないと言う
システム設定 ▸ Apple Intelligence と Siri で Apple Intelligence をオンにし、モデルのダウンロードが終わるまで待ちます。Apple Intelligence のない Mac では、クラウドのプロバイダを使えます(回答に使う AIを参照)。
AI ツールが「changes are switched off」と言う
アシスタントペインの詳細設定の最後で変更を許可を選びます。

17.6Pancake がデータを保存する場所

Pancake はサンドボックス化されているので、すべてが専用のコンテナに保存されます。設定 ▸ 詳細 ▸ データフォルダを表示で開けます。

フォルダ内容
Sites/サイトごとに 1 つのフォルダ。
logs/すべてのログ(ログを表示でも開けます)。
backups/バックアップと保存ポイント(サイトごとに 1 つのフォルダ)。
mail/保存したメール(.eml ファイル)。
mysql/MySQL のデータ。
templates/編集したテンプレート。

フルパスは ~/Library/Containers/jp.co.enfour.pancake/Data/Library/Application Support/Pancake/ です。パスワードとキーはキーチェーンにあり、これらのフォルダには保存されません。

サーバポート使用中の場合
ウェブ(HTTP)808080
ウェブ(HTTPS)4438443
MySQL3306次の空きポート
PostgreSQL5432次の空きポート
Valkey6379次の空きポート
Memcached11211次の空きポート
MCP サーバ19810
Xdebug(エディタが待ち受け)9003

17.7サポートを受ける

  • ヘルプ ▸ Pancake ヘルプ(⌘?)には、英語、日本語、韓国語で検索できるトピックがあります。
  • Pancake Stack サポートページでは、よくある質問への回答とお問い合わせの方法を案内しています。
  • お問い合わせの際は、macOS のバージョン、Mac の種類(Apple シリコンか Intel か)、状態表示とログの内容をお知らせください。パスワードやキーは決して送らないでください。

プライバシーとデータ

Mac に残るもの、ほかの場所に送られるものとそのタイミング、秘密情報の保管方法、Pancake に含まれるオープンソースソフトウェアについて説明します。

18.1Mac に残るもの

Pancake にはアカウントもアクセス解析もなく、あなたが作ったものを Enfour に送ることはありません。サイト、データベース、設定、バックアップ、保存したメールは、Mac 上の Pancake のコンテナにあります。パスワード、トークン、キーはキーチェーンにあります。

サイトは、自分で選ばない限り非公開のままです。外部アクセスがオフなら、ほかの設定にかかわらず、サイトを開けるのはこの Mac だけです。Adminer など Pancake 自身のツールがインターネットに公開されることはありません。

18.2ほかの場所に送られるものとそのタイミング

Mac の外に出るのは自分で設定したものだけで、自分の認証情報を使って Mac からサービスに直接送られます。Enfour を経由することはありません:

操作送信先
サイトを公開するCloudflare(トンネルと DNS)、または自分のルータと DNS サービス。
デプロイまたは公開する自分のホスト、静的ホスト、アプリプラットフォーム、クラウド事業者。
バックアップをオフサイトにコピーする、Pancake Cloud に保存する自分のサーバ、バケット、iCloud Drive(先に Mac で暗号化)。
同期をオンにする自分の iCloud(サイト一覧と設定。パスワードは含みません)。
実際にメールやプッシュ通知を送る自分の SMTP サービス、または ntfy、Gotify、Pushover。
クラウドの AI プロバイダを使うそのプロバイダ(パスワードとキーは先に取り除きます)。
WordPress や Laravel のサイト、Python アプリを作成するwordpress.org、Packagist、PyPI からのダウンロード。

Mac 上の Apple Intelligence は何も送信しません。Private Cloud Compute はリクエストを非公開で処理し、保存しません。

18.3秘密情報の保管方法

  • データベースのパスワード、API トークン、SSH キー、環境変数はキーチェーンに保存され、サイトのファイルには書き込まれません。
  • サイトはデータベースの情報を環境変数から読むので、wp-config.php や .env に書き込む必要はありません。
  • .env ファイル、SQL ダンプ、鍵、.htpasswd はブラウザに配信されず、.env ファイル、ダンプ、.git はデプロイされません。
  • クラウドの AI に送る前に、Pancake はパスワード、秘密鍵、API トークンを取り除きます。

ポリシーの全文は Pancake Stack のプライバシーポリシーをご覧ください。

18.4オープンソースソフトウェア

Pancake はオープンソースのサーバとライブラリで作られています:Apache、PHP、MySQL、PostgreSQL、Nginx、Valkey、Memcached、Python、uv、cloudflared と、それらに組み込まれたライブラリ。ヘルプ ▸ オープンソースライセンスでは、各コンポーネントのバージョンとライセンスの全文を一覧表示します。この一覧は、Pancake のビルドがコンパイルするのと同じ固定バージョンのソースから作られています。ソースコードとビルドスクリプトはソースコードのページにあります。