Diarkis サーバ開発をローカルで行う場合の準備について説明します
環境準備
golang 1.18以上のバージョンが入っていることを確認してください。入っていない場合はインストールしておいてください。
Diarkis のサーバ開発は、Linux もしくは macOS で行うことができます。
※本ドキュメントは Ubuntu 20.04 (WSL1 on Windows 10) で動作を確認しています
※WSL2 は UDP フォワードに対応していないため、WSL1 でご用意ください
※WSL1 でない場合は管理者権限の PowerShell を起動し「wsl --set-version Ubuntu-20.04 1」というコマンドで WSL 環境をコンバートできます
サーバテンプレートのダウンロードと展開
担当者から送付させていただいたサーバテンプレートをダウンロードして、展開したディレクトリへ移動してください。
以下のコマンドで、プロジェクトのボイラープレートを生成できます。
※ project_id と builder_token は担当者からお伝えします。
$ make init project_id={project ID} builder_token={build token} output={absolute path to install}
# 例
$ make init project_id=00000000000 builder_token=xxxx-yyyy-zzzz output=/tmp/diarkis-dir
※ output の値の末尾は、「 / 」を含めないようにしてください。
コマンドを実行すると、output=で指定したpathにサーバのボイラープレートが展開されます。
CLI によるビルド
※macOSの場合
local-build.yml に以下の記述を追加することで、macOS用のバイナリが生成されます。(何も記述しない場合、Linux用のバイナリが生成されます)
GOOS: darwin
GOARCH: {お使いのMacのCPUアーキテクチャ}
ボイラープレートのディレクトリへ移動し、以下のコマンドを実行すると、Diarkisのサーババイナリが remote_bin ディレクトリに生成されます。
$ make build-local
$ ls remote_bin/
http mars tcp udp ws
生成されたバイナリに実行権限を付与します。
$ chmod +x remote_bin/*
$ ls -la remote_bin/
total 41716
drwxr-xr-x 2 taz taz 4096 Aug 4 17:02 .
drwxr-xr-x 8 taz taz 4096 Aug 4 17:02 ..
-rwxr-xr-x 1 taz taz 8061543 Aug 4 17:02 http
-rwxr-xr-x 1 taz taz 7838259 Aug 4 17:02 mars
-rwxr-xr-x 1 taz taz 8749492 Aug 4 17:02 tcp
-rwxr-xr-x 1 taz taz 8816139 Aug 4 17:02 udp
-rwxr-xr-x 1 taz taz 9232273 Aug 4 17:02 ws
ローカルで起動
mars の起動
$ ./remote_bin/mars ./configs/mars/main.json
http の起動
$ ./remote_bin/http ./configs/http/main.json
udp の起動
$ ./remote_bin/udp ./configs/udp/main.json
接続情報の取得
mars, http, udp が起動していれば、接続情報を取得することができます。
$ curl http://127.0.0.1:7000/auth/test
{"UDP":"127.0.0.1:7100","sid":"2d3320600d874d848a60863ecb7da67e","encryptionKey":"6e9c529042c3415d8ed84289f28fc1b2","encryptionIV":"2bda04b8011a4ed2b73e5463b7db4d90","encryptionMacKey":"0876954d76e74411971a7a59e331c83a"}