サークルのOB会を大人数で行うために作成したボイスチャット兼Wikiです。
- Node.jsをインストール
- このリポジトリのコードを
git clone
又はダウンロード - これを展開して各ディレクトリに配置
- src/rtc/viewer/Viewer.tsxの以下の行を編集
// 以下をコメントアウト
ct.init(res.profiles, rtc.message)
rtc.start(ct.player!.profile, ct.player!.id, localAudio.current!, remoteAudio.current!, receive)
// 以下のコメントアウトを解除
ct.init(res.profiles, console.log)
ct.start(5, 4)
ct.join(res.profiles["2Jc4uot"], "2Jc4uot", 6, 7)
ct.join(res.profiles["C3kjj1X"], "C3kjj1X", 6, 6)
- 以下のコマンドを実行
$ npm install
$ npm start
以下の構造でバケットとオブジェクトを作成
itcobkai (公開バケット)
├- assets/
│ ├- favicon.png
│ ├- hakase.jpg
│ ├- map_b.png
│ └- map_t.png
├- build/
└- note/
itcobkai-internal (非公開のバケット)
└- md/
以下の関数を作成
- itcobkai
- AmazonS3FullAccessをアタッチ
- AmazonDynamoDBFullAccessをアタッチ
- lambdaディレクトリ直下のにあるPythonファイルを配置(tools/lambda.sh)
- profiles.pyを配置
- 以下の形式のkey.pyを作成(kinesisとskywayはどちらか一方のみでOK)
KEYS = {
"AWS_REGION": 'kinesisのリージョン',
"AWS_CHANNEL_ARN": 'kinesisのチャンネル',
"AWS_ACCESS_KEY_ID": 'kinesisのアクセス鍵',
"AWS_SECRET_ACCESS_KEY": 'kinesisの秘密鍵',
"AWS_CH_NAME": 'kinesisのチャンネル名',
"SKYWAY": "skywayのキー"
}
S3_PUBLIC = "itcobkai"
S3_INTERNAL = "itcobkai-internal"
- itcobkai-requests
- ここを参考にrequests(外部ライブラリ)をレイヤーとして追加
- AWSLambdaRoleをアタッチ
- lambda/discord.pyの内容をlambda_function.pyにコピー
- 以下の形式のkey.pyを作成
DISCORD = {
"CLIENT_ID": "Discord APIのID",
"CLIENT_SECRET": "Discord APIのシークレットキー"
}
以下のテーブルを作成する。全て「設定をカスタマイズ」からオンデマンドキャパシティーモードを選択する。
テーブル名 | パーティションキー | ソートキー | TTL |
---|---|---|---|
itcobkai | token (String) | expired_at | |
itcobkai_notes | id (String) | ||
itcobkai_unreads | user_id (String) | note_id (String) | |
itcobkai_status | mode (String) |
以下の2つのエンドポイントを設定デプロイする。ステージからURLを控えておく。
- POST /
- lambda統合でitcobkaiと紐付ける
- POST /discord
- lambda統合でitcobkai_requestsと紐付ける
skywayの方が圧倒的に使いやすい上に無料なので現在は使っていない。
- AWS SDK for Pythonをインストール
- 「とりあえず試す」の項目4以外を全て行う
- src/common/Config.jsで
LAMBDA_URL
とS3_URL
を設定 - 以下のコマンドを実行
$ npm run build
マップの素材はドット絵世界さんからお借りしています。