ブラウザゲームを作りたいから始まりました
とりあえずチュートリアルを終わらせてエディタをもちょもちょ触っていたところHTML5形式にエクスポートができることに気づく。
わし「あれ?Godotをフロントエンドにして、何かしらの言語でバックエンド作ったらブラウザで遊べるオンラインゲームが作れるんじゃあないかしら?」
とりあえずバックエンドは触ったことのあるPythonに白羽の矢が立つのであった。
初めて書く記事がこんなネタでいいのか?
とりあえず環境構築
サーバーの環境はこちら
- Ubuntu 22.04 LTS
- Python3インストール済み
- サーバーが汚れるのを防ぐためDocker-Composeで専用コンテナを作りたい願望
- URLが「http://」で始まるのはなんかちょっとダサい気がしたので「https://」にあこがれる
- ApacheよりもNGinxの設定ファイルのほうが書きやすかった記憶があるのでNGinxでWebサーバをつくる
SSL 証明書を取得する
certbotを使用して証明書を取得する
apt -y install certbot
certbot certonly --standalone -d [NoIPあたりで取得したドメイン] -v
こんなものが作成されました
/etc/letsencrypt/live/[NoIPあたりで取得したドメイン]/privkey.pem
/etc/letsencrypt/live/[NoIPあたりで取得したドメイン]/cert.pem
docker-compose.ymlはこんな感じ
Docker-Composeって言うのを使うとサーバーを汚さずに破壊と創造ができるらしいので手を出してみた。
バージョンがなぜ3なのかを知らないままそれっぽい設定を記述していく。
なにやらVolumesに記載したものがコンテナ上に異世界召喚されるらしい。
○○○:△△△と書くとサーバー上の○○○というファイルをコンテナ上の△△△に召喚!
version: '3'
services:
nginx:
image: nginx:latest
ports:
- "1010:1010"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./ssl.conf:/etc/nginx/conf.d/ssl.conf
- ./html:/usr/share/nginx/html
- /etc/letsencrypt:/etc/letsencrypt:ro
restart: always
どうやらこう書くと
- バージョン:3(バージョンってなんぞ?教えてえらい人)
- コンテナ名:nginx
- イメージ:nginxを最新版で
- ポート:せっかくなのでデフォルトっぽい443を避けて1010
- 異世界転生するやつ
- ./nginx.confというファイルを/etc/nginx/nginx.confへ
- ./ssl.confというファイルを/etc/nginx/conf.d/ssl.confへ
- ./htmlというディレクトリを/usr/share/nginx/htmlへ
- /etc/letsencryptというディレクトリを/etc/letsencryptへ(ro:読み込み専用とのこと)
- サーバーの筐体を再起動しても自動でコンテナを起動してくれるらしいぞのおまじない
Nginxの設定ファイル
- nginx.conf
今後の拡張に期待してconf.dの中のconfファイルを片っ端から読み込むよという設定にする
events {}
http {
include /etc/nginx/conf.d/*.conf;
}
2. ssl.conf
server {
listen 1010 ssl;
server_name [NoIPあたりで取得したドメイン];
ssl_certificate /etc/letsencrypt/live/[NoIPあたりで取得したドメイン]/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/[NoIPあたりで取得したドメイン]/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
# Cross-Origin-Embedder-Policyヘッダーを設定
add_header Cross-Origin-Embedder-Policy "require-corp";
# Cross-Origin-Opener-Policyヘッダーを設定
add_header Cross-Origin-Opener-Policy "same-origin";
include mime.types;
default_type application/octet-stream;
types {
text/javascript js;
application/javascript js;
}
location / {
root /usr/share/nginx/html;
index index.html;
}
}
いざ起動
docker-compose up -d
次回へ続く!
https://qiita.com/typegarnet/items/0ef8431b061ad5bc74b4