hanamii
hanamii

特徴

料金

お知らせ

お問い合わせ

ガイド

hanamii をはじめる
hanamii の仕組み — コンテナで Web アプリが動くまで
GitHub からデプロイする
ZIP からデプロイする
ChatGPT や Claude で作ったアプリを公開する
Next.js 以外のアプリをデプロイする
環境変数の設定と反映
データベースを使う(ベータ版)
カスタムドメインを設定する
ワークスペースとメンバー管理
トラブルシューティング
料金とお支払いのしくみ
無料プランで長く使っていないプロジェクトの停止と再開
複数アプリ・追加枠の料金
10月1日より前からお使いの方へ:有料プラン開始と移行期間
支払い担当者向けガイド
REST API リファレンス

hanamii の仕組み — コンテナで Web アプリが動くまで

ソースコードのビルドからコンテナの起動、HTTP リクエストへの応答まで。実行環境の考え方と、データ保存・対応構成の前提を説明します。

hanamii は、アプリとその実行に必要な環境をコンテナにまとめ、さくらインターネットのインフラ上で動かす PaaS です。GitHub 連携や ZIP アップロードでソースコードを渡すと、ビルドから Web 公開までを hanamii が行います。

アプリはコンテナ内で HTTP サーバーとして起動し、公開 URL に届くリクエストに応答します。Next.js の画面も Express の API も、このサーバーが処理します。

コンテナとは

コンテナは、アプリのコードと、実行に必要なランタイム・依存ライブラリなどをまとめて動かす仕組みです。例えば Node.js アプリなら、Node.js とインストールしたパッケージを使ってサーバーを起動します。

利用者が意識するのは、主に「何をビルドするか」「どのコマンドで起動するか」「どの環境変数が必要か」です。公開用のサーバーを自分で用意する作業を hanamii に任せられます。

ソースコードから公開まで

  1. コードを渡す — GitHub のリポジトリとブランチを連携するか、ソースコードの ZIP をアップロードします。
  2. ビルドする — プロジェクトの構成に応じて依存関係をインストールし、ビルドして、実行用のコンテナイメージを作成します。
  3. サーバーを起動する — イメージをもとにコンテナを起動し、アプリの起動コマンドを実行します。アプリは設定されたポートで HTTP リクエストを受け付けます。
  4. URL で公開する — 利用者が公開 URL にアクセスすると、アプリの HTTP サーバーにリクエストが届き、画面や API の応答が返ります。

ビルド時にアプリを準備する処理と、公開後にリクエストへ応答する処理は別です。ビルドが成功しても、起動コマンドやポートの設定に問題があると公開できません。その場合はトラブルシューティングを参照してください。

アプリはどのように動くか

アプリの構成コンテナ内で動くもの
Next.jsビルドしたアプリを配信する Next.js サーバー
Express などの Node.js アプリ起動コマンドで指定した HTTP サーバー
Python の Flask / FastAPIgunicorn / uvicorn などで起動する HTTP サーバー
PHP / LaravelDockerfile で構成した Apache などの HTTP サーバー
Vite の SPA・静的サイトビルド結果や HTML を配信するサーバー

SPA や静的サイトも、現在の hanamii では配信用サーバーを含めて公開します。言語ごとの判定ルール、起動コマンド、ポート設定はNext.js 以外のアプリをデプロイするにまとめています。

関数・イベントハンドラー型との違い

関数・イベントハンドラー型の実行環境では、リクエストやイベントを処理する関数をプラットフォームに渡します。hanamii では、対応する構成の HTTP サーバーを起動し、そのサーバーがリクエストを処理します。

この違いは、既存アプリを公開するときに役立ちます。例えば、手元の Express アプリを公開する場合、ルーティングや依存パッケージを生かし、起動コマンド・ポート・環境変数を hanamii の要件に合わせる形で準備できます。

新しく関数型の実行環境に合わせて作るアプリと、既存のサーバー構成を生かすアプリでは、適した選択が変わります。これは実行モデルの説明であり、他社サービス全体の対応機能を比較するものではありません。

データはコンテナの外に保存する

コンテナ内のファイルシステムは一時的です。再デプロイや再起動でファイルが失われるため、登録データやアップロードファイルの保存先には使わないでください。メモリに置いたセッションや処理状況も、再起動後には引き継がれません。

データ保存先の考え方
ユーザー情報・投稿・業務データhanamii のデータベース機能、またはアプリから接続する外部 DB
アップロードした画像・文書アプリから接続する外部の永続ストレージ
一時的な変換ファイル・キャッシュ消えても再作成できるものに限り、コンテナ内で扱う

hanamii のデータベース機能は SQLite 互換の libSQL を利用するベータ版です。コンテナ内の SQLite ファイルへ直接書き込む方式とは異なり、接続 URL とトークンを使います。既存の MySQL や PostgreSQL を利用する場合は、接続先の用意とアプリ側の接続設定が必要です。

hanamii と利用者が担当すること

hanamii が提供すること利用者が準備・確認すること
コードからのビルドとコンテナのデプロイ対応構成のソースコードと依存関係
公開 URL、カスタムドメインと SSL 証明書の機能アプリの起動コマンド、ポート、独自ドメインの DNS 設定
環境変数の設定機能、ログ・ヘルスチェック秘密情報の設定、アプリのエラーや依存ライブラリの修正
アプリのバージョン切り替えDB のスキーマ変更とデータの整合性の確認

アプリのバージョンを戻しても、DB の内容や外部サービスで行った操作まで元に戻るわけではありません。

デプロイ前に確認すること

コンテナ基盤であることと、任意の Docker イメージや構成をそのまま持ち込めることは同じではありません。現在の公開手順は、対応言語のソースコードから HTTP サーバーを公開する方式です。

  • Node.js・Python・PHP の具体的な要件は対応構成のガイドで確認してください。
  • 秘密情報はソースコードや ZIP に含めず、環境変数から設定してください。
  • ローカルファイルやメモリに、消えてはいけないデータを保存しないでください。
  • 複数コンテナを組み合わせる構成、HTTP 以外の公開、常時稼働を前提とする処理などは、このページの説明だけで対応を判断せず、必要な構成を添えてお問い合わせください。

コンテナも再起動や入れ替えが発生する実行環境です。同じプロセスがずっと動き続ける前提ではなく、起動し直しても処理を再開できるようにアプリを準備してください。

次に読む

次のガイド

GitHub からデプロイする

hanamii

日本の空に咲くクラウド

Calm. Fast. Trusted.

プロダクト

SECURITY ACTION セキュリティ対策自己宣言 一つ星

© 2026 hanamii. All rights reserved. 🌸