Browse Source

doc: clean up deployment instructions

Bryan Lee 1 year ago
parent
commit
030853b5e6
7 changed files with 21 additions and 13 deletions
  1. 17 11
      README.md
  2. 1 1
      build/server/README.md
  3. 1 1
      build/web/README.md
  4. 2 0
      compose.yaml
  5. 0 0
      nginx/README.md
  6. 0 0
      nginx/templates/game_server.nginx
  7. 0 0
      nginx/templates/web_client.nginx

+ 17 - 11
README.md

@@ -2,7 +2,7 @@
 
 A minimal Godot project with cross-platform authentication, matchmaking, and server-authoritative multiplayer.
 
-# Environment Setup
+# Development Setup
 
 Set up the Godot project as usual. Some export platforms require extra configuration.
 
@@ -12,13 +12,19 @@ We manage a custom fork of the official [`godot-ios-plugins`](https://github.com
 
 Plugins should be exported from [`godot-ios-plugins/`](./godot-ios-plugins/) and stored in `project/ios/`. Refer to the [iOS plugins document](./project/ios/README.md) for build instructions.
 
+# Deployment
+
+We currently manage our services with Docker Compose. Refer to [this guide](https://www.docker.com/blog/docker-compose-from-local-to-amazon-ecs/) on deploying the services to a remote host.
+
+Also refer to the [proxy setup document](nginx/README.md) to setup the remote host.
+
 # Network Architecture
 
-## Central Server
+## Proxy Server
 
-We use a central Linux server that serves as the first contact for game clients. The central server coordinates game clients to services like matchmaking and game servers.
+We use an NGINX proxy that provides the main entrypoint to the multiplayer system.
 
-Refer to the [server setup document](server/README.md).
+Refer to the [proxy setup document](nginx/README.md).
 
 ## Authentication
 
@@ -28,9 +34,9 @@ Refer to the [client-side authentication document](project/authentication/README
 
 An NGINX proxy provides TLS by forwarding ports defined below:
 
-| Internal service port | External port with TLS | Protocol | Description             |
-| --------------------- | ---------------------- | -------- | ----------------------- |
-| `18000`               | `8000`                 | HTTP     | The authentication API. |
+| Internal service port | External proxy port | Protocol | Description             |
+| --------------------- | ------------------- | -------- | ----------------------- |
+| `18000`               | `8000`              | HTTP     | The authentication API. |
 
 ## Game Server
 
@@ -40,10 +46,10 @@ We also run a simple REST API for spawning and stopping containers for game inst
 
 An NGINX proxy provides TLS by forwarding ports defined below:
 
-| Internal service port | External port with TLS | Protocol  | Description                 |
-| --------------------- | ---------------------- | --------- | --------------------------- |
-| `80`                  | `443`                  | HTTP      | The container-spawning API. |
-| `19000-19249`         | `9000-9249`            | WebSocket | The game server.            |
+| Internal service port | External proxy port | Protocol  | Description                 |
+| --------------------- | ------------------- | --------- | --------------------------- |
+| `80`                  | `443`               | HTTP      | The container-spawning API. |
+| `19000-19249`         | `9000-9249`         | WebSocket | The game server.            |
 
 ### Environment variables
 

+ 1 - 1
build/server/README.md

@@ -26,7 +26,7 @@ Run a container with the latest version of the image and it will be pulled autom
 
 ## Running containers with images
 
-The game server should run on the rang of ports from `19000-19249`, which will be forwarded to `9000-9249` by NGINX. Refer to the [Game Server NGINX configuration](.././../server/nginx/game_server.nginx).
+The game server should run on the rang of ports from `19000-19249`, which will be forwarded to `9000-9249` by NGINX. Refer to the [Game Server NGINX configuration](.././../nginx/templates/game_server.nginx).
 
 Certain parts of the application are controlled via environment variables. Pass them into the container with `-e` / `--env`.
 

+ 1 - 1
build/web/README.md

@@ -26,7 +26,7 @@ Run a container with the latest version of the image and it will be pulled autom
 
 ## Running containers with images
 
-The web client should run on port `10443`, which will be forwarded to `443` by NGINX. Refer to the [Web Client NGINX configuration](.././../server/nginx/web_client.nginx).
+The web client should run on port `10443`, which will be forwarded to `443` by NGINX. Refer to the [Web Client NGINX configuration](.././../nginx/templates/web_client.nginx).
 
 Certain parts of the application are controlled via environment variables. Pass them into the container with `-e` / `--env`.
 

+ 2 - 0
compose.yaml

@@ -1,6 +1,7 @@
 services:
   game_server:
     platform: linux/x86_64
+    image: bryanmylee/multiplayer-base-game-server
     build:
       dockerfile: build/server/Dockerfile
       target: final
@@ -11,6 +12,7 @@ services:
         condition: service_started
 
   authentication:
+    image: bryanmylee/multiplayer-base-authentication
     build:
       context: authentication
       target: final

+ 0 - 0
server/README.md → nginx/README.md


+ 0 - 0
server/nginx/game_server.nginx → nginx/templates/game_server.nginx


+ 0 - 0
server/nginx/web_client.nginx → nginx/templates/web_client.nginx