LoginSignup
0
0

Docker-ComposeでGodot用のサーバーを立てようとした話(構築編)

Last updated at Posted at 2024-05-29

ブラウザゲームを作りたいから始まりました

とりあえずチュートリアルを終わらせてエディタをもちょもちょ触っていたところ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の設定ファイル

  1. 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

立ち上がりはしたらしい
image.png
image.png

次回へ続く!
https://qiita.com/typegarnet/items/0ef8431b061ad5bc74b4

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0