ガイド
選定・比較
ドキュメント
hanamii の仕組み — コンテナで Web アプリが動くまで
ソースコードのビルドからコンテナの起動、HTTP リクエストへの応答まで。実行環境の考え方と、データ保存・対応構成の前提を説明します。
hanamii は、アプリとその実行に必要な環境をコンテナにまとめ、さくらインターネットのインフラ上で動かす PaaS です。GitHub 連携や ZIP アップロードでソースコードを渡すと、ビルドから Web 公開までを hanamii が行います。
アプリはコンテナ内で HTTP サーバーとして起動し、公開 URL に届くリクエストに応答します。Next.js の画面も Express の API も、このサーバーが処理します。
コンテナは、アプリのコードと、実行に必要なランタイム・依存ライブラリなどをまとめて動かす仕組みです。例えば Node.js アプリなら、Node.js とインストールしたパッケージを使ってサーバーを起動します。
利用者が意識するのは、主に「何をビルドするか」「どのコマンドで起動するか」「どの環境変数が必要か」です。公開用のサーバーを自分で用意する作業を hanamii に任せられます。
ビルド時にアプリを準備する処理と、公開後にリクエストへ応答する処理は別です。ビルドが成功しても、起動コマンドやポートの設定に問題があると公開できません。その場合はトラブルシューティングを参照してください。
| アプリの構成 | コンテナ内で動くもの |
|---|---|
| Next.js | ビルドしたアプリを配信する Next.js サーバー |
| Express などの Node.js アプリ | 起動コマンドで指定した HTTP サーバー |
| Python の Flask / FastAPI | gunicorn / uvicorn などで起動する HTTP サーバー |
| PHP / Laravel | Dockerfile で構成した Apache などの HTTP サーバー |
| Vite の SPA・静的サイト | ビルド結果や HTML を配信するサーバー |
SPA や静的サイトも、現在の hanamii では配信用サーバーを含めて公開します。言語ごとの判定ルール、起動コマンド、ポート設定はNext.js 以外のアプリをデプロイするにまとめています。
関数・イベントハンドラー型の実行環境では、リクエストやイベントを処理する関数をプラットフォームに渡します。hanamii では、対応する構成の HTTP サーバーを起動し、そのサーバーがリクエストを処理します。
この違いは、既存アプリを公開するときに役立ちます。例えば、手元の Express アプリを公開する場合、ルーティングや依存パッケージを生かし、起動コマンド・ポート・環境変数を hanamii の要件に合わせる形で準備できます。
新しく関数型の実行環境に合わせて作るアプリと、既存のサーバー構成を生かすアプリでは、適した選択が変わります。これは実行モデルの説明であり、他社サービス全体の対応機能を比較するものではありません。
コンテナ内のファイルシステムは一時的です。再デプロイや再起動でファイルが失われるため、登録データやアップロードファイルの保存先には使わないでください。メモリに置いたセッションや処理状況も、再起動後には引き継がれません。
| データ | 保存先の考え方 |
|---|---|
| ユーザー情報・投稿・業務データ | hanamii のデータベース機能、またはアプリから接続する外部 DB |
| アップロードした画像・文書 | アプリから接続する外部の永続ストレージ |
| 一時的な変換ファイル・キャッシュ | 消えても再作成できるものに限り、コンテナ内で扱う |
hanamii のデータベース機能は SQLite 互換の libSQL を利用するベータ版です。コンテナ内の SQLite ファイルへ直接書き込む方式とは異なり、接続 URL とトークンを使います。既存の MySQL や PostgreSQL を利用する場合は、接続先の用意とアプリ側の接続設定が必要です。
| hanamii が提供すること | 利用者が準備・確認すること |
|---|---|
| コードからのビルドとコンテナのデプロイ | 対応構成のソースコードと依存関係 |
| 公開 URL、カスタムドメインと SSL 証明書の機能 | アプリの起動コマンド、ポート、独自ドメインの DNS 設定 |
| 環境変数の設定機能、ログ・ヘルスチェック | 秘密情報の設定、アプリのエラーや依存ライブラリの修正 |
| アプリのバージョン切り替え | DB のスキーマ変更とデータの整合性の確認 |
アプリのバージョンを戻しても、DB の内容や外部サービスで行った操作まで元に戻るわけではありません。
コンテナ基盤であることと、任意の Docker イメージや構成をそのまま持ち込めることは同じではありません。現在の公開手順は、対応言語のソースコードから HTTP サーバーを公開する方式です。
コンテナも再起動や入れ替えが発生する実行環境です。同じプロセスがずっと動き続ける前提ではなく、起動し直しても処理を再開できるようにアプリを準備してください。
次のガイド
GitHub からデプロイする
日本の空に咲くクラウド
Calm. Fast. Trusted.
© 2026 hanamii. All rights reserved. 🌸