Skip to content

Latest commit

 

History

History
executable file
·
84 lines (61 loc) · 4.87 KB

README.md

File metadata and controls

executable file
·
84 lines (61 loc) · 4.87 KB

Luigi's Mansion: Dark Moon (Luigi's Mansion 2) replacement server

Includes both the authentication and secure servers

Status

This does not work well at all. Sometimes, a room can be started, but on attempting to fetch the room list, the game crashes.

Compiling

Setup

Install Go and git, then clone and enter the repository

$ git clone https://github.com/PretendoNetwork/luigis-mansion-2
$ cd luigis-mansion-2

Compiling and running using docker (PREFERRED)

Make sure you have Docker installed on your system. This can be done using various instructions available online.

Once installed, execute the following to build:

$ docker build -t luigismansion2 --build-arg BUILD_STRING=YOUR_BUILD_STRING_HERE .
$ docker image prune --filter label=stage=builder -f

Note: --build-arg flag/variable is optional.

Create a .env file with all of the necessary environment variables set. The variable list is available below.

Example:

PN_LUIGISMANSION2_POSTGRES_URI=postgres://username:password@localhost/luigismansion2?sslmode=disable
PN_LUIGISMANSION2_AUTHENTICATION_SERVER_PORT=61001
...

Then, you can use the following command to run the image.

$ docker run --name luigismansion2 --env-file .env -it luigismansion2

Other tools and systems can also make use of this image, including Docker Compose and Portainer.

Compiling using go

To compile using Go, go get the required modules and then go build to your desired location. You may also want to tidy the go modules, though this is optional

$ go get -u
$ go mod tidy
$ go build -o build/luigismansion2

The server is now built to build/luigismansion2

When compiling with only Go, the authentication servers build string is not automatically set. This should not cause any issues with gameplay, but it means that the server build will not be visible in any packet dumps or logs a title may produce

To compile the servers with the authentication server build string, add -ldflags "-X 'main.serverBuildString=BUILD_STRING_HERE'" to the build command, or use make to compile the server

Compiling using make

Compiling using make will read the local .git directory to create a dynamic authentication server build string, based on your repositories remote origin and current commit. It will also use the current folders name as the executables name

Install make onto your system (this varies by OS), and run make while inside the repository

$ make

The server is now built to build/luigis-mansion-2 with the authentication server build string already set

Configuration

All configuration options are handled via environment variables

.env files are supported

Name Description Required
PN_LUIGISMANSION2_POSTGRES_URI Fully qualified URI to your Postgres server (Example postgres://username:password@localhost/luigismansion2?sslmode=disable) Yes
PN_LUIGISMANSION2_KERBEROS_PASSWORD Password used as part of the internal server data in Kerberos tickets No (Default password password will be used)
PN_LUIGISMANSION2_AUTHENTICATION_SERVER_PORT Port for the authentication server Yes
PN_LUIGISMANSION2_SECURE_SERVER_HOST Host name for the secure server (should point to the same address as the authentication server) Yes
PN_LUIGISMANSION2_SECURE_SERVER_PORT Port for the secure server Yes
PN_LUIGISMANSION2_ACCOUNT_GRPC_HOST Host name for your account server gRPC service Yes
PN_LUIGISMANSION2_ACCOUNT_GRPC_PORT Port for your account server gRPC service Yes
PN_LUIGISMANSION2_ACCOUNT_GRPC_API_KEY API key for your account server gRPC service No (Assumed to be an open gRPC API)