導入手順書
最終更新: 2026年8月8日 · 管理者向け
グループを開設するのは管理者ひとりです。保管場所を1つ用意し、アプリの開設ウィザードを最後まで進めれば終わります。ここに書いてあるのは実際の画面の流れそのままです。
1. 保管場所を用意する
グループのアカウントでバケットを1つ作ります。名前は何でもかまいません
(例: mofune)。
1-1. CORS を設定する
ブラウザから読み書きするため、バケットの CORS 設定に次を入れます。ここが抜けていると接続確認が「サーバーまで届いていません」で止まります。DELETE も要ります。担当者が投函物を回収したあと、受信箱から消すためです。
R2 のダッシュボードなら、バケット → 設定 → CORS ポリシーに次を貼ります。
[
{
"AllowedOrigins": ["https://mofune.site"],
"AllowedMethods": ["GET", "PUT", "HEAD", "DELETE"],
"AllowedHeaders": ["*"],
"ExposeHeaders": ["ETag"]
}
]
| AllowedOrigins | https://mofune.site |
|---|---|
| AllowedMethods | GET / PUT / HEAD / DELETE |
| AllowedHeaders | * |
| ExposeHeaders | ETag |
1-2. 公開読み取りURLを用意する
参加者はアカウントを持たずに読みます。バケットの公開アクセスを有効にして、そのURLを控えてください。R2 なら https://pub-xxxx.r2.dev か、割り当てた独自ドメインです。中身は暗号化されているので、公開しても本文・写真・連絡先は読めません。
https://<account>.r2.cloudflarestorage.com) と、参加者が読む公開URL (https://pub-xxxx.r2.dev) は別のURLです。ウィザードは両方を訊きます。取り違えたまま開設されることはありません。接続確認が「公開URLから読めません」で止めます。
1-3. 書き込み用の資格情報を発行する
そのバケットに対して読み書きできる API トークン (アクセスキーID とシークレットアクセスキー) を発行し、手元に控えます。この資格情報は担当者だけが持ちます。
2. 開設ウィザードを進める
アプリを開き、「グループを作る」を押します。3ステップです。
- グループの情報。 グループの名前と、管理者の表示名・メールアドレス・パスワードを入れます。メールアドレスがそのままログインの識別子になります。
- データの置き場。 エンドポイント・リージョン・バケット名・公開読み取りURL・アクセスキーID・シークレットアクセスキーを入れます。
- 接続の確認と開設。 「書き込む → 読み戻す → 資格情報なしで読む → 消す」の4つを試します。すべて成功したときだけ開設が進みます。失敗した場合、保管場所には何も書き込まれていないので、設定を直してやり直せます。
3. 接続コードとリカバリキットを控える
- 接続コード — 参加者に配ります。どのグループのデータをどこから読むかを表す文字列です。これだけでは中身は読めません。
- リカバリキット — 管理者のルート鍵です。これを失うと名簿に署名し直せなくなり、メンバーの追加・削除ができなくなります。暗号化していない紙なので、鍵のかかる場所に保管してください。転記ミスに気づけるよう照合用のチェックサムを併記しています。
保管を確認するチェックを入れるまで、ウィザードは完了しません。面倒に見えますが、ここを飛ばすと後から取り返しがつきません。
4. 参加者に配る
メンバーを追加すると、その人に渡す QR がその場に出ます。この QR には接続コード・メールアドレス・最初のパスワードが入っているので、読み取るだけでログインできます。長いコードを手で打つ必要はありません。
- 読み取りは端末のカメラアプリでも、アプリの「QRコードを読み取る」でもできます
- アカウント登録もアプリのインストールも要りません。ホーム画面に追加すると、アプリのように使えます
5. 管理者がパスワードを忘れたとき
リカバリキットの紙があれば、管理者は自分で入り直せます。アプリのログイン画面から「管理者の方: 復元コードから入り直す」を開き、接続コード・復元コード・これから使うメールアドレス・新しいパスワードを入れてください。グループの鍵はそのままなので、これまでのお知らせも読めます。作業が済んだら紙は元の保管場所へ戻してください。
参加者がパスワードを忘れた場合は、管理者がメンバーの画面から再発行します。こちらは鍵を作り直すため、再発行より前のお知らせは読めなくなります。
6. 通知を自動で送りたいとき (任意)
ここまでの設定でも Mofune は全機能が動きます。お知らせを出したときに参加者の端末へ通知を自動で届けたい場合だけ、通知用の小さなプログラム (Cloudflare Workers) を1つ置きます。持たせるのは「誰の端末を起こすか」の一覧だけで、お知らせの本文も、それを開く鍵も通りません。
-
リポジトリの
functions/workers/(Cloudflare) かfunctions/gas/(Google アカウントだけで済ませたい場合) の手順のとおりに配置し、URL を控えます - アプリの「グループの設定」で、関数の URL と合言葉を入れて保存します
- 参加者は「メニュー」から「この端末で通知を受け取る」を押します
- 担当者が「受信と配布」を開くと、届いた購読が関数へ渡ります
通知の文面は「新しい連絡があります」だけです。誰から何が届いたかは通知に出しません。iPhone はホーム画面に追加していないと通知を受け取れません。
7. うまくいかないとき
| 画面の表示 | よくある原因 |
|---|---|
| 書き込めません | アクセスキーの誤り、権限不足、バケット名やエンドポイントの打ち間違い |
| 読み戻せません | CORS の設定漏れ (AllowedOrigins / ExposeHeaders) |
| 公開URLから読めません | 公開アクセスが無効、または S3 のエンドポイントを公開URL欄に入れている |
| 消せません | 資格情報に削除の権限がない |
| 書いた内容と読み戻した内容が一致しません | 別のバケットを読んでいる、または経路のキャッシュ |
いまの制限
- アプリから接続できる保管場所は S3互換のみです。
- メンバーの招待・追加の画面は準備中です。現在は開設時に登録した人が対象になります。
- 通知は担当者の端末からメールアプリを開いて送る方式です。自動送信 (Web Push) は準備中です。
- この手順書の画面写真は、実際の運用での確認後に追加します。