コンテンツにスキップ
コンソール →
公式サイト →
AI に聞くなら、この URL を貼る https://keelson.dev/ja/llms.txt

対応アプリと制約

Keelson は、Python・Node.js・Go の Web アプリ、静的サイト、定期実行ジョブに対応しています。 フレームワークやデータの保存方法によっては、コードや設定の変更が必要です。以下の表で対応状況を確認してください。

Dockerfile は不要です。アプリに含まれていても、Keelson のビルドには使用されません。

アプリ対応状況補足
Python の Web アプリ(FastAPI、Flask など)対応環境変数 PORT で指定されたポートで起動。Flask は gunicorn を使用
Node.js の Web アプリ(Express、Hono、Next.js など)対応環境変数 PORT で指定されたポートで起動。Next.js は next start
Go の Web アプリ(net/http、Gin など)対応Keelson がビルドして ./app で起動
ビルド済みの静的サイト / SPA(React、Vue、Svelte など)対応assets にビルド出力を指定
フロントエンド(静的)+ バックエンド API対応hybrid 構成。assets.api で API のパスを指定
定期実行だけ(Web UI なし)対応crons だけを定義
外部の PostgreSQL / MySQL / libSQL に接続する対応db.mode: none。接続情報はシークレットで渡す
外部 API(OpenAI、Slack、Google Sheets など)を呼ぶ対応外部通信は制限なし
ファイル SQLite を使っている(sqlite3better-sqlite3 など)変更が必要libSQL クライアントに置き換えて db.mode: libsql
ローカルファイルにデータを保存している変更が必要Managed SQLite か Files SDK / Media SDK へ。ローカルディスクは再起動で消える
アプリ内でタイマーやバックグラウンドスレッドを動かしている変更が必要リクエスト処理中に完了させるか、定期実行ジョブに移す(アプリが動くタイミング
Django現在未対応Keelson の Managed SQLite(libSQL)と Django ORM の互換性に制約があるため、現在は対応していません
Streamlit未対応WebSocket が必須のため、現在は動きません(フレームワーク別の注意点
Gradio検証中4 以上を検証中。現時点では動作を保証しません
Ruby / PHP / Java / Rust / .NET / Elixir未対応対応ランタイムは Python / Node.js / Go のみ
Dockerfile で apt パッケージを追加している未対応root 権限なし。画像・動画系は -media ランタイムで代替できる場合あり
常駐プロセス・デーモン・WebSocket サーバー前提未対応アイドル時に停止する実行モデルと合わない
Redis / Kafka / DB サーバーを自前で起動する未対応外部サービスとして接続するのは可
GPU が必要未対応

「変更が必要」のアプリは、コードや設定を変更して対応できる場合があります。AI エージェントに確認を依頼すると、必要な変更を提案します。

他のツールで作ったアプリ(Lovable、Bolt、v0 など)をデプロイする手順は持ち込みガイドにあります。

keelson.yamlruntime で選びます。迷ったら -slim から始め、画像・動画・PDF 処理のライブラリ(Pillow、sharp、ffmpeg など)が必要になったら -media に切り替えます。

ランタイム言語バージョンビルド時の処理
python-slim / python-mediaPython 3.12requirements.txt または pyproject.toml から自動インストール
node-slim / node-mediaNode.js 24package.jsonpackage-lock.json から依存を自動インストール。npm run build があれば実行
go-slim / go-mediaGo 1.26go.mod から go build し、./app として起動

Go のバージョンは、ビルドに使用するツールチェーンのバージョンです。依存パッケージはビルド時にインストールされます。command には起動コマンドだけを書きます。

  • Node.js: ビルドには npm を使います。pnpm-lock.yaml / yarn.lock のみの構成は対応していないため、package-lock.json を用意してください。
  • Go: CGO_ENABLED=0 でビルドします。cgo に依存するライブラリは使用できません。

依存ファイルの要件やビルドの制約は、keelson.yaml リファレンスを参照してください。

項目内容
OS / CPULinux / x86_64
権限・システムパッケージ非 root で動作します。sudoapt-get は使えません
Web サーバーの起動0.0.0.0 と環境変数 PORT で指定されたポートで待ち受けます
データの保存ローカルファイルは永続保存されません。残したいデータには Managed SQLite や Files / Media SDK を使います
処理の実行リクエスト処理と定期実行ジョブに対応します。詳しくはアプリが動くタイミングを参照してください

実行時間やアプリ数などの上限はプランと制限を参照してください。

Python(FastAPI)の例です。keelson.yamlrequirements.txtapp.py の 3 ファイルでデプロイできます。

keelson.yaml
slug: my-app
runtime: python-slim
command: "python app.py"
db:
mode: none
requirements.txt
fastapi
uvicorn
app.py
import os
from fastapi import FastAPI
import uvicorn
app = FastAPI()
@app.get("/")
def index():
return {"message": "Hello from Keelson"}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=int(os.environ["PORT"]))

通常は AI エージェントが keelson.yaml を書くので、自分で作る必要はありません。