ガイド
選定・比較
ドキュメント
Next.js 以外のアプリをデプロイする
Express・Vite/React SPA・静的サイト・Python・PHP(Laravel) など、Next.js 以外のプロジェクトをデプロイするための要件と構成例。
hanamii のビルド基盤は Next.js 専用ではありません。Node.js・Python・PHP のプロジェクトに対応しており(Go は準備中)、Express のようなサーバアプリも、Vite でビルドする SPA も、素の HTML サイトも公開できます。
このページでは、言語の判定ルールと、構成別のデプロイレシピを紹介します。手元のプロジェクトの構成変更を Claude や Codex などの AI に任せたい場合は、下の「AI に構成変更を任せる」にあるコピペ用プロンプトをそのまま使えます。
アップロードされたプロジェクトは、ファイルの存在 で言語を判定します。判定は次の優先順位です。
| 優先 | 判定ファイル | 言語 | 必須要件 |
|---|---|---|---|
| 1 | composer.json | PHP | Dockerfile(EXPOSE の定義必須) |
| 2 | package.json | Node.js | scripts.start の定義 |
| 3 | requirements.txt / pyproject.toml | Python | Pipfile は非対応 |
composer.jsonが最優先で判定されます。Node.js プロジェクトにcomposer.jsonが紛れ込んでいると PHP プロジェクトと判定され、Dockerfile を要求されるので注意してください。
PORT(未設定なら 8080)で listen してください。ポートが固定のアプリは、環境変数で PORT にその番号を設定すると公開ポートが切り替わりますdist/ や build/ などのビルド成果物は含めないでください(ZIP アップロード時は自動で除外されます).env などのシークレットは含めず、環境変数タブから設定してください。ブラウザに埋め込まれるのは NEXT_PUBLIC_ / VITE_ / REACT_APP_ / NUXT_PUBLIC_ / PUBLIC_ プレフィックスの変数のみですこのページのレシピを自分で適用する代わりに、Claude Code や Codex などのコーディング AI に構成変更を任せられます。技術条件の正本は機械可読ページ https://hanamii.jp/ai/other-frameworks-deploy.txt にあり、プロンプトが AI にこれを読ませます(2026年8月時点)。
プロジェクトのフォルダで AI を起動して(または ChatGPT / Claude のチャットにプロジェクト一式を添付して)、次をそのまま貼り付けてください。
このプロジェクトを hanamii(https://hanamii.jp)にデプロイできる構成に整えてください。
【手順】
1. まず https://hanamii.jp/ai/other-frameworks-deploy.txt を読み、
そこに書かれた要件にすべて従うこと
2. このプロジェクトの構成(Node.jsサーバ / SPA / 静的サイト / Python / PHP)を
調べて特定し、該当するレシピに沿って必要最小限の変更だけを加えること。
アプリの機能やコードのロジックは変えないこと
3. 変更後、アプリが環境変数 PORT(未設定なら 8080)で HTTP サーバとして
起動することを、実際にローカルで起動して確認すること
4. 最後に次を報告すること:
- 加えた変更の一覧と、それぞれの理由
- hanamii の環境変数タブに設定が必要な変数の一覧(値そのものは表示しない)
- デプロイ方法(ZIPアップロード / GitHub連携)ごとの、この後の操作
上記 1 の URL が読めない場合は、その旨をひとこと伝えたうえで、
https://hanamii.jp/docs/guides/deploy-other-frameworks の内容に沿って作業すること。
package.json に scripts.start があれば、フレームワークを問わずデプロイできます。依存パッケージのインストールとビルド(scripts.build がある場合)は自動で実行されます。
{
"name": "my-api",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "^4.19.0"
}
}
const express = require('express')
const app = express()
app.get('/', (req, res) => res.send('Hello hanamii'))
app.listen(process.env.PORT || 8080)
devDependencies に typescript と @types/node の両方が必要ですscripts.start あり)であれば同じ流れでデプロイできますHOST=0.0.0.0)が自動で行われますvite build などで静的ファイルを吐き出す SPA は、ビルド済みの dist/ をアップロードするのではなく、ソース一式に「配信用サーバ」を足してデプロイします。
{
"name": "my-spa",
"scripts": {
"build": "vite build",
"start": "serve -s dist -l ${PORT:-8080}"
},
"dependencies": {
"serve": "^14.2.0"
}
}
hanamii 側で npm install → npm run build → npm start が実行され、ビルドされた dist/ が serve で配信されます。-s(single-page モード)を付けると、どの URL でも index.html が返るため SPA のルーティングが機能します。
index.html だけの静的サイトは、そのままでは「対応する言語を検出できませんでした」エラーになります。配信用の最小の package.json を 1 つ足せばデプロイできます。
my-site/
├── package.json ← これを追加
├── index.html
├── style.css
└── ...
{
"name": "my-site",
"scripts": {
"start": "serve -l ${PORT:-8080}"
},
"dependencies": {
"serve": "^14.2.0"
}
}
requirements.txt または pyproject.toml があるプロジェクトをデプロイできます。
Pipfile / Pipfile.lock は非対応です。requirements.txt に変換してくださいPORT で listen する HTTP サーバとして起動してくださいPHP プロジェクトは Dockerfile が必須 です。次の要件を満たしてください。
| 要件 | 内容 |
|---|---|
composer.json | プロジェクト直下に必須 |
Dockerfile | 必須。EXPOSE でアプリが listen するポートを宣言する |
| Web サーバ | php:*-fpm 単体は不可(HTTP を直接受けられないため)。Nginx + PHP-FPM を 1 コンテナに統合するか、php:8.x-apache を使う |
| Laravel | public/index.php が必須 |
もっともシンプルな構成は Apache 同梱イメージです。
FROM php:8.3-apache
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
COPY . /var/www/html
RUN composer install --no-dev --optimize-autoloader
EXPOSE 80
Laravel の場合は、ドキュメントルートを
public/に向ける設定(APACHE_DOCUMENT_ROOTの変更など)を Dockerfile に追加してください。
「対応する言語を検出できませんでした」と表示される
プロジェクト直下に package.json / requirements.txt / pyproject.toml / composer.json のいずれもない状態です。静的サイトの場合は、上の「静的サイト」の節にある配信用の package.json を追加してください。
Node.js プロジェクトなのに Dockerfile を要求される
composer.json が含まれていると PHP と判定されます。不要なら削除してください。
GitHub 連携でデプロイしたらビルドで失敗した
GitHub 連携はアップロード前の検証をスキップしてデプロイまで進むため、構成の問題はビルドログ側にエラーとして現れます。エラー内容はトラブルシューティングを参照するか、ZIP アップロードで一度検証を通すと原因を特定しやすくなります。
Go のプロジェクトを上げたい
Go 対応は現在準備中です。
次のガイド
環境変数の設定と反映
日本の空に咲くクラウド
Calm. Fast. Trusted.
© 2026 hanamii. All rights reserved. 🌸