BLUE

AI 開発アプリ公開ガイド

Blue は AI が生成したアプリをすぐに公開できるプラットフォームです。AI にランタイム(static / python / node / php)を選ばせ、コードを生成してもらい、ZIP で upload するか API で直接デプロイします。

AI に渡す URL

以下の URL を AI に渡すと、Blue 用のアプリコードを生成できます。全ランタイムの仕様が 1 ページにまとまっています。

https://blue.sola.inc/support/ai-ready/ai?lang=ja
ページを開いて確認

デプロイ環境について

ChatGPT、Claude、Gemini などの通常のチャット画面からは、外部サーバーへの HTTP リクエストが制限されているため POST /deploy による直接デプロイはできません。 これらの AI にはコード生成のみを依頼し、生成されたファイルを ZIP にまとめて Console から手動で upload してください。

推奨ツール: CodexClaude Code のようなローカル実行環境を持つ AI ツールであれば、API key を使った直接デプロイが可能です。

デプロイ方法

AI が生成したファイルを ZIP にまとめて Console から upload するか、API key を使って POST /deploy で直接デプロイできます。

curl -X POST https://blue.sola.inc/deploy \ -H "X-API-Key: sk_xxxxx" \ -F "name=my-app" \ -F "file=@app.zip"

Static HTML / CSS / JavaScript

ランディングページ、ポートフォリオ、ミニゲーム、カラーピッカーを最短で出したいとき向けです。

必要ファイル

  • index.html
  • style.css
  • script.js

ルール

  • 現在の runtime image は python:3.12-alpine ベースです
  • 余計な解説は最小限にして、ファイルごとに分けて出力する
  • 外部 CDN や build tool 前提にしない
  • index.html は ZIP の root に置ける形にする
  • Blue は割り当てた port への localhost TCP 接続で起動成功を判定します。特定の HTTP body や status code は不要です
  • 1 ページで完結しつつ、見た目や動きが分かる UI にする
  • static runtime では永続書き込みを前提にしません。画像や assets は同じ ZIP に含めてください

出力形式

FILE: index.html
```html
...
```

FILE: style.css
```css
...
```

FILE: script.js
```javascript
...
```

ZIP 作成

  • 3 ファイルを 1 つのフォルダ直下へ置く
  • images/assets/ などのサブディレクトリは使ってよいです。ただし index.html は root に置きます
  • そのフォルダを ZIP 化して Blue に upload する
  • ZIP の中で 1 階層深くならないようにする
  • 起動に失敗したら Blue の logs を AI に渡して修正版を作ります

Python app.py + requirements.txt

IP checker、request viewer、確認用 utility app のような小さい Python app を出したいとき向けです。

必要ファイル

  • app.py
  • requirements.txt

ルール

  • 現在の runtime image は python:3.12-slim ベースです
  • app.py を entry file にする
  • requirements.txt を付ける
  • PORT 環境変数で listen する構成にする
  • Blue は割り当てた port への localhost TCP 接続で起動成功を判定します。特定の HTTP body や status code は不要です
  • コンテナの root filesystem は揮発扱いです。SQLite などの DB ファイルや保持したい app data は /workspace/data に置いてください(/workspace/code 内のファイルは HTTP 経由でアクセスされる可能性があります)
  • 最初は Flask か Python 標準ライブラリで完結する小さめの app にする

出力形式

FILE: app.py
```python
...
```

FILE: requirements.txt
```text
...
```

ZIP 作成

  • app.pyrequirements.txt を同じ階層へ置く
  • 追加ファイルやサブディレクトリがある場合も ZIP に含めてよいです
  • 不要な仮想環境ファイルやキャッシュは ZIP に入れない
  • 起動に失敗したら Blue の logs を AI に渡して修正版を作ります

Node package.json + server.js

小さい utility app、色ツール、シンプルな API 付き画面などを Node で出したいとき向けです。

必要ファイル

  • package.json
  • server.js

ルール

  • 現在の runtime image は node:22-bookworm-slim ベースです
  • package.jsonstart script を入れる
  • server.jsPORT 環境変数で listen する
  • Blue は割り当てた port への localhost TCP 接続で起動成功を判定します。特定の HTTP body や status code は不要です
  • コンテナの root filesystem は揮発扱いです。SQLite などの DB ファイルや保持したい app data は /workspace/data に置いてください(/workspace/code 内のファイルは HTTP 経由でアクセスされる可能性があります)
  • 最初は小さく始めて、必要に応じて Express などを使ってよいです
  • frontend が必要でも build step 前提にしない

出力形式

FILE: package.json
```json
...
```

FILE: server.js
```javascript
...
```

ZIP 作成

  • package.jsonserver.js を root に置く
  • 追加ファイルやサブディレクトリがある場合も ZIP に含めてよいです
  • node_modules は ZIP に入れない
  • 依存は npm install で再現できる範囲にする
  • 起動に失敗したら Blue の logs を AI に渡して修正版を作ります

PHP index.php

フォーム、session、簡単な board や utility page を PHP で出したいとき向けです。

必要ファイル

  • index.php
  • 必要なら style.css

ルール

  • 現在の runtime image は php:8.3-cli ベースです
  • index.php を root か public/ に置く
  • Blue は割り当てた port への localhost TCP 接続で起動成功を判定します。特定の HTTP body や status code は不要です
  • コンテナの root filesystem は揮発扱いです。SQLite などの DB ファイルや保持したい app data は /workspace/data に置いてください(/workspace/code 内のファイルは HTTP 経由でアクセスされる可能性があります)
  • 最初は 1 ファイル中心で分かりやすくする
  • フレームワークや composer 前提を避ける
  • session や form submit が分かる小さめの app を優先する

出力形式

FILE: index.php
```php
...
```

FILE: style.css
```css
...
```

ZIP 作成

  • index.php が detector に見つかる位置に置く
  • 追加ファイルやサブディレクトリがある場合も ZIP に含めてよいです
  • PHP 標準機能で完結する方が初回確認しやすい
  • フォーム送信や session の有無を画面で分かるようにする
  • 起動に失敗したら Blue の logs を AI に渡して修正版を作ります