ユドナリウムバックエンド(Udonarium-Backend)は、ユドナリウム(Udonarium)のバックエンド処理を行うアプリケーションです。
-
バックエンド機能、Web API
- フロントエンドでは実装できない処理をバックエンドのWeb APIとして処理
- SkyWayにアクセスするための認証トークン(SkyWay Auth Token)の発行
-
可能な限りデプロイする環境を選択可能にする
- Cloudflare Workers
- AWS Lambda
- Node.js(ユーザ自身のサーバへのデプロイ等)
ユーザ自身で実行環境を用意し、その環境にユドナリウムバックエンドを設置して動作させることができます。
以下ではCloudflare Workersに設置する例を説明します。
ユドナリウムバックエンドのリリース版(udonarium-backend.zip)をダウンロードして展開し、cloudflare-workers/index.js
を取得します。
Cloudflareにアカウントを作成します。
WebブラウザからCloudflareダッシュボードにログインし、ダッシュボードから新しいWorkerを作成します。
WebブラウザからWorkerのコードを編集して前述のindex.js
のコードを反映・デプロイします。
Workerの設定ページからユドナリウムバックエンドで使用する環境変数を設定します。
SkyWayのアカウントでアプリケーション作成し、必要な情報を取得してください。
-
SKYWAY_APP_ID
SkyWayから発行されたアプリケーションID。 -
SKYWAY_SECRET
SkyWayから発行されたシークレットキー。 -
ACCESS_CONTROL_ALLOW_ORIGIN
このWeb APIを利用するユドナリウムのOrigin(URL)。設定したOrigin以外からのAPIリクエストは拒否されます。
# Example
SKYWAY_APP_ID = "aaaaaaaa-bbbb-4ccc-1234-xxxxxxxxxxxx"
SKYWAY_SECRET = "ab12....<中略>...="
ACCESS_CONTROL_ALLOW_ORIGIN = "https://your-udonarium-domain/"
ユドナリウムのconfig.yaml
を編集し、backend.url
の項目にWorkerのURLを記述します。
backend:
mode: skyway2023
url: https://your-worker-name.xxxxxxxx.workers.dev/ # Example Cloudflare Workers URL
...
ユドナリウムにWebブラウザからアクセスしてエラーが発生しなければ完了です。
開発環境を用意するとソースコードの修正や機能追加を行うことができます。
開発言語はTypeScriptを使用し、Honoのフレームワークで実装されています。
リポジトリはnpm workspacesによるMonorepoになっており、ディレクトリ構成は以下の通りです。
packages/backend/*
: 各バックエンド環境ごとのコードがパッケージに実装されています。packages/shared/*
: 共通で使用するコードがパッケージに実装されています。
バックエンド環境ごとに開発を効率化するCLIツールが存在する場合があります。
例えば、
- Cloudflare WorkersではWrangler CLIを利用します。
- AWS LambdaではAWS CLIを利用します。
バックエンド環境のツールの設定やインストール方法については、それぞれの公式ドキュメントを参照してください。
SkyWayの認証トークン(SkyWay Auth Token)を発行するためにはSkyWayのアプリケーション情報が必要です。
Cloudflare Workers用のコードはpackages/backend/cloudflare-workers/
配下の@udonarium-backend/cloudflare-workers
パッケージとして構成されています。
このパッケージ自体に実装コードはほとんどありません。
ユドナリウムバックエンドとしての主な機能はpackages/shared/core/
の@udonarium-backend/core
の依存関係から使用します。
リポジトリをダウンロードした後、初回はリポジトリのディレクトリで以下のコマンドを実行してください。
npm i
開発作業を行う際には、wrangler.toml
を編集してユドナリウムバックエンドの環境変数を設定してください。
.dev.vars
を作成して利用する方法もあります。
※注意:wrangler.tomlや.dev.varsに記述した環境変数はGitにコミットしないでください。セキュリティリスクになります。
リポジトリのルートディレクトリで以下のコマンドを実行するとhttps://localhost:8787/
で開発用ローカルサーバを起動できます。
npm run cloudflare-workers:dev
以下のコマンドで本番環境へのデプロイを開始します。
表示される内容に従ってCloudflare Workersのデプロイ設定を行ってください。
npm run cloudflare-workers:deploy
バグを報告したり、ドキュメントを改善したり、開発の手助けをしたりしたいですか?
報告や要望の窓口としてGitHubのIssue、またはX(Twitter)を利用できます。
コードのPull Requestも歓迎です。
ただ、難易度や優先度の都合によりそっとしたままになる可能性があります。
バグ報告では、バグを再現できる必要十分な条件について、分かっている範囲で詳しく書いてください。
基本的には「報告を受けて改修 → 次回更新時に反映」の流れで対応する予定です。
機能要望では「何故それが必要なのか」について説明があると良いです。
作成したコードやドキュメントをこのリポジトリに反映させたい時はPull Request(PR)を送ってください。
PRのコードが完全ではない場合でも作業中PRとして送ることができます。
その場合、作業中である旨をPRタイトルか説明文に付け加えてください。