.
+- webapp # 各言語の参考実装
+- benchmarker # ベンチマーカー
+- docs # Webフロント用の静的ファイル
+- dev/extra/initial-data # 初期データ生成
+- probisioning # セットアップ用
競技中は下記2つを行うことを想定しています。
- サーバーサイドを起動する
- ベンチマーカーを起動する
さらにオプショナルで管理画面とゲーム本体の画面を起動できます。
サーバーサイドとベンチマーカーの初期化の際に使用するマスターデータを事前にダウンロードします。(ghコマンドなしでも実行できるように修正しました)
$ cd dev
$ make initial-data
次のURLをブラウザでアクセスすると、Adminの管理画面のログイン画面が表示されます (ローカルに環境を作った場合)
http://localhost/
ID: 123456 PASS: password
でログインできます
ゲーム本体はUnityで開発されています。 そのためビルドするためにはUnityエディタとUnityライセンスが必要になります。 そこで本リポジトリにビルド済みの成果物が含まれており、またGitHub Pagesを通じて配信も行っています。 下記のいずれかの方法にてゲーム画面を起動できます。
リポジトリのルートでdocker runでnginxサーバーを起動します。
nginxサーバーが起動完了したら、ブラウザから http://localhost:8888/
にアクセスします。
APIサーバーの接続先を指定して起動ボタンを押下すると、ゲーム画面が起動します。
$ docker run --name isucon12-frontend-nginx -v $(pwd)/docs:/usr/share/nginx/html:ro -p 8888:80 -d --rm nginx:stable-alpine
GitHub Pagesにアクセスします。 APIサーバーの接続先を指定して起動ボタンを押下すると、ゲーム画面が起動します。
Warning セキュリティ上の理由により、Chrome(運営の確認ではChrome 104)では、httpsなページからローカルネットワークに対するhttpアクセスがブロックされるようになりました。 ローカルで動作確認する場合は、ngrokなどのhttpsトンネリングサービスを利用するか、5.1で紹介した配信用のnginxサーバーの起動を推奨します。
https://github.com/isucon/isucon12-final/releases/tag/initial_data_20220912
こちらに初期データがあります
(事前準備の手順では、こちらのデータをダウンロードしています)
provisioningディレクトリにあるansibleを用いて構築します
- Ansible を用いた環境構築手順
- スペック: 本選当日は 2 vCPU, 4GB RAM のマシンを 4 台提供しました (ベンチマーカーは 4 コア 8GB)