0
0
Fork 0
mirror of https://github.com/Sanae6/SmoOnlineServer.git synced 2024-11-25 04:35:18 +00:00
SmoOnlineServer/README.md
Robin C. Ladiges ccccdecb6a
Provide docker image (#6)
* add Dockerfile

* add docker-compose.yml

* Github workflow to build and deploy docker image

* workdir /data/ instead of /app/

* use a local directory instead of a named volume

This makes the settings.json more accessible from the outside by
default, but is less portable.

The -v command with $PWD might not work on native Windows shells, but
rather wants an absolute Windows path like C:\User\... or /c/User/...

And on Linux, because the /data/ directory and the settings.json will be
owned by root. Though that can be changed.

* more docker-compose command examples

* add linux/arm/v7 ; improve build & runtime

* fix: just arm not arm32

* test docker build for PRs

* back to the microsoft runtime
2022-07-17 13:00:31 -06:00

85 lines
No EOL
3 KiB
Markdown

# Super Mario Odyssey: Online Server
The official server for the [Super Mario Odyssey: Online](https://github.com/CraftyBoss/SuperMarioOdysseyOnline) mod.
## Windows Setup
1. Download latest build from [Releases](https://github.com/Sanae6/SmoOnlineServer/releases)
2. Run `Server.exe`
3. `settings.json` is autogenerated in step 2, modify it however you'd like.
## Building (Mac/Linux Setup)
Must have the [.NET 6 SDK](https://dotnet.microsoft.com/en-us/download) and Git installed.
Run these commands in your shell:
```shell
git clone https://github.com/Sanae6/SmoOnlineServer
cd SmoOnlineServer
# replace run with build to only build the server
dotnet run --project Server/Server.csproj -c Release
```
If you ran `dotnet build` instead of `dotnet run`, you can find the binary at `Server/bin/net6.0/Release/Server.exe`
## Running under systemd
If you have systemd, you can use the existing systemd serivce.
```shell
cp smo.serivce /etc/systemd/system/smo.service
# edit ExecStart to your path for the server executable and change WorkingDirectory to the server directory
chmod +x filepath to the server executable
systemctl enable --now smo.service
```
## Run docker image
If you have [docker](https://docs.docker.com/) on your system, you can use the existing docker image.
That way you don't have to build this server yourself or manually handle executables.
```shell
docker run --rm -it -p 1027:1027 -v "/$PWD/data/://data/" ghcr.io/sanae6/smo-online-server
# on Windows, depending on the shell you're using, $PWD might not work. Use an absolute path instead.
```
To always check for and use the latest server version you can add `--pull=always` to the options.
Alternatively there's a `docker-compose.yml` for [docker-compose](https://docs.docker.com/compose/) to simplify the command line options:
```shell
# update server
docker-compose pull
# start server
docker-compose up -d
# open the server cli
docker attach `docker-compose ps -q` --sig-proxy=false
# watch server logs
docker-compose logs --tail=20 --follow
# stop server
docker-compose stop
```
## Commands
Run `help` to get what commands are available in the server console.
Run the `loadsettings` command in the console to update the settings without restarting.
Server address and port will require a server restart, but everything else should update when you run `loadsettings`.
[//]: # (TODO: Document all commands, possibly rename them too.)
## Settings
### Server
Address: the ip address of the server, default: 0.0.0.0 # this shouldn't be changed
Port: the port of the server, default 1027
Maxplayers: the max amount of players that can join, default: 8
Flip: flips the player upside down, defaults: enabled: true, pov: both
Scenario: sync's scenario's for all players on the server, default: false
Banlist: banned people are unable to join the server, default: false
### Discord
Token: the token of the bot you want to load into, default: null
Prefix: the bot prefix to be used, default: $
LogChannel: logs the server console to that channel, default: null