GCPでFiveMサーバーを建てる
まえがき
ここ数ヶ月FiveM x QBなサーバーで遊んでいたのだが、最近はゲームするよりプヨグラミングしてるほうが楽しい気分なので、暇つぶしにサーバー建てたりスクリプトを書いたりしていて遊んでいる。
そのうち忘れそうなので一応メモしておく。Software Engineerでない人には難しい内容だと思うのでブラウザバックしたほうがいいです。
参考
GCP
身内で遊ぶ程度や開発環境ならEC2なりCompute EngineなりでSpot Instanceを借りると圧倒的に安上がりだと思う。
自分の場合はCompute Engine E2 2 vCPU, 4GB RAM, 20GB HDD, Ubuntu, Spot Instance
で数時間使って数十円程度。FiveMのServer Specificationは満たせていないが、この程度の用途であればこれくらいで十分。なんならRAMを2GBに減らしてもいいなとすら思っている。
ネットワーク設定
GCP側でFirewallが設定されているのでVPCネットワークからFirewallの設定を行う。
Fiveが30120 TCP/UDP
txAdminが40120 TCP/UDP
Database
Install
sudo apt-get install mariadb-server
sudo mysql_secure_installation
Add User
sudo mysql
後のstepでtxAdminでUserやPasswordの入力を求められる。この情報は平文でserver.cfgに記載されてしまうので注意。
create user 'your user name'@'localhost' identified by 'your password';
grant all privileges on *.* to 'your user name'@'localhost' identified by 'your password';
flush privileges;
Configuration
sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address
を 0.0.0.0
に変更
FiveM
ここからLATEST RECOMMENDED
のURLをコピーして、wgetでserver binariesをダウンロードする。
執筆時点ではbuild 7290がLatest Recommendedなので下記は7290のURLとなる。適宜書き換えてほしい。
mkdir -p ~/FiveM/server
wget -P ~/FiveM/server https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/7290-a654bcc2adfa27c4e020fc915a1a6343c3b4f921/fx.tar.xz
cd ~/FiveM/server && tar xf fx.tar.xz
rm fx.tar.xz
txAdmin
FiveMのserver binariesの用意ができたのでtxAdminを起動する。
bash ~/FiveM/server/run.sh
[ c-server-monitor] _______ ______
[ c-server-monitor] | ___\ \/ / ___| ___ _ ____ _____ _ __
[ c-server-monitor] | |_ \ /\___ \ / _ \ '__\ \ / / _ \ '__|
[ c-server-monitor] | _| / \ ___) | __/ | \ V / __/ |
[ c-server-monitor] |_| /_/\_\____/ \___|_| \_/ \___|_|
[ c-server-monitor] -------------------------------- monitor ---
[ c-server-monitor]
[ c-scripting-core] Creating script environments for monitor
[19:11:57][tx] ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
[19:11:57][tx] ┃ ┃
[19:11:57][tx] ┃ All ready! Please access: ┃
[19:11:57][tx] ┃ http://your-public-ip:40120/ ┃
[19:11:57][tx] ┃ http://<YOUR IP ADDRESS>:40120/ ┃
[19:11:57][tx] ┃ ┃
[19:11:57][tx] ┃ Use the PIN below to register: ┃
[19:11:57][tx] ┃ 1648 ┃
[19:11:57][tx] ┃ ┃
[19:11:57][tx] ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
[19:11:57][tx]
[19:11:57][tx] To be able to access txAdmin from the internet open port 40120
[19:11:57][tx] on your OS Firewall as well as in the hosting company.
[19:11:57][tx:FXRunner] Please open txAdmin on the browser to configure your server.
初回起動ではPINの入力を求められる。
http://<YOUR IP ADDRESS>:40120/
にアクセスしてPINを入力し、FiveMアカウントをリンクする。
FiveMアカウントとのリンクが出来たら、backup passwordを設定して、Master Accountを作成する。
txAdmin Recipe
Select Recipe
次に、txAdmin Recipeを使用してサーバーのスクリプトを一括導入する。
好みのRecipeがある場合はそのURL指定もできるが、初めてならとりあえずPopular Recipes
でいくのがいいと思う。
FiveMならQBCore Framework、RedMならVORP Coreがスタンダード。今回はQBCoreを選択する。
taskを進めていき最後に Go to Receipe Deployer
をクリックする。
Recipe Deployer
QBCoreのrecipeが表示されている。知識があれば余分なスクリプトを省いてもいいが、ないのであればとりあえずrecipeどおりにsetupするのがよい。
FiveM License Key
FiveM KeyaasterでServerのlicense keyをgenerateしてペースト。
Database options
Show/Hide Detabase options
でDetabase optionsを表示。 MariaDBをセットアップした時に追加したUserやpasswordを入力。完了したらRun Receipe
で実行。
Run Recipe
自動でQBCoreやVoIPのスクリプトがダウンロードされ、server.cfgに反映されていく。
Configure server.cfg
server.cfgを編集できる。サーバー名やサーバーアイコンなどを変更できる。
Save & Run Server
で設定を反映してサーバーが始動できる。あとはFiveM/RedMのクライアントでF8
でconsoleを開いてconnect <IP>
で接続できる。
Start Server
初回の設定が完了して以降はrun.shを叩けば勝手にサーバーが起動する。
bash ~/FiveM/server/run.sh
Linuxマシンの起動後に自動でサーバーを起動してほしい場合は適宜サービス化などしてください。
Discussion