homupe

ファイルを置くだけでWebサイトが公開できる、シンプルなホスティングサービス。

Googleで始める ダッシュボード

特徴

クイックスタート

1

ユーザー登録

curl -X POST https://api.homupe.dev/auth/register \
  -H "Content-Type: application/json" \
  -d '{"username":"you","email":"you@example.com","password":"pass"}'
2

ログイン(トークンが返る)

curl -X POST https://api.homupe.dev/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com","password":"pass"}'
3

サイト作成 & ファイルアップロード

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>'
4

公開!

https://mysite-you.homupe.dev でアクセスできます。

CLI(Deno)

ローカルフォルダを監視して自動同期する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で動的ページ

.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)があればそちらが優先されます。

.homupeignore

プロジェクトルートに置くと、マッチするファイルが非公開に。CLIでのアップロードとサーバー配信の両方で適用されます。

*.env
secrets/
_draft/
*.bak

対応パターン: *(ワイルドカード)、**(再帰)、末尾 /(ディレクトリ)。

APIリファレンス

認証が必要なエンドポイントは 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構成

URL内容
homupe.devこのページ
api.homupe.devAPI
{user}.homupe.devユーザーのサイト一覧
{site}-{user}.homupe.devサイト本体

技術スタック