Skip to content

Server Hosting

Philipp van Kempen edited this page Mar 8, 2021 · 6 revisions

⚠️ This is a draft!

This page contains extensive information and tips for hosting your own Minigolf Server to play with your friends. Approaches are compared to make finding the best suitable one easier.

The Minigolf game can not be played without a running server. When you just want to play by yourself of if the other players are in the same local network (or WIFI) you can just run the server on your device without having to deal with opening ports to the World Wide Web.

Warning

I do not recommend to host a public server, which is available for everyone because of the following reasons:

  • Server-side code is vulnerable from the WWW easily
  • GDPR rules are not fulfilled in EU-countries
  • Due to lack of moderation, racism and further discrimination/insults are likely in the chatrooms
  • You could end up having a copyright infringement

I do not take any responsibility for any available servers!

TLDR

If you have experience with hosting game servers, you may skip most of the following sections.

However if you just want to play with your friends which are not in your local network, click here.

Content

Using the provided Image

TODO

Building and Updating the Image

Hosting Approaches

Manual

JDK blabla

TODO

Container based

Docker blabla

Using the provided Image

TODO

Building and Updating the Image

How to update the Upstream image?

TODO

Make my Server available for others

Self Hosting

Open ports in your Router

‼️ This approach is very insecure and can be exploited easily by hackers!

TODO

Advantages:

  • Fast Setup
  • Can be started and stopped on demand (i.e. only if your friends want to play)
  • No command line experience required
  • Constant domain if your are using a DynDNS Service

Disadvantages:

  • Your Computer has to be running all the time (unless you are using i.e a Raspberry Pi)
  • VERY INSECURE

Using the Hamachi Application

Instructions:

  1. Download the LogMeIn Hamachi client for your system: https://www.vpn.net
  2. Run the Installer
  3. On some OSes: Reboot to enable required system extensions
  4. How to use the Client?
  • For hosting a Server:

    1. Launch the Hamachi Client
    2. ?
  • For connecting to a Server:

    1. Launch the Hamachi Client
    2. ?

Advantages:

  • Very secure
  • Easy to use if you just want to play with some of your friends
  • No command-line experience required

Disadvantages:

  • You and your friends need to install the Software and create an Account (Time consuming)
  • Hamachi Networks will not stay open all the time
  • Your Computer has to be running all the Time (unless you are using i.e a Raspberry Pi)

Ngrok Tunneling

Instructions:

  1. Download the Ngrok application from https://ngrok.com/download
  2. Unzip the executable to a some directory (On Linux: tar xvf ngrok*.tar or similar)
  3. Either move the ngrok binary to a directory which is in your systems PATH or make sure that you run the following commands
  4. Sign up for an account on the https://dashboard.ngrok.com/login website. (Required in order to open TCP tunnels)
  5. Login to find your authtoken in the Dashboard: https://dashboard.ngrok.com/get-started/setup
  6. Run the following command with your authtoken inserted a single time: ./ngrok authtoken __________________
  7. Start the Minigolf Server as usual: java -jar ...
  8. Open the TCP Tunnel: ./gnrok tcp 4242 (Replace 4242 here if your are using a non-default port)
  9. Find out the Forwarding URL and Port and share them with your friends (i.e. 2.tcp.ngrok.io:18811)
  10. Have fun!

Advantages:

  • Fast Setup
  • Relatively secure
  • Your friends do not have to deal with Ngrok at all

Disadvantages:

  • You have to create an Ngrok account (Which is pretty easy) and download the tool
  • Ngrok Tunnels are not persistent over a very long time
  • Your Computer has to be running all the Time (unless you are using i.e a Raspberry Pi)
  • Needs some experience with the command-line

Using a Cloud-Provider

Advantages

  • Many providers available
  • Server is available all the time
  • You can give you server a static ip or domain

Disadvantages

  • Monthly Costs for the Cloud provider (Only minimal if you have chosen the right machine type)
  • Needs IT/Linux-Experience
  • Maintenance required for security updates,..

⚠️ I do not take any responsibility for unexpected costs due to a wrong setup or changes at these cloud services ⚠️

Example Setup using Google Cloud

TODO