- Node.js
Cloudflareのアカウントをお持ちでなければ、Sign upよりアカウントを作成してください。
以下のコマンドでプロジェクトを作成します。
$ npx wrangler pages project create
✔ Enter the name of your new project: … <project_name>
✔ Enter the production branch name: … prd「アプリケーション」と「管理画面」の2つのプロジェクトを作成します。
the name of your new project には任意のプロジェクト名を入力します。それぞれのプロジェクト名は異なるものにしてください。
the production branch name にはprdを入力します。
プロジェクト名は、後に使うので覚えておいてください。
以下のコマンドでデータベースを作成します。
$ npx wrangler d1 create <database_name>
...
[[d1_databases]]
binding = "DB" # i.e. available in your Worker on env.DB
database_name = "<database_name>"
database_id = "<database_id>"「プロダクション環境」と「ステージング環境」の2つのデータベースを作成します。(ステージング環境が必要ない場合は、プロダクション環境のみ作成してください。)
<database_name> には任意のデータベース名を入力します。それぞれのデータベース名は異なるものにしてください。
database_idは、後に使うので覚えておいてください。
以下のコマンドでストレージを作成します。
npx wrangler r2 bucket create <bucket_name>「プロダクション環境」と「ステージング環境」の2つのストレージを作成します。(ステージング環境が必要ない場合は、プロダクション環境のみ作成してください。)
<bucket_name> には任意のバケット名を入力します。それぞれのバケット名は異なるものにしてください。
バケット名は、後に使うので覚えておいてください。
apps/api/wrangler.toml、apps/web/wrangler.toml、apps/management/wrangler.tomlを編集します。
編集が必要な箇所は<expression>の形式で示しています。
api.name
「API」のプロジェクト名を入力します。
任意のプロジェクト名を入力してください。先ほど作成したプロジェクト名と異なるものにしてください。
api.bucket_name
「プロダクション環境」のストレージ名を入力してください。
api.database_id
「プロダクション環境」のデータベースIDを入力してください。
api.preview.bucket_name
「ステージング環境」のストレージ名を入力してください。
作成していない場合は、プロダクション環境のストレージ名を入力してください。
api.preview.database_id
「ステージング環境」のデータベースIDを入力してください。
作成していない場合は、プロダクション環境のデータベースIDを入力してください。
web.name
「アプリケーション」のプロジェクト名を入力します。
<API_URL>
「プロダクション環境」の「API」のURLを入力します。
あとで設定するので、ここには何も入力しないでください。
<PREVIEW_API_URL>
「ステージング環境」の「API」のURLを入力します。
あとで設定するので、ここには何も入力しないでください。
api.name
「API」のプロジェクト名を入力します。
apps/api/wrangler.tomlで入力したAPIのプロジェクト名を入力してください。
management.name
「管理画面」のプロジェクト名を入力します。
<API_URL>
「プロダクション環境」の「API」のURLを入力します。
あとで設定するので、ここには何も入力しないでください。
<PREVIEW_API_URL>
「ステージング環境」の「API」のURLを入力します。
あとで設定するので、ここには何も入力しないでください。
api.name
「API」のプロジェクト名を入力します。
apps/api/wrangler.tomlで入力したAPIのプロジェクト名を入力してください。
APIトークン > トークンを作成する > Cloudflare Workers を編集する
の順で進み、テンプレートに加えて以下の権限を付与します。
- アカウント / D1 / 編集
また、「アカウント リソース」と「ゾーン リソース」を設定します。
作成したトークンをコピーしておいてください。
GitHub Actionsのsecretsに以下の値を設定します。
CLOUDFLARE_API_TOKENADMIN_USERNAMEADMIN_PASSWORD
CLOUDFLARE_API_TOKENには、先ほど取得したAPIキーを入力します。
ADMIN_USERNAMEとADMIN_PASSWORDには、管理画面のログイン情報を入力します。
prdブランチとstgブランチにpushすることで、プロジェクトがデプロイされます。
Dashboard > Workers & Pages
に先ほど設定したプロジェクト名が表示されていることを確認し、それぞれのプロジェクトを選択します。
<api.name>と<api.name>-previewの2つが表示されていることを確認し、それぞれのURLをコピーします。
wrangler.tomlの<API_URL>と<PREVIEW_API_URL>にそれぞれのURLを入力します。
<web.name>が表示されていることを確認します。
設定 > 環境変数 > プレビュー > 変数を編集する
から以下の環境変数を設定します。
BASIC_USERNAMEBASIC_PASSWORD
ステージング環境にログインするためのユーザー名とパスワードを入力します。
<management.name>が表示されていることを確認します。
設定 > 環境変数 > プレビュー > 変数を編集する
から以下の環境変数を設定します。
BASIC_USERNAMEBASIC_PASSWORD
ステージング環境にログインするためのユーザー名とパスワードを入力します。
変更を反映するために、prdブランチとstgブランチにpushします。
- Node.js
- pnpm
以下のコマンドで依存関係をインストールします。
pnpm i以下のコマンドでデータベースのマイグレーションを実行します。
cd apps/api
pnpm run migrate以下のコマンドで開発サーバーを起動します。
pnpm devapps/web/src/app/announce/announce.mdにお知らせの内容を記述します。
packages/configuration/configuration.jsonに設定を記述します。
| 項目 | 説明 |
|---|---|
max_file_size_mb |
アップロード可能なファイルの最大サイズ(MB) |
accept_extensions |
アップロード可能な拡張子 |