{site}-{user}.homupe.dev.jsx を置くとサーバーサイドで実行、DBアクセスも可能ユーザー登録
curl -X POST https://api.homupe.dev/auth/register \
-H "Content-Type: application/json" \
-d '{"username":"you","email":"you@example.com","password":"pass"}'
ログイン(トークンが返る)
curl -X POST https://api.homupe.dev/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","password":"pass"}'
サイト作成 & ファイルアップロード
curl -X POST https://api.homupe.dev/sites \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"mysite"}'
curl -X PUT https://api.homupe.dev/files/mysite/index.html \
-H "Authorization: Bearer TOKEN" \
-d '<h1>Hello!</h1>'
公開!
https://mysite-you.homupe.dev でアクセスできます。
ローカルフォルダを監視して自動同期するCLIクライアント。
alias homupe="deno run -A /path/to/cli/homupe.ts"
homupe init # 設定ファイル作成
homupe login # ログイン
homupe create mysite # サイト作成
homupe push # 全ファイル同期
homupe watch # 監視モード(保存・削除で即同期)
| コマンド | 説明 |
|---|---|
init | 設定ファイル homupe.json を作成 |
login | ログインしてトークンを保存 |
push | ローカルファイルをリモートに同期 |
watch | 変更を監視して差分同期(作成・変更・削除) |
ls | リモートのファイル一覧 |
sites | サイト一覧 |
create <name> | 新規サイト作成 |
.jsx ファイルをアップロードすると、独立したCloudflare Workerとしてデプロイされ、リクエスト時にサーバーサイドで実行されます。fetch で外部APIやDBにアクセスできます。
// index.jsx
export default async function Page({ request, url }) {
const res = await fetch("https://api.example.com/data");
const data = await res.json();
return `<html>
<body>
<h1>Hello!</h1>
<p>Time: ${new Date().toISOString()}</p>
<p>Path: ${url.pathname}</p>
<pre>${JSON.stringify(data, null, 2)}</pre>
</body>
</html>`;
}
{ request, url } を受け取ります。HTML文字列または Response オブジェクトを返してください。
| ファイル | URL |
|---|---|
index.jsx | / |
about.jsx | /about |
blog.jsx | /blog |
同じパスに静的ファイル(index.html)があればそちらが優先されます。
プロジェクトルートに置くと、マッチするファイルが非公開に。CLIでのアップロードとサーバー配信の両方で適用されます。
*.env
secrets/
_draft/
*.bak
対応パターン: *(ワイルドカード)、**(再帰)、末尾 /(ディレクトリ)。
認証が必要なエンドポイントは Authorization: Bearer <token> ヘッダーを付けてください。
| メソッド | パス | 説明 |
|---|---|---|
POST | /auth/register | ユーザー登録 |
POST | /auth/login | ログイン → トークン発行 |
GET | /auth/tokens | トークン一覧 |
DELETE | /auth/tokens/:id | トークン削除 |
| メソッド | パス | 説明 |
|---|---|---|
GET | /sites | サイト一覧 |
POST | /sites | サイト作成 |
DELETE | /sites/:name | サイト削除 |
| メソッド | パス | 説明 |
|---|---|---|
GET | /files/:site | ファイル一覧 |
PUT | /files/:site/<path> | アップロード(JSXは自動デプロイ) |
DELETE | /files/:site/<path> | ファイル削除 |
username は小文字英数字のみ(ハイフン不可)。サイト name は小文字英数字とハイフン。
| URL | 内容 |
|---|---|
homupe.dev | このページ |
api.homupe.dev | API |
{user}.homupe.dev | ユーザーのサイト一覧 |
{site}-{user}.homupe.dev | サイト本体 |