本文へ移動

Cloudflareに置く(SkyWay版) ​

SkyWay版のAxeで遊ぶためのトークン発行サーバーを、Cloudflare Workersに置く手順です。部屋のサーバー(サーバー版)と同じWorkerのコードで、SkyWayのアプリIDとシークレットキーを入れると、トークンを発行します。ターミナルでコマンドを打てる人向けで、かかる時間は30分ほどです。

Axeから見た動きは、PHP版・Vercel版と同じです(→ SkyWay版のしくみ)。同じWorkerにログインの3つも入れれば、部屋のサーバーとしても使えます(→ Cloudflareに置く(サーバー版))。

Deployボタンは使いません

Cloudflareに置く(サーバー版)のDeployボタンは、ログインの3つを入れないと先に進めません。SkyWay版だけを置くときは、このページのとおり、手元からwranglerでデプロイします。

0. 用意するもの ​

R2は、部屋のサーバーが画像と音声を置くところです。SkyWay版だけなら使いませんが、同じWorkerのコードなので、最初のデプロイで空のバケットが1つ作られます。空のバケットに料金はかかりません。

1. デプロイする ​

sh
git clone https://github.com/Xelltis/udonarium_axe_backend.git
cd udonarium_axe_backend/apps/cloudflare
npm ci
npx wrangler login
npx wrangler deploy --name my-udonarium-skyway \
  --var ACCESS_CONTROL_ALLOW_ORIGIN:https://axe.example.com
  • --nameでWorkerの名前を決めます。WorkerのURLはhttps://<この名前>.<アカウントのサブドメイン>.workers.devになります。
  • --varで、AxeのOriginを入れます。2つ以上あるときはカンマで区切ります。
  • 最後に出るURLを控えます。

2. SkyWayの2つを入れる ​

SkyWayのアプリケーションIDとシークレットキーを、Workerのシークレットとして入れます。シークレットは、デプロイし直しても残ります。

sh
npx wrangler secret put SKYWAY_APP_ID --name my-udonarium-skyway
npx wrangler secret put SKYWAY_SECRET --name my-udonarium-skyway

コマンドを打つと値を尋ねられるので、それぞれ貼り付けます。2つはそろえて入れます。片方だけのときや、入れていないときは、トークンを頼まれると500 CONFIG_INVALIDを返します。

ロビーの数とトークンの有効期間を変えるときは、SKYWAY_UDONARIUM_LOBBY_SIZEとSKYWAY_TOKEN_TTL_SECONDSも同じように入れます(→ 設定項目)。

3. 動いているか確かめる ​

AxeのOriginを付けて、/v1/statusを開きます。

sh
curl -H 'Origin: https://axe.example.com' https://my-udonarium-skyway.example.workers.dev/v1/status

OKと返れば、トークンを発行できます。{"error":{"code":"CONFIG_INVALID",…}}が返るときは、手順2の2つが入っていません。ORIGIN_FORBIDDENが返るときは、手順1の--varのOriginと、curlに付けたOriginが違います。

4. Axeにつなぐ ​

Axeのconfig.jsonのbackend.urlに、手順1で控えたURLを入れます(→ Axeの設定)。transportは書かないか、skywayにします。

GitHub Actionsで自動でデプロイする ​

このリポジトリのGitHub Actionsでデプロイしている人は、EnvironmentのシークレットにSKYWAY_APP_IDとSKYWAY_SECRETを足すと、次のデプロイからトークンを発行します(→ 自動デプロイ)。ログインの3つを入れないEnvironmentは、SkyWay版だけのWorkerになります。

更新するとき ​

このリポジトリをgit pullしてから、手順1のnpx wrangler deployをもう一度実行します。シークレットはそのまま残ります。

MITライセンスで公開しています