| .github/workflows | ||
| database | ||
| globals | ||
| nex | ||
| .gitignore | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| init.go | ||
| LICENSE | ||
| main.go | ||
| Makefile | ||
| README.md | ||
Mario Kart 7 (3DS) replacement server
Includes both the authentication and secure servers
Compiling
Setup
Install Go and git, then clone and enter the repository
$ git clone https://github.com/PretendoNetwork/mario-kart-7
$ cd mario-kart-7
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/mario-kart-7
The server is now built to build/mario-kart-7
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
Install make either through your systems package manager or the official download. We provide a default rule which compiles using go
To build using go
$ make
The server is now built to build/mario-kart-7
Configuration
All configuration options are handled via environment variables
.env files are supported
| Name | Description | Required |
|---|---|---|
PN_MK7_POSTGRES_URI |
Fully qualified URI to your Postgres server (Example postgres://username:password@localhost/mk7?sslmode=disable) |
Yes |
PN_MK7_AUTHENTICATION_SERVER_PORT |
Port for the authentication server | Yes |
PN_MK7_SECURE_SERVER_HOST |
Host name for the secure server (should point to the same address as the authentication server) | Yes |
PN_MK7_SECURE_SERVER_PORT |
Port for the secure server | Yes |
PN_MK7_ACCOUNT_GRPC_HOST |
Host name for your account server gRPC service | Yes |
PN_MK7_ACCOUNT_GRPC_PORT |
Port for your account server gRPC service | Yes |
PN_MK7_ACCOUNT_GRPC_API_KEY |
API key for your account server gRPC service | No (Assumed to be an open gRPC API) |